Coiny is an iOS application that allows users to track cryptocurrency prices in real-time and manage their personal crypto portfolio. Built with SwiftUI and following MVVM architecture patterns, this app demonstrates advanced iOS development skills including API integration and data persistence.
- Real-time Price Tracking - Live cryptocurrency data from CoinGecko API
- Portfolio Management - Add, edit, and track your crypto investments
- Interactive Charts - Beautiful price history visualization
- Market Statistics - Comprehensive market data and analytics
- Smart Search - Instant search across thousands of cryptocurrencies
- Dark/Light Theme - Adaptive UI design
- Smooth Animations - Fluid transitions and micro-interactions
- Haptic Feedback - Enhanced tactile responses
- Pull-to-Refresh - Intuitive data refreshing
- Sorting & Filtering - Multiple ways to organize data
- Responsive Design - Optimized for all iPhone sizes
- Core Data Integration - Persistent portfolio storage
- Image Caching - Optimized coin logo loading
- Network Layer - Robust API communication
- Error Handling - Graceful failure management
This project follows Clean Architecture principles with MVVM pattern:
Coiny/
├── App/ # App entry point
├── Core/ # Main features
│ ├── Components/ # Reusable UI components
│ ├── Detail/ # Coin detail screens
│ ├── Home/ # Main dashboard
│ ├── LaunchScreen/ # Splash screen
│ └── Settings/ # App settings
├── Services/ # Data layer
│ ├── CoinDataService # Cryptocurrency API
│ ├── CoinImageService # Image downloading
│ ├── MarketDataService # Market statistics
│ └── PortfolioDataService # Core Data operations
├── Models/ # Data models
├── Utilities/ # Helper classes
└── Resources/ # Assets and themes
- SwiftUI - Declarative UI framework
- Combine - Reactive programming
- MVVM Pattern - Separation of concerns
- Navigation Stack - Modern iOS navigation
- CoinGecko API - Real-time cryptocurrency data
- Core Data - Local data persistence
- URLSession - Network operations
- JSON Decoding - Codable protocol implementation
- Custom Animations - Smooth transitions and effects
- Color Themes - Dynamic theming system
- SF Symbols - Native iconography
- Haptic Feedback - Enhanced user interactions
- iOS 15.0+
- Xcode 14.0+
- Swift 5.7+
- Clone the repository
git clone https://github.com/yourusername/coiny-ios.git-
Open
Coiny.xcodeprojin Xcode -
Build and run the project
Note: No additional setup required - the app uses public APIs without authentication.
This project demonstrates proficiency in:
- ✅ Modern iOS Development - SwiftUI, Combine, async/await
- ✅ Architecture Patterns - MVVM, Clean Architecture
- ✅ API Integration - RESTful services, JSON parsing
- ✅ Data Persistence - Core Data, UserDefaults
- ✅ State Management - ObservableObject, @StateObject
- ✅ Performance Optimization - Image caching, lazy loading
- ✅ User Interface Design - Custom components, animations
- ✅ Error Handling - Network errors, data validation
- ✅ Testing - Unit tests, UI tests
- CircleButtonView - Reusable animated buttons
- CoinRowView - Dynamic cryptocurrency list items
- SearchBarView - Real-time search functionality
- StatisticView - Market data display components
- Lazy Loading - Efficient list rendering
- Image Caching - Reduced network calls
- Background Processing - Non-blocking API calls
- Memory Management - Proper object lifecycle handling
- Network Connectivity - Offline state management
- API Rate Limiting - Graceful degradation
- Data Validation - Input sanitization
- User Feedback - Clear error messages
- Widgets - iOS home screen widgets
- Watch App - Apple Watch companion
- Push Notifications - Price alerts
- Advanced Analytics - Portfolio performance metrics
- Export Features - CSV/PDF reports
- Social Features - Share portfolio insights
Built with ❤️ using SwiftUI