Skip to content

nikialeksey/image-search

Repository files navigation

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