Skip to content

8kt8/Unrd

Repository files navigation

UnrdApp

Protopyte project with intergration of API https://s3-eu-west-1.amazonaws.com

Best practices

  • Separation of concerns
  • KISS
  • DRY
  • SOLID
  • Commend Query
  • Clean Architecture

Architecture

Logic in application can be seen as segregated into four abstract layers:

User Interface layer:

  • renders ui model (View - part of UiComponent)
  • look&feel, animations, colors, styles, descriptions, layout
  • captures user interactions with UI elements and only routes them (NOT handling) into the system

Application layer (aka "Glue layer"):

  • controls user flow inside app e.g navigation
  • passes ui model to UI layer
  • handles user interaction with UI
  • integrates standalone pieces of functionality from other layers

Domain layer:

  • executes business domain flows aka "business logic

Infrastructure layer:

  • provides general functionality not specific to business domain
    • networking (Retrofit)
    • reactive (RxJava)

Remarks

UiModel has only data to display, for a View. Colors, styles, descriptions etc. are View implementation details, they are not part of UiModel.

Benefits :

Makes the code much more pleasant to work with!

  • No need to look for things
  • Readable and intuitive
  • Easy to reason about and modify
  • Productive and less stressful

Example Unit tests :

  • MainViewModelTest
  • ResultRepositoryTest
  • GetUiModelUseCaseTest

Example Unit tests :

  • MainViewModelTest
  • ResultRepositoryTest
  • GetUiModelUseCaseTest

My ideal CI World for Unrd :

I will propose fastlane to sign and build application and GitHub action for run CI remote(cost $0.008 per minute) For this kind of project monthly cost should be on acceptable level Possible solution is set our own Linux machine and configure Jenkins/Bitrise or use CircleApp

What should be cover by CI:

  • Run Unit test for each PR to develop and master
  • Run nightly daily internal release build
  • Internal release process(Firebase, Alpha, Beta)
  • Production release process

Nice to have

  • Translation process
  • Run nightly UI test
  • Run code formatter for each PR
  • Security check for release file(MobSF)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages