A modern Android application for exploring cryptocurrency information and real-time price tracking using Jetpack Compose.
CryptoBlink is an elegant Android app that provides users with comprehensive cryptocurrency data. Browse through a list of cryptocurrencies, view detailed information about each coin, check real-time prices, and explore the teams behind popular crypto projects.
- Browse a comprehensive list of cryptocurrencies
- Instantly discover top crypto coins with their current rankings
- View current cryptocurrency prices in USD
- Automatic price conversion and formatting
- Clean, intuitive price display
Each cryptocurrency detail screen shows:
- Coin Ranking & Identity - Position, name, and symbol (e.g., #1 Bitcoin (BTC))
- Live Price - Current market price with color coding (Green for active, Red for inactive coins)
- Project Description - Comprehensive details about the cryptocurrency project
- Tags - Categorized tags for quick identification (e.g., Blockchain, Mining, etc.)
- Team Members - List of key team members involved in the project development
- View team member details including positions and roles
- Organized team member list for each cryptocurrency project
CryptoBlink follows Clean Architecture principles with:
- Presentation Layer - Jetpack Compose UI with MVVM pattern
- Domain Layer - Use cases and business logic
- Data Layer - Repository pattern with Retrofit for API calls
- Jetpack Compose - Modern UI toolkit
- Kotlin Coroutines - Asynchronous programming
- Hilt - Dependency injection
- Retrofit - REST API client
- Flow - Reactive data streams
- Compose Material - Material Design components
The app uses the CoinPaprika API for cryptocurrency data:
Base URL: https://api.coinpaprika.com/v1/
Endpoints:
- /coins - Get list of all cryptocurrencies
- /coins/{coinId} - Get detailed information about a specific coin
- /price-converter - Convert cryptocurrency prices to USD
GET /v1/price-converter?base_currency_id=btc-bitcoin"e_currency_id=usd-us-dollars&amount=1
- Home Screen → View list of cryptocurrencies
- Select Coin → Tap any cryptocurrency to view details
- Detail Screen → View comprehensive coin information:
- Current price
- Project description
- Associated tags
- Team members information
app/src/main/java/com/plcoding/cryptocurrencyappyt/
├── presentation/
│ ├── coin_list/ # Cryptocurrency list screen
│ └── coin_detail/ # Detailed coin information screen
├── domain/
│ ├── use_case/ # Business logic
│ └── model/ # Domain models
├── data/
│ ├── remote/ # API calls & Retrofit
│ └── repository/ # Data repository implementation
└── common/
└── Constants/ # App constants & utilities
- Modern Compose UI - Built entirely with Jetpack Compose
- Responsive Layout - Adapts to different screen sizes
- Color-Coded Status - Green for active coins, Red for inactive
- Smooth Navigation - Seamless transitions between screens
- Loading States - Progress indicators for data fetching
- Error Handling - User-friendly error messages
- Android Studio (latest version)
- Android SDK 21+
- Internet connection for API calls
# Clone the repository
git clone [repository-url]
# Open in Android Studio
cd CryptoBlink
# Build and run
./gradlew buildUnit tests for UI components and business logic:
./gradlew test # Run unit tests
./gradlew connectedAndroidTest # Run instrumented tests- Launch the app
- Scroll through the crypto list
- Tap on "Bitcoin (BTC)"
- View:
- Rank: #1
- Name: Bitcoin
- Price: $XXXXX.XX (converted from API)
- Description: Technical details about Bitcoin
- Tags: Blockchain, Mining, Store-of-value, etc.
- Team: View Bitcoin development team members
The app uses Jetpack Compose State Management with:
State<T>for UI state observationmutableStateOf()for state updates- ViewModel for state persistence
- Coroutine Flow for reactive data streams
API Response
↓
Repository (CoinRepositoryImpl)
↓
Use Cases (GetCoinUseCase, GetCoinPriceUseCase)
↓
ViewModel (CoinDetailViewModel)
↓
UI State (CoinDetailState, CoinPriceState)
↓
Composable UI (CoinDetailScreen)
- Price Conversion - All prices are converted to USD using the
roundToTwoDigits()utility - Currency ID - Base currency is dynamically set based on the selected coin
- Quote Currency - Default quote currency is USD ("usd-us-dollars")
- Error Handling - Network errors and API failures are gracefully handled with user-friendly messages
Key libraries used:
androidx.compose.*- Jetpack Composecom.squareup.retrofit2- Retrofit HTTP clientcom.google.dagger:hilt-android- Dependency injectionorg.jetbrains.kotlinx:kotlinx-coroutines- Coroutines for async programmingandroidx.lifecycle:lifecycle-viewmodel-compose- MVVM clean architecture with use cases
Feel free to fork, modify, and improve this project!
This project is open source and available under the MIT License.
Happy exploring! 🚀 Discover the world of cryptocurrency with CryptoBlink.