A project to learn about Clean Architecture

Overview

Star Wars - Clean Architecture

I'm developing this App aiming to learn about Clean Architecture and Dart/Flutter

It's a very simple app which the user can only access and see some information. As I was learning about clean architecture, I focused more on the code structure than the app's features/functionality.

My code references were:

Layout:

To develop the layout I based on some layouts I found browsing the internet:

  • Dashboard - List Design
  • Characters (I didn't remember of any specific reference)
  • Films - Slider Layout
  • Planets - Page Layout - this one I just change some features, the code is quite the same
  • Species, Starships, Vehicles - Expandable
  • I downloaded each image i'm using in this project. it was sooo boring...

I'm not proud of this layout, mainly because it was not the goal of this project. However, I am open to suggestions. If someone wants to suggest a better layout, I may update the project.

Data:

I'm consuming the APIs from SWAPI.

Project Development:

  • Flutter version: 2.2.0
  • Dart version: >=2.12.0 <3.0.0 (Null Safety)
  • Functional Programing - dartz version: 0.10.0-nullsafety.2
  • Remote API:
  • Local Persistence:
    • SQL Database engine - sqflite version: 2.0.0+3
    • String-based path manipulation library - path version: 1.8.0
  • State Management - flutter_bloC version: 7.0.0
  • Value Equality - equatable version: 2.0.2
  • Service Locator - get_it version: 7.1.3
  • Shared Preferences - shared_preferences version: 2.0.6
  • Carousel Slider (Layout)- carousel_slider version: 4.0.0-nullsafety.0
  • Widget that expand and collapse (Layout) - expandable version: 5.0.1

Screenshots

Films screen Character screen Character details screen Starships screen Vehicles screen Species screen Planets screen Connection error Light Dashboard Light Side Menu

To Do:

Some Improvements I'm planning to do

  • Create Tests for Films, Planets, Starships, Species, Vehicles and Core components*
  • Finish Planets screen
  • Switch Theme structure (Shared Preferences)
  • Switch between Light/Dark Theme - (Probably I will include it on Drawer, AppBar or Both.)
  • Identify any SharePreferences change using Get_it Provider**.
  • Develop the local data structure (local database)
  • Download the online data only once (after that use local data -local database-)
  • Identify any DataBase change using Get_it
  • Layout Improvements on Lists (Like list of movies on Character Detail Page. Replace id by tile)
  • Optimize the similar code between different features
  • Check if the Clean Architecture concepts are still being properly used
  • (Optional) Include images (no background preferably) for Vehicles, Species and Planets
  • (Optional) Layout Update (design a more professional layout)

(*)I know it's wrong to write tests later, but I was learning about Clean Arch not TDD. However, when finish developing the People feature, I did the others by using CTRL+C/CTRL+V (... And I was too lazy to do the tests).

(**) For a professional project, I would choose Get_It OR Provider . However, here I am using both to be able to show the utilization of as many resources as possible.

Any suggestion, please let me know!

You might also like...

Number trivia Android and ios application using flutter clean architecture

demo_project A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Jun 9, 2022

Coin Dino is a Flutter cryptocurrency application that is made with Clean + Layered Architecture.

Coin Dino is a Flutter cryptocurrency application that is made with Clean + Layered Architecture.

Big cryptocurrency application that shows you details about cryptocurrencies and many other things. Made with Clean Code + Layered Architecture. State management: MobX + GetIt

Oct 4, 2022

Real-world movie database mobile application with the Flutter SDK and DDD clean architecture.

Real-world movie database mobile application with the Flutter SDK and DDD clean architecture.

Moving Pictures Moving Pictures is a mobile application built with the Flutter SDK for Android and iOS. It’s an application that gets the information

Jan 7, 2023

Flutter App to save notes secure, using cryptography, clean architecture and some design patterns.

notes A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Mar 28, 2022

Clean architecture - practice

clean_architecture A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you start

Nov 26, 2021

A study about clean architecture and TDD(Test Driven Development) in Flutter.

coin_checker A study about clean architecture and TDD(Test Driven Development) in Flutter. Getting Started This project is a starting point for a Flut

Jan 25, 2022

A sample app that implement Uncle Bob's Clean Architecture in Flutter

A sample app that implement Uncle Bob's Clean Architecture in Flutter

Clean Architecture for Flutter This a sample app that implement Uncle Bob's Clea

Nov 8, 2022

Example repository of handling permissions in Flutter using BLoC and Clean Architecture.

flutter_permission_handling A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get

Dec 28, 2021

Pokedex app built with Flutter (with lots of animations) using Clean Architecture

Pokedex app built with Flutter (with lots of animations) using Clean Architecture

Flutter Pokedex Pokedex app built with Flutter App preview Video demo Installation Add Flutter to your machine Open this project folder with Terminal/

Dec 28, 2022
Releases(v0.0.1)
Owner
Leonardo Presoto de Oliveira
https://www.linkedin.com/in/leonardo-presoto/
Leonardo Presoto de Oliveira
The Clean architecture and manage the Flutter project to make scalable with a modularization approach

Clean architecture sample project Flutter template project to explore the Clean architecture and manage the Flutter project to make scalable with a mo

null 5 Oct 18, 2022
A Package providing Core functionality/Template to start off a Clean Architecture based project

A Package providing Core functionality/Template to start off a Clean Architecture based project Features Provides with APIResult & UseCaseResult model

null 1 Dec 25, 2021
App to learn how to code with a lot of great courses and ideas of projects to do, focused on productivity and fast learn. 💻

skoola A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Batista Tony 3 Oct 29, 2021
Pokedex app built with Flutter (with lots of animations) using Clean Architecture

Flutter Pokedex Pokedex app built with Flutter App preview Video demo Installation Add Flutter to your machine Open this project folder with Terminal/

Pham Sy Hung 1.8k Jan 8, 2023
App dos Carros com Flutter e Clean Architecture

Carros Flutter - App Exemplo com Clean Architecture Possui apenas 3 telas para facilitar o entendimento. Arquitetura Baseado na proposta do Reso Coder

null 24 Jun 8, 2022
A Flutter application that recommends activities to do in free time. Made with Clean + Layered Architecture

im_bored_app Bored? is a Flutter application that suggests different activities to do in your free time. Available platforms: iOS, Android, iPadOS App

Batuhan Karababa 16 Oct 15, 2022
Amir Khan 47 Jan 8, 2023
DoneIt is a sample note app 📝 Flutter application 📱 built to demonstrate use of Clean Architecture tools. Dedicated to all Flutter Developers with ❤️.

DoneIt ?? DoneIt is a sample note app ?? Flutter application ?? built to demonstrate use of Clean Architecture tools. Dedicated to all Flutter Develop

Shubham Chhimpa 175 Dec 24, 2022
Flutter ToDo application using Clean Code architecture

DoneIt ?? DoneIt is a sample note app ?? Flutter application ?? built to demonstrate use of Clean Architecture tools. Dedicated to all Flutter Develop

Harshal 7 Dec 27, 2022
Flutter travel app with clean architecture and firebase

atlas A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this is

Umut Barış Çoşkun 1 Jan 25, 2022