qs_onboarding_package 0.0.3
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'),
),
);
}
},
);
}
}