mirror of https://github.com/flutter/pinball.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
import 'dart:async';
|
|
|
|
import 'package:authentication_repository/authentication_repository.dart';
|
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
import 'package:firebase_auth/firebase_auth.dart';
|
|
import 'package:firebase_core/firebase_core.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:leaderboard_repository/leaderboard_repository.dart';
|
|
import 'package:pinball/app/app.dart';
|
|
import 'package:pinball/bootstrap.dart';
|
|
import 'package:pinball/firebase_options.dart';
|
|
import 'package:pinball_audio/pinball_audio.dart';
|
|
import 'package:platform_helper/platform_helper.dart';
|
|
import 'package:share_repository/share_repository.dart';
|
|
|
|
Future<App> bootstrap() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
|
|
final leaderboardRepository =
|
|
LeaderboardRepository(FirebaseFirestore.instance);
|
|
const shareRepository =
|
|
ShareRepository(appUrl: ShareRepository.pinballGameUrl);
|
|
final authenticationRepository =
|
|
AuthenticationRepository(FirebaseAuth.instance);
|
|
final pinballAudioPlayer = PinballAudioPlayer();
|
|
final platformHelper = PlatformHelper();
|
|
await authenticationRepository.authenticateAnonymously();
|
|
return App(
|
|
authenticationRepository: authenticationRepository,
|
|
leaderboardRepository: leaderboardRepository,
|
|
shareRepository: shareRepository,
|
|
pinballAudioPlayer: pinballAudioPlayer,
|
|
platformHelper: platformHelper,
|
|
);
|
|
}
|
|
|
|
void main() async {
|
|
Bloc.observer = AppBlocObserver();
|
|
runApp(await bootstrap());
|
|
}
|