App about beautiful places
Play Store link: https://play.google.com/store/apps/details?id=com.litedevs.pathika.android
To compile the android app:
- link it to firebase project which will generate firebase_options.dart
- provide ads config (for android, ios) or ads folder locally and remove reference to ads in the app.
- create app/lib/ads/ads_secret.dart
- create constants
const androidAdConfig = AdConfig( appId: '<app_id_from_google_ads>', adsId: {placesBottomBarPromo: '<ad_id_from_google_ad>'});
- Run firebase hosting from cdn folder with
firebase emulators:start
command - Replace app/lib/common/constants.dart base url with url provided by firebase emulator or remove if check and use https://cdn.pathika.litedevs.com
- Run the app in debug mode on android/ios. Release mode requires some files which are not there.
Some secret files are required to make the app full operational. There is a folder named secret at top level which isn't committed to Git due to security reasons. Following files are there in it
- AuthKey_XXXXXXXXXXX.p8
- GOOGLE_COULD_API_KEY.txt
- android_signing_secret.properties
- apple-distribution-certificate.p12
- deployment_cert.der
- google-services.json
- XXXXXXXX.keystore
- pathika-XXXXXXXXXXXX.json
- pathika_aab.keystore
Apart from that, there are two more files which are not checked in
- tools/pathika_google_places_tool/pathika_google_places_tool/lib/secrets.dart
- tools/translation_parser/data/FCM_SERVER_KEY.txt
The project was build in Jan 2020 when I started learning flutter. I have migrated it to flutter 3.7.0.
- Flutter Upgrade ✅
- Android upgrade ✅
- Bloc based architecture ✅
- Freezed Model classes ✅
- Retrofit ✅
- Gold theme ✅
- Caching ✅
- Context extensions ✅
- Hive ✅
- Go Router ✅
- Adaptive Widgets ✅
- Logging ✅
- Widgets composition ✅
- Theme Extensions ✅
- Navigation ✅
- Cupertino Page ✅
- Firebase functions migration ✅
- Cupertino (iOS Related) ✅
- Folder Structure ✅
- Localization ✅
- Neon Theme
- Custom Theme
- Theme for Icons and other widgets
- Transition
- Analytics
- Crashlytics
- Unit Tests
- Widget Tests
- Integration Tests
- Notifications
- Launch Animation
- Web Support
- iPad Support
- Windows Support
- Mac Support
- Linux Support
- Material3
- WidgetBook.io
- Tappable (read out loud content of cards)
- Zoned
Apache License 2.0