{"id":13684843,"url":"https://github.com/devayansarkar/flutter-bloc-authentication-navigation","last_synced_at":"2025-05-01T00:33:27.290Z","repository":{"id":50497488,"uuid":"274175210","full_name":"devayansarkar/flutter-bloc-authentication-navigation","owner":"devayansarkar","description":"Flutter boiler plate app with BLoC architecture, authentication, navigation, Lottie animation and internationalisation","archived":false,"fork":false,"pushed_at":"2020-11-22T21:11:58.000Z","size":958,"stargazers_count":35,"open_issues_count":1,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-03T14:08:05.923Z","etag":null,"topics":["authentication","bloc","flutter","flutter-app","flutter-apps","flutter-bloc","flutter-bloc-pattern","flutter-examples","flutter-lottie","i10n","internationalization","lottie","lottie-animation","navigation"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devayansarkar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-22T15:29:12.000Z","updated_at":"2024-06-07T03:09:38.000Z","dependencies_parsed_at":"2022-08-03T00:01:28.813Z","dependency_job_id":null,"html_url":"https://github.com/devayansarkar/flutter-bloc-authentication-navigation","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devayansarkar%2Fflutter-bloc-authentication-navigation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devayansarkar%2Fflutter-bloc-authentication-navigation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devayansarkar%2Fflutter-bloc-authentication-navigation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devayansarkar%2Fflutter-bloc-authentication-navigation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devayansarkar","download_url":"https://codeload.github.com/devayansarkar/flutter-bloc-authentication-navigation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224230637,"owners_count":17277372,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","bloc","flutter","flutter-app","flutter-apps","flutter-bloc","flutter-bloc-pattern","flutter-examples","flutter-lottie","i10n","internationalization","lottie","lottie-animation","navigation"],"created_at":"2024-08-02T14:00:39.590Z","updated_at":"2024-11-12T06:30:43.792Z","avatar_url":"https://github.com/devayansarkar.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Flutter boiler plate project \n\nA new Flutter project.\n\n## Features\n- Authentication with Firebase\n- BLoC architecture\n- Internationalization\n- Environmnetalized application\n- Navigation\n\n# Running the app.\nThe application is environmentalized.\n\nAll the values that can be different per envionment are housed in [environment.dart](lib/common/constants)\n\nCurrently, there are three environments added, `development` and `production`.\n\n## Get Firebase configuration for iOS and Android.\nFollow this [guide](https://firebase.google.com/docs/flutter/setup?platform=ios) and get credentials for Android and iOS.\n\n- Change the package of the project from `com.flutter.mobile` to `your.package.com`\n- Change the name of the application from `flutter_mobile_application` to `your_application_name`\n- Create a Firebase project in [console](https://firebase.google.com/). \n- Add `android` and `ios` apps\n- Replace `google-services.json` present in `/android/app/google-services.json` with the one you created\n- Replace `GoogleService-Info.plist` present in `/ios/Runner/GoogleService-Info.plist` with the one you created\n- Once replaced, build the app and the app should be able to interact with Firebase.\n\n\n## Running the app locally \n\u003e Make sure everything is installed by running `flutter doctor`\n\n- Run an emulator\n- Run `flutter run lib/main_developement.dart`. This will run the app with developement env variables.\n\n## Flutter VSCode Plugins to make life easier\n- Flutter\n- Awesome Flutter Snippets\n- Flutter Intl\n\nYou can add confugurations in the `run` section for the various evironments:\n\n```json\n{\n    \"configurations\": [\n        {\n            \"name\": \"Dev\",\n            \"type\": \"dart\",\n            \"request\": \"launch\",\n            \"program\": \"lib/main_development.dart\"\n        },\n        {\n            \"name\": \"Prod\",\n            \"type\": \"dart\",\n            \"request\": \"launch\",\n            \"program\": \"lib/main_production.dart\"\n        }\n    ]\n}\n```\n\n# Application model\n[json_serializable](https://pub.dev/packages/json_serializable) and [json_annotation](https://pub.dev/packages/json_annotation) is used to generate code for JSON serialization and deserialization.\n\n`*.g.dart` file is generate per model class that has all the generated code. \n\n## Generating serialization and deserialization code\n- Add a model under a `models` folder in a `feature` package.\n- annotate with `json_annotations` as shown in this [example](https://github.com/dart-lang/json_serializable/tree/master/example)\n- Run `flutter pub run build_runner build`. The generated files will be placed in the same folder as the original model.\n- DO NOT EDIT the `*.g.dart` files manually. Any subsequent build will replace the manually edited files.\n \u003e You might see some errors but it can be ignored.\n# Application content\n\u003e Default language, `en` is already added.\n\n[intl_utils](https://pub.dev/packages/intl_utils) is used to generate contents for the app.\n\nContent is generated from `intl_\u003clang\u003e.arb` files in [l10n](/lib/l10n). \u003cbr/\u003e\nContent classes are generates in compile time and used to refer the content `strings`. A `generated` folder contains all the content.\n\n## Generating content from `*.arb`\nTo generate content\n- Add `intl_\u003clang\u003e.arb` under [l10n](/lib/l10n) folder.\n- Run `flutter pub run intl_utils:generate` to generate content classes for the languages.\n- Make sure to add the files in `vcs`\n- DO NOT EDIT the content files manually. Any subsequent build will replace the manually edited files.\n\n## Running a release \n\n### To run a release of development version of the app\n```bash\nflutter clean\nflutter build apk --release lib/main_development.dart\n```\n\n### To run a release of production version of the app\n```bash\nflutter clean\nflutter build apk --release lib/main_production.dart\n```\n\n### Folder structure\n```bash\n.\n├── assets\n│   └── images\n└── lib\n    ├── app\n    ├── common\n    │   ├── bloc\n    │   │   └── connectivity\n    │   ├── constants\n    │   ├── network\n    │   ├── routes\n    │   ├── styles\n    │   └── widgets\n    ├── features\n    │   ├── authentication\n    │   │   ├── bloc\n    │   │   └── repository\n    │   ├── landing\n    │   │   └── ui\n    │   ├── main\n    │   │   ├── bloc\n    │   │   ├── models\n    │   │   ├── pages\n    │   │   │   ├── account\n    │   │   │   │   ├── bloc\n    │   │   │   │   ├── repositories\n    │   │   │   │   └── ui\n    │   │   │   │       └── widgets\n    │   │   │   ├── feed\n    │   │   │   │   └── ui\n    │   │   │   ├── home\n    │   │   │   │   └── ui\n    │   │   │   └── notification\n    │   │   │       └── ui\n    │   │   ├── repositories\n    │   │   └── ui\n    │   │       └── widgets\n    │   ├── signin\n    │   │   ├── bloc\n    │   │   ├── respositories\n    │   │   └── ui\n    │   │       └── widgets\n    │   └── signup\n    │       ├── bloc\n    │       ├── respositories\n    │       └── ui\n    │           └── widgets\n    ├── generated\n    │   └── intl\n    └── l10n\n```\n### Screenshots\n\n\u003cimg src=\"/screenshots/signInPage.png\" width=\"300\" /\u003e\n\u003cimg src=\"/screenshots/signUpPage.png\" width=\"300\" /\u003e\n\u003cimg src=\"/screenshots/signInFailure.png\" width=\"300\" /\u003e\n\u003cimg src=\"/screenshots/signUpFailure.png\" width=\"300\" /\u003e\n\u003cimg src=\"/screenshots/signInSuccess.png\" width=\"300\" /\u003e\n\u003cimg src=\"/screenshots/signOut.png\" width=\"300\" /\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevayansarkar%2Fflutter-bloc-authentication-navigation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevayansarkar%2Fflutter-bloc-authentication-navigation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevayansarkar%2Fflutter-bloc-authentication-navigation/lists"}