nikialeksey / image-search

Another android app architecture sample

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

build status codecov

License: MIT

How to build and run

Flickr images

You should create local.properties file if you have not yet and add there flickr.api.key field with flickr api key:

flickr.api.key=<your flickr api key>

Then, install it:

./gradlew installDebug

Fake images

./gradlew installInstrumented

Architecture aspects

Code base conventions

Project uses feature modules approach. Every feature has at least two modules: api module and primary implementation module. For example, images feature has three modules:

  • api - API module
  • flickr - primary implementation
  • fake - additional implementation with providing images from assets for testing purposes

There is app module which contains entry points for application. There are several entry points with different code base:

  • debug with primary code base (flickr images provider)
  • release with primary code base (flickr images provider)
  • instrumented entry point without flickr images provider, but with fakes for images

So when you run:

./gradlew installInstrumented

you build and install only the code with :images:fake and without :images:flickr module.

Requirements protocol

Project does not use any DI framework. When a feature-module needs for external communication, it describes the requirements in api module, and app module must implement it in an entry point, which use the feature.

Thanks

Icons from flaticon.com

About

Another android app architecture sample

License:MIT License


Languages

Language:Kotlin 92.1%Language:Java 7.9%