Day155 — ReactNative vs Flutter, Amplify vs Firebase

I researched on which cross-platform solution I wanted to use in my next project which is a offline-first mobile app. Website is only for later stage.

Pros to use Flutter

  • officially support Material 3
  • want to try new language (most important)


Pros to use React Native

  • can have nice ui kit,
  • I know typescript
  • have experience on a RN project
  • Expo provides a lot of features
  • can share business logic with website (not applicable to my case, I go for mobile-first)
  • support OTA app update (can be most important thing for some people. it can introduce security concern. If a fix is that important, a force update mechanism (an api check upon app launch) can also solve the problem)


I am still researching on which backend do I want to use. There are two candidates, AWS amplify and Firebase. Both support flutter and can achieve offline-first approach. Currently, I lean on Amplify.

Pros to use Amplify

  • support GraphQL natively, provide better query experience
  • offline database support by Amplify DataStore
  • database type is selectable, MySQL, PostgreSQL DynamoDB(NoSQL), etc.


  • aws configuration seems troublesome and complex to kickstart
  • difficult to opt out from Amplify eco-system
  • only Analytics, No Crash report

Pro to use Firebase

  • strong integration with Flutter because it is a Google product
  • can support GraphQL using Firebase Function
  • offline database support
  • more beginner friendly on project setup
  • has Crashlytics


  • Firestore is NoSQL, but object must have relationship in some degree
  • difficult to opt out from Firebase eco-system

video reference



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store