Cryptoroid is a beautifully structured cryptocurrency tracking app built with SwiftUI and modern iOS development techniques. It allows users to monitor live market data, manage a personal coin portfolio, and explore in-depth coin statistics — all powered by MVVM, Core Data, Combine and responsive UI design.
- Live market data fetched from CoinGecko API
- Detailed coin statistics and interactive price charts
- Portfolio management with real-time value calculation
- Data persistence using Core Data for portfolio storage
- Custom line chart built using
Shapeand SwiftUI animation - Optimized image loading with
FileManagercaching - Seamless support for Light & Dark Mode
- MVVM architecture with
@Publishedbindings and separation of concerns Combineintegration- Fully testable logic with modular architecture
- Reusable developer previews via
DeveloperPreview.instance
The project is covered with unit tests using the Testing framework:
| Technology | Description |
|---|---|
| Swift 6.1.2 | Language version |
| SwiftUI | Declarative UI framework |
| Core Data | Local persistence for portfolio |
| Combine | Reactive programming for data flow |
| MVVM | Clean separation of concerns |
| Swift Testing | Native unit testing framework |
| FileManager | Image caching for performance |
| CoinGecko API | Free crypto market data provider |
| Shape | Used to draw custom chart visuals |
| Home View | Settings | Portfolio | Edit Portfolio | Coin Detail |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
To run unit tests:
- Open
Cryptoroidin Xcode - Press ⌘U or go to Product > Test
This project is open-sourced under the MIT License. See the LICENSE file for details.




