/nasa_offline

A Kotlin-based app utilizing NASA's API with a clean, modular architecture for a seamless UI/UX experience.

Primary LanguageKotlin

๐ŸŒŒ NASA API App

Welcome to the NASA API App! ๐Ÿš€ This Kotlin-based application showcases the wonders of space through a sleek, modern interface, all powered by the NASA API.

๐Ÿ›๏ธ Project Architecture

Our app is built on a clean, modular architecture designed for maintainability and scalability. Hereโ€™s a quick breakdown:

1. ๐ŸŽจ UI

  • Purpose: Displays data and interacts with users.
  • Contents: All the app's pages and visual elements.
  • Subfolder: UI-Theme
    • Purpose: Defines the look and feel of the app.
    • Files:
      • Color.kt: ๐ŸŽจ Manages the color palette.
      • Theme.kt: ๐Ÿ“ Configures theme settings.
      • Type.kt: โœ’๏ธ Handles typography styles.

2. ๐ŸŒ Provider

  • Purpose: Manages network configurations and service instances.
  • Key File: NetworkProvider.kt

3. ๐Ÿ—‚๏ธ Model

  • Purpose: Structures and parses data from the NASA API.
  • Contents: Data model classes.

4. ๐Ÿ”„ Datasource

  • Purpose: Acts as the bridge between the network provider and the UI.
  • Functionality: Connects to the Provider, fetches data from the NASA API, and returns it to the app's UI for display.
  • Subfolder: State โ€” Manages different UI states, ensuring that the user interface updates reactively as data is retrieved.

๐Ÿš€ Summary

This app is a stellar example of applying clean architecture principles to Android development with Kotlin. By organizing the project into distinct layersโ€”UI, Theme, Provider, Model, and Datasourceโ€”we've created a codebase that's easy to maintain, test, and scale. Dive into each component to see how they work together to deliver a smooth and engaging user experience powered by the NASA API.


โœจ Explore the cosmos through our app and experience the universe at your fingertips! โœจ