MarsPhotos

Mars Photos is an android application developed with Jetpack Compose to display images of the surface of Mars via a REST API.

The project follows Android development best practices, implementing MVVM architecture and using tools like Retrofit for network calls.

Project link

Features

Display mars photo :
Retrieves and displays high-resolution photos of the surface of Mars from a REST API while dynamically showing the total number of images successfully fetched from the network.

Modern and fluid interface :
Implements a clean and responsive user interface following Material Design 3 principles to ensure a visually appealing and smooth user experience.

Light & dark mode dupport :
Provides full support for light and dark themes using Material 3, automatically adapting to system settings for enhanced accessibility and user comfort.

Real-time state management :
Uses a lifecycle-aware ViewModel to store UI state and manage data retrieved asynchronously from the API while ensuring configuration change resilience.

Performance and responsiveness :
Ensures smooth scrolling and responsive rendering of images to deliver a fluid and optimized browsing experience.

Tech stack

Kotlin :
Modern, concise language for Android development.

Jetpack compose :
Declarative UI toolkit for Android.

Material 3 :
Modern, accessible user interface.

StateFlow :
Reactive state management for real-time updates.


ViewModel:
MVVM architecture to separate business logic from user interface.


Retrofit :
Networking client for API calls.


State management :
Handle states with MutableStateOf and StateFlow.


Coil :
Download, buffer, decode and cache images

Mars Photos is an android application developed with Jetpack Compose to display images of the surface of Mars via a REST API.

The project follows Android development best practices, implementing MVVM architecture and using tools like Retrofit for network calls.

Project link

Features

Display mars photo :
Retrieves and displays high-resolution photos of the surface of Mars from a REST API while dynamically showing the total number of images successfully fetched from the network.

Modern and fluid interface :
Implements a clean and responsive user interface following Material Design 3 principles to ensure a visually appealing and smooth user experience.

Light & dark mode dupport :
Provides full support for light and dark themes using Material 3, automatically adapting to system settings for enhanced accessibility and user comfort.

Real-time state management :
Uses a lifecycle-aware ViewModel to store UI state and manage data retrieved asynchronously from the API while ensuring configuration change resilience.

Performance and responsiveness :
Ensures smooth scrolling and responsive rendering of images to deliver a fluid and optimized browsing experience.

Tech stack

Kotlin :
Modern, concise language for Android development.

Jetpack compose :
Declarative UI toolkit for Android.

Material 3 :
Modern, accessible user interface.

StateFlow :
Reactive state management for real-time updates.


ViewModel:
MVVM architecture to separate business logic from user interface.


Retrofit :
Networking client for API calls.


State management :
Handle states with MutableStateOf and StateFlow.


Coil :
Download, buffer, decode and cache images