Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haroldadmin/moonshot
A SpaceX companion app for Android
https://github.com/haroldadmin/moonshot
android android-jetpack dagger dark-theme epoxy kotlin kotlin-coroutines material-design mvi spacex spacex-api vector
Last synced: 12 days ago
JSON representation
A SpaceX companion app for Android
- Host: GitHub
- URL: https://github.com/haroldadmin/moonshot
- Owner: haroldadmin
- Created: 2019-05-19T12:49:01.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-02T14:43:01.000Z (about 4 years ago)
- Last Synced: 2024-10-18T20:36:06.233Z (20 days ago)
- Topics: android, android-jetpack, dagger, dark-theme, epoxy, kotlin, kotlin-coroutines, material-design, mvi, spacex, spacex-api, vector
- Language: Kotlin
- Homepage:
- Size: 1.69 MB
- Stars: 161
- Watchers: 9
- Forks: 18
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MoonShot
###### A SpaceX Companion AppMoonShot is a SpaceX companion app to help you keep up with their launches. It uses the [SpaceX API](https://github.com/r-spacex/SpaceX-API) to fetch data.
MoonShot is built using [Vector](https://github.com/haroldadmin/Vector), a Kotlin Coroutines based MVI architecture library for Android.
### Features
* View Next Launch information right on the home page
* Get reminders before every launch
* View all the rockets used by SpaceX along with the launches they have attempted
* View Launch Pad information about every launch
* Ability to search through all launches, launch pads and rockets.
* Complete offline support.
* Clean, minimal design with Dark theme support.
* And a lot, lot more.### Project Architecture
* [Vector](https://github.com/haroldadmin/Vector), for an MVI architecture pattern and state management.
* [Kotlin Coroutines](https://github.com/Kotlin/kotlinx.coroutines) for nearly all asynchronous operations
* [Network Response Adapter](https://github.com/haroldadmin/CoroutinesNetworkResponseAdapter) to easily handle error states in network calls.
* [Epoxy](https://github.com/airbnb/Epoxy) to build most of the UI.
* [Room](https://developer.android.com/topic/libraries/architecture/room) for the local persistence layer
* [Moshi](https://github.com/square/moshi) for JSON parsing
* [Dagger](https://github.com/google/dagger) for Dependency Injection.
* [Navigation Architecture Component](https://developer.android.com/guide/navigation/navigation-getting-started) for in-app navigation
* Multi Module app following Modularization by feature, with every feature sharing the same repository layer### Contribution
I am happy to accept contributions from the community. Please file issues before making Pull Requests.
This project uses [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics) for crash reporting. To setup your project locally, you will need to create an new Firebase Project on the [Firebase Console](https://console.firebase.google.com). Once the setup process is complete, you will have the opportunity to download the `google-services.json` file. Place it in the `app/` folder and build your project.