Xcode: 26.0+
A clean archeticure modular iOS space news app built with SwiftUI and powered by Swift Concurrency. I developed it as a hands-on learning experience to solidify and apply the technical concepts I’ve been studying.
By combining a real-world use case with modern development practices, this app serves as both a portfolio project to showcase my technical skills and a personal milestone in my iOS development learning journey.
Watch the demo video on YouTube.
| Articles List | Article Details | Search Suggestions | Search Results |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Fetching and parsing data from a remote API
- Articles listing with pagination support
- Article details view with the ability to share the article link or open the article in Safari
- Displaying search suggestions
- Showing search results based on user input
- Caching network responses to reduce redundant API calls
- Handling various view states: loading, empty, error, and loaded
- Displaying a shimmering loading effect while data is being fetched
These diagrams where generated using 🤖 Phind AI.
SNCache:Responsible for handling local data caching for minimizing repeated network requests.SNCore:Responsible for containing shared abstractions, protocols, and utilities used across multiple modules.SNDesignSystem:Responsible for providing shared assets, styles, and design constants.SNNetwork:Responsible for handling all networking operations, such as sending API requests, managing endpoints, and parsing responses.Shared:Responsible for hosting utilities, generic views, helpers, and common code that is used in multiple feature modules.Feature Modules:Each module represents a distinct feature in the app and follows a consistent structure based on Clean Architecture principles:- Divided into Data, Domain, and Presentation layers.
- Implements the MVVM-C (Model-View-ViewModel-Coordinator) design pattern.
- Built to be self-contained and modular for scalability and testability.
- Includes unit testing across ViewModels, UseCases, Repositories, and Mappers.
This project uses SPM (Swift Package Manager) as dependency manager.
- Kingfisher: Responsible for downloading and caching images from the web
This project uses Spaceflight News REST API v4.
- Swift 6
- SwiftUI
- SPM (Swift Package Manager)
- Swift Concurrency
- Swift Testing
- Modularization
- Clean Architecture
- MVVM-C (Model-View-ViewModel-Coordinator) Design Pattern
- Factory Design Pattern
- UIKit-Based Coordinator Pattern
- Pagination
- NSCache
- OSLog






