A modern Android application that showcases NASA's Astronomy Picture of the Day (APOD) using the latest Android development techniques and libraries.

Users can configure the screen saver timeout period from this menu. After the selected period of inactivity, the device will automatically activate the screen saver mode.

Screen saver mode displays NASA’s Astronomy Photo of the Day (APOD) for the past 7 days, creating a visually engaging and educational experience.
cosmiccanvas.screen.saver.mp4
- Display NASA's Astronomy Picture of the Day with details
- Browse through recent APOD entries (last 7 days)
- View APOD entries in fullscreen mode with gesture support
- Save favorite APOD entries for later viewing
- Share APOD entries with others
- Screen saver mode with animated transitions between recent APODs
- Dark mode support
- Offline support via local caching
- Notifications for new APODs and keyword matches
- Responsive design for different screen sizes and orientations
- Secure storage for NASA API keys with encryption
This application follows Clean Architecture principles with MVVM pattern:
- Data Layer: Repository implementation, API services, database access
- Domain Layer: Business logic, use cases, repository interfaces
- Presentation Layer: UI components, ViewModels, state management
- Kotlin: 100% Kotlin for app development
- Jetpack Compose: Modern declarative UI toolkit
- Coroutines & Flow: Asynchronous programming
- Hilt: Dependency injection
- Room: Database for local caching
- Retrofit & OkHttp: Networking
- Coil: Image loading
- WorkManager: Background processing
- DataStore: User preferences management
- Material 3: Modern Material Design components
- Navigation Component: In-app navigation
- Clone the repository
- Obtain a NASA API key from NASA API Portal
- Build and run the application
+---------------+----------+-----------------------------------+
| Field | Type | Description |
+---------------+----------+-----------------------------------+
| date | String | Primary key, format YYYY-MM-DD |
| title | String | APOD title |
| explanation | String | APOD explanation |
| url | String | Media URL |
| mediaType | String | Media type (image or video) |
| thumbnailUrl | String | Thumbnail URL |
| copyright | String | Copyright information |
| isFavorite | Boolean | Favorite status |
+---------------+----------+-----------------------------------+
+---------------+----------+-----------------------------------+
| Field | Type | Description |
+---------------+----------+-----------------------------------+
| sourceText | String | Primary key 1, source text |
| targetLanguage| String | Primary key 2, target language |
| translatedText| String | Translated text |
| sourceLanguage| String | Source language code |
| timestamp | Long | Translation timestamp |
+---------------+----------+-----------------------------------+
This project is licensed under the MIT License - see the LICENSE file for details.