개발아빠/Flutter

AutoRoute에서 Firebase Analytics 설정하기

육아개발아빠 2023. 1. 5. 10:04
반응형

플러터로 개발시에 라우팅을 AutoRoute에게 맡기고 있다. 

 

https://pub.dev/packages/auto_route

 

auto_route | Flutter Package

AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.

pub.dev

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인거같네요.

https://autoroute.vercel.app/introduction

반응형