qs_onboarding_package 0.0.3 copy "qs_onboarding_package: ^0.0.3" to clipboard
qs_onboarding_package: ^0.0.3 copied to clipboard

A Flutter package that provides an efficient onboarding process with version updates and user notifications. Perfect for apps requiring a smooth onboarding experience.

example/lib/main.dart

import 'dart:io';
import 'package:example/home_page.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:qs_onboarding_package/onboarding_screen.dart';
import 'package:qs_onboarding_package/screens/error_page.dart';
import 'package:restart_app/restart_app.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const BoardingPage(),
      // initialRoute: '/',
      routes: {
        // '/': (context) => const LoadingPage(),
        '/home': (context) => const HomePage(),
        '/error': (context) => ErrorPage(
              onRestart: () => Restart.restartApp(),
            ),
      },
    );
  }
}

class BoardingPage extends StatefulWidget {
  const BoardingPage({super.key});

  @override
  State<BoardingPage> createState() => _BoardingPageState();
}

class _BoardingPageState extends State<BoardingPage> {
  late Future<PackageInfo> _packageInfoFuture;

  @override
  void initState() {
    super.initState();
    _packageInfoFuture = _initPackageInfo();
  }

  Future<PackageInfo> _initPackageInfo() async {
    return await PackageInfo.fromPlatform();
  }

  @override
  Widget build(BuildContext context) {
    return FutureBuilder<PackageInfo>(
      future: _packageInfoFuture,
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return const Center(child: CircularProgressIndicator());
        } else if (snapshot.hasError) {
          return Scaffold(
            body: Center(
              child: Text('Error: ${snapshot.error}'),
            ),
          );
        } else if (snapshot.hasData) {
          final packageInfo = snapshot.data!;
          return OnboardingWidget(
            baseUrl: 'http://172.20.10.2:8000/api',
            applicationId: 'md01',
            version: packageInfo.version,
            platform: Platform.isAndroid ? 'android' : 'ios',
            onRestart: () => Restart.restartApp(),
          );
        } else {
          return const Scaffold(
            body: Center(
              child: Text('Failed to load package info'),
            ),
          );
        }
      },
    );
  }
}
0
likes
140
points
4
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package that provides an efficient onboarding process with version updates and user notifications. Perfect for apps requiring a smooth onboarding experience.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

bloc, equatable, flutter, flutter_bloc, http, loading_animation_widget, url_launcher

More

Packages that depend on qs_onboarding_package