This package allows you to create an app with:
- Routing.
- Tabs and independent navigation in each tab.
- Bottom navigation bar or top menu depending on the screen size.
- Language switch.
The UI details may change without notice. Use this package when the functionality of your app is your priority and you can tolerate some non-customizable opinionated looks to save a few days of development.
Out-of-the-Box Examples
Minimal
import 'package:flutter/widgets.dart';
import 'package:quickstart/quickstart.dart';
Future<void> main() async {
await QuickStart.ensureInitialized();
runApp(const QuickApp());
}
Firebase
Passing a FirebaseOptions
enables authentication and analytics.
import 'package:flutter/widgets.dart';
import 'package:quickstart/quickstart.dart';
import 'firebase_options.dart';
Future<void> main() async {
await QuickStart.ensureInitialized(
firebaseOptions: DefaultFirebaseOptions.currentPlatform,
);
runApp(const QuickApp());
}
Sign-in buttons will automatically show on the Settings screen. The default is Google and Apple providers. See "customizing" down below to change that.
Configure the providers in the Firebase console following the Firebase Auth howto.
Customizing
Subclass QuickDelegate
and pass it to ensureInitialized()
for customizations.
Languages
To change the list of supported languages, override the locales
getter:
import 'package:flutter/widgets.dart';
import 'package:quickstart/quickstart.dart';
class AppDelegate extends DefaultQuickDelegate {
@override
List<Locale> get locales => [Locales.en_GB];
}
Future<void> main() async {
await QuickStart.ensureInitialized(
delegate: AppDelegate(),
);
runApp(const QuickApp());
}
When there's only one language, the switch does not how.
Authentication Providers
By default the app shows the sign-in buttons for Google and Apple providers.
To change that, override authProviders
getter:
class AppDelegate extends QuickDelegate<TabEnum> {
@override
List<String> get authProviders => [GithubAuthProvider.PROVIDER_ID];
}
Future<void> main() async {
await QuickStart.ensureInitialized(
delegate: AppDelegate(),
firebaseOptions: DefaultFirebaseOptions.currentPlatform,
);
runApp(const QuickApp());
}
TODO: Expand.