이번 시간에는 firebase 환경 설정에 대한 테스트를 진행하겠습니다.
추가된 패키지는 아래와 같습니다.
firebase_core: ^1.20.0
main.dart
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:firebase_core/firebase_core.dart';
import 'src/apple_app.dart';
import 'src/screens/splash/splash_screen.dart';
import 'src/utils/logger.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// start_screen 에서 provider 를 사용하는데, 값을 변경하는게 아니고 사용만
// 컨트롤러 자체만 사용 하는 경우는 아래 처럼 확실하게 컴파일러에게 알려줘야 한다
Provider.debugCheckInvalidValueType = null;
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// final Future<FirebaseApp> _initialization = Firebase.initializeApp();
@override
Widget build(BuildContext context) {
// return const SplashScreen();
return FutureBuilder<Object>(
future: Future.delayed(const Duration(seconds: 2), () => 100),
// future: _initialization,
builder: (context, snapshot) {
// 장면전환을 천천히 부드럽게 처리하는 위젯
return AnimatedSwitcher(
duration: const Duration(milliseconds: 500), child: _splashLoadingWidget(snapshot));
});
}
// FutureBuilder 에서 딜레이 있음, 딜레이 동안은 SplashScreen(), 딜레이후에는 AppleApp() 로 이동
StatelessWidget _splashLoadingWidget(AsyncSnapshot<Object> snapshot) {
// future has 3 state, hasError, hasData, waiting
if (snapshot.hasError) {
logger.d('error occur while loading ~');
return const Text('Error Occur');
// } else if (snapshot.hasData) {
} else if (snapshot.connectionState == ConnectionState.done) {
// logger.d('data is ${snapshot.data.toString()}');
return AppleApp();
} else {
return const SplashScreen();
}
}
}
android/build.gradle 수정 사항(참고용)
android/app/build.gradle 수정 사항(참고용), 최소버전 오류가 있어서 19 로 조정함.
최소버전(minSdkVersion) 오류는 아래처럼 처리할수도 있다.
16을 19로 변경.
'Flutter > 12 Clone 'Used Goods app'' 카테고리의 다른 글
[Flutter] Clone - 당근마켓19(Shimmer) (0) | 2022.08.02 |
---|---|
[Flutter] Clone - 당근마켓18(Phone Auth) (0) | 2022.07.28 |
[Flutter] Clone - 당근마켓16(Firebase 환경설정) (0) | 2022.07.27 |
[Flutter] Clone - 당근마켓15(HomeScreen, ItemsPage) (0) | 2022.07.27 |
[Flutter] Clone - 당근마켓14(pageController with provider) (0) | 2022.07.26 |