• This repository has been archived on 09/Jun/2022
  • Stars
    star
    1,589
  • Rank 28,277 (Top 0.6 %)
  • Language
    Dart
  • License
    MIT License
  • Created almost 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps.

Flutter Architecture Blueprints

Flutter Architecture Blueprints is a project that introduces MVVM architecture and project structure approaches to developing Flutter apps.

Documentation

Installation

Environment

iOS

  • iOS 13+

Android

  • Android 5.1+
    • minSdkVersion 22
  • targetSdkVersion 30

App architecture

Code Style

Assets, Fonts

If added some assets or fonts

Models

If added some models for api results

Localizations

If added some localizations (i.g. edited *.arb)

Git Commit message style

Code collections

Project settings

Working status Category Description Codes
βœ… Dart Dart version pubspec.yaml
βœ… asdf asdf .tool-versions
βœ… Dart Switching between Development and Production environment constants.dart, runConfigurations, Makefile
βœ… Dart Lint / Analyze analysis_options.yaml
βœ… Android Kotlin version build.gradle
βœ… Android Apk attributes build.gradle (compileSdkVersion, applicationId, minSdkVersion, targetSdkVersion)
βœ… Android Switching between Development and Production environment build.gradle, Flavor dirs, signingConfigs
βœ… iOS Xcode version compatibilityVersion
βœ… iOS Podfile Podfile
βœ… iOS Switching between Development and Production environment xcconfig, Podfile
βœ… Firebase [Android] Switching between Development and Production google-service.json using flavors development and production
βœ… Firebase [iOS] Switching between Development and Production GoogleService-Info.plist using run script copy_google_service.sh, development and production
βœ… Firebase Auth SignIn, SignOut auth_data_source_impl.dart
βœ… Firebase Crashlytics Crash Reports main.dart
βœ… Firebase Performance Network monitoring with dio_firebase_performance app_dio.dart

Architecture

Working status Category Description Codes
βœ… Base Using Riverpod + Hooks + ChangeNotifier + MVVM news_page.dart, news_view_model.dart, news_repository.dart, news_data_source.dart
βœ… Networking Using dio and Retofit app_dio.dart, news_data_source.dart
βœ… Data Using Freezed model classes
βœ… Constants Define constants and route names constants.dart
βœ… Localization Switching between two languages with Intl package *.arb
βœ… Error handling Using Result pattern - A value that represents either a success or a failure, including an associated value in each case. result.dart, news_repository_impl.dart, home_page.dart

UI

Working status Category Description Codes
βœ… Theme Staticly Switch between light and dark themes app_theme.dart
βœ… Font Using Google font app_theme.dart
βœ… Transition Simple animation between screens using Hero article_item.dart, detail_page.dart

Testing

Working status Category Description Codes
βœ… API(Repositories) Using mocktail view_mode_test.dart
βœ…οΈ UI Using mocktail widget_test.dart
βœ… Coverage reports Send the report to Codecov on CI codecov.yml, codecov.sh, flutte-ci.yml

CI

Working status Category Description Codes
βœ… Git Git hooks for format and analyze package.json, Makefile
βœ… Git .gitignore settings .gitignore
βœ… Build Using Codemagic codemagic.yaml
βœ… Build Using Bitrise bitrise.yml
βœ… Build Using Github Actions .github/workflows/flutter-ci.yml

Getting Started

Setup

$ make setup
$ export PATH="$PATH":"$HOME/.pub-cache/bin" # Add your run-commands (.zshrc, .bashrc, etc)
$ make dependencies
$ make build-runner

How to add assets(images..)

  1. Add assets
  2. Run FlutterGen

How to add localizations

  1. Edit *.arb files.
  2. Run generate the flutter pub get

Make .apk and .ipa file

Android

$ make build-android-dev
$ make build-android-prd

iOS

$ make build-ios-dev
$ make build-ios-prd

Run app

$ make run-dev
$ make run-prd

Special Thanks.

Contributors

More Repositories

1

awesome-android-ui

A curated list of awesome Android UI/UX libraries
49,176
star
2

recyclerview-animators

An Android Animation library which easily add itemanimator to RecyclerView items.
Kotlin
11,457
star
3

glide-transformations

An Android transformation library providing a variety of image transformations for Glide.
Java
9,848
star
4

richeditor-android

RichEditor for Android is a beautiful Rich Text WYSIWYG Editor for Android.
Java
6,198
star
5

Blurry

Blurry is an easy blur library for Android
Java
5,547
star
6

awesome-android-libraries

This is an alphabetical list of libraries for Android development, the majority being actively maintained.
5,495
star
7

picasso-transformations

An Android transformation library providing a variety of image transformations for Picasso
Java
1,692
star
8

Takt

Takt is Android library for measuring the FPS using Choreographer.
Java
1,137
star
9

fresco-processors

An Android image processor library providing a variety of image transformations for Fresco.
Java
896
star
10

awesome-android-tools

A curated list of awesome Android Tools.
335
star
11

transformers

An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.
Kotlin
286
star
12

flutter_use

Play Flutter Hooks.
Dart
196
star
13

kotlin-mvvm

Sample for MVVM using Kotlin
Kotlin
180
star
14

droid

A command-line tool for checking Android OS version history written by Rust.
Rust
114
star
15

composable-images

The Composable Images is a library providing Jetpack Compose wrapper for Glide, Picasso, and Coil.
Kotlin
107
star
16

android-RoundedTextureView

RoundedTextureView Sample
Java
51
star
17

flutter_ua_client_hints

Provide User-Agent Client Hints to a Flutter app.
Dart
41
star
18

compose-gap

Easily adding gaps inside such as Columns and Rows for Jetpack Compose.
Kotlin
36
star
19

gifflen-sample

Bitmap color reduction and GIF encoding
C++
31
star
20

flutter_hooks_test

Simple and complete Flutter hooks testing utilities that encourage good testing practices.
Dart
30
star
21

vagrant-kali-linux

Vagrant Boxes - Kali Linux
25
star
22

NavPlayground

This is a sample of Navigation component.
Kotlin
18
star
23

version_gen

The Dart code generator for your package versions. 🎯
Dart
15
star
24

dockerfiles

A collection of Dockerfiles
Shell
12
star
25

wasabeef.jp

Build a web site using the Flutter Web.
Dart
11
star
26

import-asdf-tool-versions-action

βš’οΈ Import .tool-versions of asdf to GitHub Actions workflows.
JavaScript
11
star
27

adball

Adb All devices command
11
star
28

java-code-style

IntelliJ IDEA code style settings for Wasabeef's Java and Android projects.
6
star
29

wasabeef

3
star
30

dotfiles

Vim Script
3
star