Skip to content
This repository has been archived by the owner on Apr 30, 2024. It is now read-only.
/ JetSpacer Public archive

An Android client that merges multiple space-related APIs into a single, simple application. Built with Jetpack Compose and Kotlin.

License

Notifications You must be signed in to change notification settings

sakethpathike/JetSpacer

Repository files navigation

JetSpacer

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.

Tech Stack

  • 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!

  • "JetSpacer" uses the MVVM architecture concept to keep code organised and separate business logic from the UI.

Screenshots

Home Screen Space Screen News Screen
Screenshot_2023_02_02_16_59_09_74_a723baeefcc773b465b5b84fb7477d54 Screenshot_2023_02_02_16_58_08_73_a723baeefcc773b465b5b84fb7477d54 Screenshot_2023_02_03_23_09_27_08_a723baeefcc773b465b5b84fb7477d54
Bookmarks Screen
Screenshot_2023_02_02_17_11_47_18_a723baeefcc773b465b5b84fb7477d54
Other Screens
Screenshot_2023_02_02_17_00_09_58_a723baeefcc773b465b5b84fb7477d54
Screenshot_2023_02_02_17_02_03_54_a723baeefcc773b465b5b84fb7477d54
Screenshot_2023_02_02_17_02_14_97_a723baeefcc773b465b5b84fb7477d54
Screenshot_2023_02_02_17_03_21_48_a723baeefcc773b465b5b84fb7477d54
Screenshot_2023_02_02_22_12_50_95_a723baeefcc773b465b5b84fb7477d54

GitHub Releases

The latest stable release of JetSpacer is available on GitHub Releases. You can download the APK file from there; or click here

Known Issues

  • Certain UI elements are not optimized for different screen sizes
  • The UI implementation of the NASA video APOD Card requires improvement

Upcoming Updates

  • 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.

License

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.