Skip to content

This app is part of a technical interview, but it can be used as a seed project.

Notifications You must be signed in to change notification settings

davidkaste/gnbtransactions

Repository files navigation

GNB Transactions

This app is part of a technical interview, but it can be used as a seed project.

1. Technical information

1.1. Tech Stack

Feature Library Version
Dependency Injection (IoC) Dagger Hilt 2.40
HTTP Requests Retrofit 2.9.0
Async/Reactivity Coroutines + Flow 1.5.0
Unit Tests JUnit 4.13.2
Mocking library MockK 1.11.10

1.2. Architecture

The source code is divided into 3 blocks, data, domain and features. The first one contains code that has access to the sources of data. domain defines business logic, entities and use cases. And the last of them, presentation, has the UI layer with activities/fragments, viewmodels, etc.

This project has been developed following the guidelines of clean code and clean architecture, from Robert C. Martin.

1.2.1. data package

It contains the datasources, repository implementations and API models. Datasources are in charge of requesting the data to API services, local databases or any other source of data. Repositories consume data from the datasources and transform it into domain entities.

1.2.2. domain package

It contains the use cases, domain entities and repositories specs. Use cases are a single method classes that access to one or more repositories to get the data to the presentation layer. Repositories are specified in this layer to avoid having dependencies to the data layer.

1.2.3. presentation package

It contains the viewmodels and views (activities, fragments...). The ViewModel exposes an observable model and methods that the _view: will subscribe or call to interact with the business logic.

2. Future work

  • Use Navigation Component
  • Migrate from Koin to Dagger Hilt (In fact, Koin is not a DI library, but a service locator)
  • UI + Instrumented Tests
    • Adapters instrumented tests
    • Activities Espresso tests
  • Migrate UI to Jetpack Compose

Feedback

Pros

  • TBD

Cons

  • TBD

About

This app is part of a technical interview, but it can be used as a seed project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages