Nexly is a minimalist mobile app built with Kotlin and Jetpack Compose that allows users to explore and view information about cryptocurrency exchanges using the CoinAPI.
- 📃 Exchange List: Displays a clean list of exchanges with name, ID, and 24h USD volume.
- 🔍 Details Screen: Shows detailed data including:
- Exchange name, ID
- Volume over 1 hour, 1 day, and 1 month
- Rank
- Historical activity periods (quotes, order book, trades)
- Website
- 💡 Modern UI: Built using Jetpack Compose with Material 3 and Clean Architecture.
Below are sample screens of the app using the Cryptooly-inspired layout:
| Exchange List | Exchange Details |
|---|---|
This project is inspired by the Cryptooly – Crypto Wallet Mobile UI design. The UI aims to be clean, modern, and user-friendly, focusing on essential information presentation.
- Kotlin
2.1.20 - Jetpack Compose
2025.04.01 - Koin
4.0.4 - Ktor Client (with kotlinx.serialization)
3.1.2 - Material 3
- MVVM + Clean Architecture
- CoinAPI integration
The project includes both unit tests and UI tests to ensure code quality and stability.
- Written using JUnit 4
- Mocks created with MockK
- Testable components include:
- ViewModels with mocked HttpClient
Run unit tests with:
./gradlew testDebugUnitTest- Written using Compose Test
- Includes tests for:
- UI Screens with mocked ViewModels
Run UI tests with:
./gradlew connectedDebugAndroidTestFollow these steps to set up and run the project locally.
| Tool | Version |
|---|---|
| Android Studio | ✅ Meerkat |
| Java SDK | ✅ 21.0.6 |
| Gradle | ✅ 8.13 |
| Kotlin | ✅ 2.1.20 |
git clone https://github.com/lucas-cordeiro/nexly.git
cd nexlyTo use the app, you need a valid CoinAPI key.
- Go to https://www.coinapi.io/ and create an account to get your API key.
- In the root the project, locate or create the
local.propertiesfile. - Add the following line:
CoinApiKey=your_api_key_here