An Android app consuming a Star Wars API to display movie characters,show your recent searches and save some of your favorite characters.
Min Api Level : 21 Supports Over 87% Devices
Build System : Gradle
Android Studio 4.0 +
ποΈ π§ This Branch is still work in progress
To See Previous Implementation - Modularised by layer
First of I believe the best code is the simplest code,no need to be all smart because maintainig it is a pain.
This is an attempt to modularize by feature which in my opinion makes working with the codebase much easier as its more organized and the structure reduces stepping over each other if you are working on the codebase with other people.
More Content to be added soon...
TODO :)
Libraries used in the whole application are:
- Jetpackπ
- Viewmodel - Manage UI related data in a lifecycle conscious way and act as a channel between use cases and ui
- Data Binding - support library that allows binding of UI components in layouts to data sources,binds character details and search results to UI
- Room - Provides abstraction layer over SQLite
- Retrofit - type safe http client and supports coroutines out of the box.
- Moshi - JSON Parser,used to parse requests on the data layer for Entities and understands Kotlin non-nullable and default parameters
- okhttp-logging-interceptor - logs HTTP request and response data.
- kotlinx.coroutines - Library Support for coroutines,provides
runBlocking
coroutine builder used in tests - Truth - Assertions Library,provides readability as far as assertions are concerned
- MockWebServer - web server for testing HTTP clients ,verify requests and responses on the star wars api with the retrofit client.
- Leak Canary - Leak Detection Library
- Material Design - build awesome beautiful UIs.π₯π₯
- Firebase - Backend As A Service for faster mobile development.
- Crashylitics - Provide Realtime crash reports from users end.
- Koin - A pragmatic lightweight dependency injection framework for Kotlin
- Robolectric - Unit test on android framework.
- Espresso - Test framework to write UI Tests
- recyclerview-animators - Recycler View Animations
- AboutLibraries -provide info on used open source libraries.
- Thanks to Zafer Celaloglu for the Dagger to Koin Refactor
Feel free to contribute in any way to the project from typos in docs to code review are all welcome.
If its a major refactor open up an issue first and lets chat first about it :)
The codebase in most cases will be ahead of whats on the store.
![]() |
![]() |
![]() |
---|
Google Play and the Google Play logo are trademarks of Google LLC.
Star Wars and all associated names are copyright Lucasfilm ltd.
Copyright 2019 David Odari
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
https://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.