JokesApp
A demo app to show random jokes, with the aim of showing Clean Architecture and Clean code principles in a MVVM setup, LiveData and Rxjava.
There's a cache memory used to save and retrieve a custom joke. In order to show a data cache implementation.
About the project
For simplicity, I've chosen the ICNDb free API: http://www.icndb.com/api/
Initial approach
The initial Clean Architecture approach was developed by me in a Bitbucket repository using:
- MVVM
- RXJava
Goals
In order to follow the latest Android standards, the project will include the next points (progressively):
Complete the VM unit tests(DONE)LiveData, instead of Rx (outputs)(DONE)UI Tests using Espresso and Robot pattern(reference Adam McNeilly) (DONE)MockWebServer for testing HTTP clients(DONE)Add Navigation Module(DONE)Improve UI elements(DONE)Add feature Detail(DONE)- Change modules for feature Module, in order to create two branches:
Feature-ModulesandData-Layer-Modules
Libraries Used
- Rx for reactive style programming (from VM to Data).
- LiveData for reactive style programming (from VM to UI).
- Navigation for in-app navigation.
- Rx for cache storage.
- Dagger2 for dependency injection.
- Retrofit for REST api communication.
- Timber for logging.
- Espresso for UI tests.
- Mockito-Kotlin for mocking in tests.
- MockWebServer for Instrumentation tests.
- AndroidX Test Library for providing JUnit4 and functions as
launchActivityin UI tests,
Demo
License
Copyright 2019 Fernando Prieto Moyano
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.


