Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/eyedol/github-android-client

Unofficial Github Android-client
https://github.com/eyedol/github-android-client

android architecture modularized

Last synced: about 5 hours ago
JSON representation

Unofficial Github Android-client

Awesome Lists containing this project

README

        

# POC Of a Modularized Architecture

```
+---------------------+
| |
| |
+--------------+| app +-----------+
| | | |
| | | |
| | | |
| +----------+----------+ |
| | |
| | |
| | |
| | |
| | |
+------+------+ +-------+------+ +------+------+
| | | | | |
| :users | | :user | | :login |
| +---+ | | +---+ |
| | | | | | | |
+------+------+ | +-------+------+ | +--------+----+
| | | | |
| | | | |
| | | | |
| | | | |
| | +----------+--------+ | |
| | | | | |
| +----+ :user-model +--+ |
| | | |
| +-------------------+ |
| |
| |
| |
| |
+------+---------------------------------------------------+-----+
| |
| |
| :base |
| |
| |
+----------------------------------------------------------------+

```

**app:** The composed application that would be built and packaged as apk. It has all the feature related modules.

**user-model:** A **shared** module to be used by `user` related feature. Essentially a `user` model class.

**user:** A feature module for showing a particular user details. This module has the `base` and `user-model` modules.

**users:** A feature module for showing a list of users. This module has the `base` and `user-model` modules as well.

**login:** A feature module for allowing a user to login. This module has the `base` and `user-model` modules.

**base:** A shared module to be used by all feature related modules.

# Navigation

[Deep link](https://developer.android.com/training/app-links/deep-linking) handles all the navigations

There's an `AppNavigation` class in the base module navigating users to the different screens. This is solely using deep links for launching all `Activities`

# Sample Demo