JetSpacer is an android client that merges multiple space-related APIs including NASA's APOD and Mars Rover's API into a single, simple application with a good UI.
- As this project is meant as a "client," you can change API keys within the app.
-
Kotlin - The app is completely written in Kotlin
-
Jetpack Compose - Jetpack Compose is used to write the UI, making it a completely Jetpack Compose-based project
-
Material 3 - Used for building the UI with existing components provided by the library
-
Ktor-client - Used to make HTTP requests to the respective APIs
-
Room - Used for local database
-
Kotlin Coroutines - Used for managing background tasks
-
Kotlin Flows - Used for handling asynchronous data streams
-
Kotlinx Serialization - Used for deserializing API responses.
-
Coil - Used for loading images and Architecture Components such as DataStore, Navigation, ViewModel are also used to make this app alive!
Home Screen | Space Screen | News Screen |
---|---|---|
Bookmarks Screen |
---|
Other Screens |
---|
The latest stable release of JetSpacer is available on GitHub Releases. You can download the APK file from there; or click here
- Certain UI elements are not optimized for different screen sizes
- The UI implementation of the NASA video APOD Card requires improvement
- Option to manually select the theme, instead of referring to system settings by default
- Improved user interface for better user experience
- Optimization of UI elements for different screen sizes
- Search and sorting options in bookmarks
- Caching wherever possible
- New UI for Bookmarks, Settings, News, Home Screen(s)
- New section for exploring few selected space related subreddit(s)
- Max usage of News-API (as of now, app only retrieves Top-Headlines)
Note: This project is in active development and new features and improvements will be added over time.
MIT License
Copyright (c) 2023 Saketh Pathike
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.