Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/daohoangson/flutter-tinhte_demo
Tinh tế mobile apps built with Flutter for evaluation purposes.
https://github.com/daohoangson/flutter-tinhte_demo
android cloud-functions-for-firebase dart firebase-messaging flutter ios typescript xenforo
Last synced: 8 days ago
JSON representation
Tinh tế mobile apps built with Flutter for evaluation purposes.
- Host: GitHub
- URL: https://github.com/daohoangson/flutter-tinhte_demo
- Owner: daohoangson
- Created: 2018-10-04T07:45:40.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-24T18:16:19.000Z (15 days ago)
- Last Synced: 2024-10-26T03:19:02.094Z (14 days ago)
- Topics: android, cloud-functions-for-firebase, dart, firebase-messaging, flutter, ios, typescript, xenforo
- Language: Dart
- Homepage: https://tinhte.vn
- Size: 22.2 MB
- Stars: 29
- Watchers: 4
- Forks: 11
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tinhte_demo
Tinh tế mobile apps built with Flutter for evaluation purposes.
## Try it
Google Play Store: [Open Beta Testing](https://play.google.com/apps/testing/com.daohoangson.flutter_ttdemo)
Apple App Store: [TestFlight](https://testflight.apple.com/join/4lGGYeSU)
Or check the PR / commit comments, this repo has GitHub Actions setup to build and
upload the apps to GCS (automatically deleted after 30 days).## Features
- Supported platforms: Android, iOS, Linux, macOS, Windows
- State management with [provider](https://pub.dev/packages/provider)
- Apple login via [sign_in_with_apple](https://pub.dev/packages/sign_in_with_apple)
- Google login via [google_sign_in](https://pub.dev/packages/google_sign_in)
- Store authentication token with [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage)
- Render HTML with [flutter_widget_from_html](https://pub.dev/packages/flutter_widget_from_html)
- Push notification via [firebase_messaging](https://pub.dev/packages/firebase_messaging)
- Dark mode: on / off / auto
- Developer hidden menu (tap version in about dialog thrice)
- Android, iOS domain association with [built-in deep link support](https://docs.flutter.dev/ui/navigation/deep-linking)Screenshots
### Home
| Wide | Narrow |
|---------------------------------------------------|-----------------------------------------------------|
| ![](test/src/widgets/home/goldens/top_5/wide.png) | ![](test/src/widgets/home/goldens/top_5/narrow.png) |### Thread view
| Normal thread | With post replies | Poll |
|--------------------------------------------------------|--------------------------------------------------------|--------------------------------------------------------|
| ![](test/src/widgets/goldens/posts/thread_3704815.png) | ![](test/src/widgets/goldens/posts/thread_3704463.png) | ![](test/src/widgets/goldens/posts/thread_3441248.png) || Tinhte Fact | Background post |
|------------------------------------------------------|----------------------------------------------------------|
| ![](test/src/widgets/tinhte/goldens/tinhte_fact.png) | ![](test/src/widgets/tinhte/goldens/background_post.png) |### Interactive UI
| Compare | Galleria | YouTube |
|------------------------------------------------|-------------------------------------------------|------------------------------------------------|
| ![](test/src/widgets/goldens/html/compare.png) | ![](test/src/widgets/goldens/html/galleria.png) | ![](test/src/widgets/goldens/html/youtube.png) |## FAQ
### How to build the app?
All credentials are encrypted so you won't be able to compile the app immediately after a git pull.
You have to replace the files mentioned in [.gitattributes](https://github.com/daohoangson/flutter-tinhte_demo/blob/master/.gitattributes) to build.For example, `lib/config.encrypted.dart` should look like below:
```dart
import 'package:the_app/src/config.dart';class Config extends ConfigBase {
@override
final apiRoot = 'https://domain.com/community/api/index.php';@override
final clientId = 'abc';@override
final clientSecret = 'xyz';@override
final siteRoot = 'https://domain.com/community';
}
```See [How to use another package name?](#how-to-use-another-package-name) for more information to rename the app.
### How to support a new language?
1. Translate the `lib/l10n/intl_messages.arb` into your new language. Save it as `/lib/l10n/intl_(language_code).arb`.
1. Execute `./tool/l10n_2.sh` to generate l10n files
1. Update `supportedLocales` param in `lib/main.dart`
1. Update `isSupported` method in `lib/src/intl.dart`
1. Update `CFBundleLocalizations` in `ios/Runner/Info.plist` to include the new language code### How to use another package name?
Pick a unique package name across Play Store and App Store then update these files:
- `.github/workflows/flutter.yml` GCS_BUCKET, GCS_URL
- `android/app/build.gradle` applicationId, signingConfigs.release
- `android/app/src/main/AndroidManifest.xml` package, android:label
- `android/app/src/main/res/values/strings.xml` app_name
- `android/fastlane/metadata/android/en-US/` title.txt, full_description.txt, short_description.txt
- `android/fastlane/Appfile`
- `firebase/.firebaserc` projects.default
- `ios/Runner.xcodeproj/project.pbxproj` PRODUCT_BUNDLE_IDENTIFIER x2, PROVISIONING_PROFILE_SPECIFIER x2
- `ios/Runner/Info.plist` CFBundleName, CFBundleURLSchemes
- `ios/fastlane/Appfile`
- `ios/fastlane/Fastfile` xcargs (PROVISIONING_PROFILE_SPECIFIER), manifest (appURL, displayImageURL, fullSizeImageURL)
- `ios/fastlane/Matchfile`
- `linux/CMakeLists.txt` APPLICATION_ID
- `macos/Runner/Configs/AppInfo.xcconfig`
- `macos/Runner.xcodeproj/project.pbxproj` PROVISIONING_PROFILE_SPECIFIER x3
- `macos/fastlane/Appfile`
- `macos/fastlane/Fastfile` notarize
- `macos/fastlane/Matchfile`
- `windows/runner/Runner.rc`
- `pubspec.yaml` msix_config>identity_name
- Re-run `flutterfire configure` to update Firebase appsYou will also need to move the files within `android/app/src/main/java/com/daohoangson/flutter_ttdemo` to another directory to match the new Android package.
For Firebase Messaging, execute these commands to set the proper config variables:
```bash
firebase functions:config:set websub.hub=https://domain.com/xenforo/api/index.php\?subscriptionsfirebase functions:config:set websub.url=https://region-project.cloudfunctions.net/websub
```