Skip to content

A sample Android application that consumes the Space Flight API, built with modern Android development tools and clean architecture principles

Notifications You must be signed in to change notification settings

ocetin00/SpaceFlightAndroidApp

Repository files navigation

Space Flight App

A sample Android application that consumes the Space Flight API, built with modern Android development tools and clean architecture principles.

Features

  • List screen with
  • Detail Screen
  • Fav Screen
  • Pagination with Offline support
  • Searching in list
  • Shimmer for loading screen

Architecture Overview

The application is structured using a multi-module, clean architecture approach with three main layers:

Core Layer

Contains shared and reusable modules:

  • data
  • domain
  • network
  • database
  • common
  • design-system

Feature Layer

Each feature is isolated into its own module and contains

  • ViewModels
  • Composable screens

This layer depends only the core layer(desing_system, domain,model,common)


App Layer

Responsible for:

  • Bringing all feature modules together
  • Handling navigation between screens
  • Hosting the main application entry point

Data Flow & State Management

The architecture follows a reactive programming model based on
Unidirectional Data Flow (UDF):

https://developer.android.com/jetpack/guide/ui-layer#udf


Tech Stack & Libraries

Core Libraries

  • Retrofit – API requests
  • Room – Local database & pagination
  • Sandwich – Safe API response handling
  • Hilt – Dependency Injection
  • Jetpack Compose – UI
  • Compose Navigation (Type-Safe) – Navigation

Testing

The project includes multiple test types to ensure reliability:

  • Compose UI Tests – Verify UI behavior
  • Navigation Tests – Ensure correct navigation flow
  • ViewModel Unit Tests – Validate state updates
  • API Response Tests – Ensure correct JSON parsing

Testing Libraries

  • MockK – For mocking dependencies
  • Turbine – For testing Kotlin Flows
  • OkHttp MockWebServer – For mocking API calls

The project follows a loosely-coupled architecture and applies the
Dependency Inversion Principle, making testing easier and more reliable.


Key Concepts Applied

  • Clean Architecture
  • SOLID principle
  • Multi-module structure
  • Unidirectional Data Flow (UDF)
  • Reactive programming with Flow
  • Testable and scalable design

1. System Requirements

  • Android Studio Hedgehog or newer
  • Android SDK 26 or higher

About

A sample Android application that consumes the Space Flight API, built with modern Android development tools and clean architecture principles

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages