반응형
플러터로 개발시에 라우팅을 AutoRoute에게 맡기고 있다.
https://pub.dev/packages/auto_route
AutoRoute에 대해서는 기회가 되면 다음에 포스팅을 해보는걸로 하고,
지금은 AutoRoute를 사용하다가 Firebase 설정시에 문제가 되었던 것에 대한 해답지를 적어볼려한다.
AutoRoute를 사용하게 되면,
기존에 App()에 MaterialApp을 사용할 수가 없고 MaterialApp.router 를 사용해야한다.
<기존>
class App extends StatelessWidget {
@override
Widget build(BuildContext context){
return MaterialApp(
...
);
}
<AutoRoute 사용시>
class App extends StatelessWidget {
// make sure you don't initiate your router
// inside of the build function.
final _appRouter = AppRouter();
@override
Widget build(BuildContext context){
return MaterialApp.router(
routerDelegate: _appRouter.delegate(),
routeInformationParser: _appRouter.defaultRouteParser(),
);
}
여기까지는 크게 문제 없이 플러터로 개발을 잘 하고 있었다.
Firebase를 붙이기 전까지...
Firebase를 붙이고 Analytics을 설정하려고 하는데
기본적으로 Firebase에 Analytics 방법은 아래와 같다.
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
static FirebaseAnalytics analytics = FirebaseAnalytics.instance;
static FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: analytics);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase Analytics Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
navigatorObservers: <NavigatorObserver>[observer],
home: MyHomePage(
title: 'Firebase Analytics Demo',
analytics: analytics,
observer: observer,
),
);
}
}
MaterialApp에 navigatorObservers에 FirebaseAnalyticsObserver를 붙여주면 끝이다.
하지만 AutoRoute를 사용하기 위한 MaterialApp.router에도 똑같이 해주면 되겠지 했지만,
없다....!
분명 어딘가에 있을꺼라고 생각하며, 열심히 찾던 결과,
여기다!
AutoRoute에 사용수명이 늘었습니다.
AutoRoute를 검색하다가 발견한 사이트도 함께 공유합니다.
pub.dev이나 github에 내용보다 좀 더 실용적으로 된 Docs인거같네요.
반응형
'개발아빠 > Flutter' 카테고리의 다른 글
[Flutter] 공통 AppBar 만들기 aka BaseAppBar (1) | 2021.02.09 |
---|---|
[Flutter] 텍스트필드(TextField) Counter 위치 변경하기 (0) | 2021.01.08 |
플러터(Flutter)에서 Fluro 사용하여 Router 설정하기 (5) | 2020.11.05 |
플러터(Flutter)로 화폐 단위 표현하기 / Currency Format (1) | 2020.10.20 |
플러터(Flutter) 네이티브앱과 Web에서 웹뷰 처리하기 (1) | 2020.10.12 |