Godt.no is a simple project that demonstrates usage of clean architecture with MVP pattern. To see my approach to clean architecure with MVVM pattern see Daily Set Solver.
Godt.no is Norways most popular food website. The site contains food recipes, restaurant reviews, customer blogs/opinions and food articles.
This app consist of a simple list of the first 50 recipes in the godt api, containing title, image, description and ingredient names. It is possible to search for a recipe based on the ingredients or title of the recipe and the app works offline after parsing the feed for the first time.
Project is using clean architecture along with MVP pattern. It's also written entirely in kotlin with support from RxJava.
What is clean architecture? The Clean Architecture demonstrates strategies to help solve or avoid common problems. It is designed to be testable, independent from UI, database or any external data source. Read more in articles below:
Architecting Android...The clean way?
What is all this Clean Architecture jibber-jabber about?
Android Architecture Blueprints
- Kotlin - future of Android developement
- RxJava2 - for data manipulation
- RxAndroid - for schedulers and more
- Dagger 2 - for dependency injection
- Pine,Timber - for simple logging
- Retrofit2 - for REST Api
- Realm - for caching data for offline use
Application is also build upon two boilerplate projects:
- Android Architecture Blueprints - Official Google view on Clean Architecture
- Kotlin-MVP-Example - MVP Boilerplate in kotlin
- Android Clean Architecture Boilerplate - Clean Architecture Boilerplate in kotlin
Copyright 2018 Bartłomiej Kierys
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.