An Android stock market app built with Kotlin and Jetpack Compose.
Browse and search stocks, view detailed price charts, and explore market data powered by the Alpha Vantage API.
Add your screenshots here
- 📋 Browse stocks — Explore a full list of available stocks and companies
- 🔍 Search by symbol — Quickly find any stock using its ticker symbol
- 📊 Stock details & price chart — View in-depth company info alongside an intraday price chart
| Technology | Description |
|---|---|
| Kotlin | Primary language |
| Jetpack Compose | Modern declarative UI toolkit |
| Retrofit | HTTP client for Alpha Vantage API calls |
| Room | Local database for caching stock data |
| Hilt | Dependency injection |
| Kotlin Coroutines & Flow | Async operations and reactive state management |
| Gradle (Kotlin DSL) | Build system |
The app follows MVVM + Clean Architecture, organised into three layers:
UI Layer (Compose screens & ViewModels)
↕
Domain Layer (Use cases & repository interfaces)
↕
Data Layer (Retrofit API + Room database + repository implementations)
- UI — Compose screens observe state from ViewModels via
StateFlow - Domain — Use cases encapsulate business logic and act as the bridge between UI and data
- Data — Repository implementations handle fetching from the Alpha Vantage API and caching results locally with Room
- Android Studio (Hedgehog or newer recommended)
- JDK 17+
- An Alpha Vantage API key (free tier available)
git clone https://github.com/M0bileDev/StockMarketAppProject.git
cd StockMarketAppProjectIn your local.properties file (create it in the project root if it doesn't exist), add:
ALPHA_VANTAGE_API_KEY=your_api_key_here
⚠️ Never commit yourlocal.propertiesfile. It is already included in.gitignore.
Open the project in Android Studio, select a device or emulator, and hit Run.
Or from the terminal:
# macOS / Linux
./gradlew :app:assembleDebug
# Windows
.\gradlew.bat :app:assembleDebugInstall on a connected device:
./gradlew :app:installDebug./gradlew testapp/
└── src/
└── main/
└── kotlin/
└── com/m0biledev/stockmarket/
├── data/
│ ├── local/ # Room database & DAOs
│ ├── remote/ # Retrofit API service
│ ├── repository/ # Repository implementations
│ └── mapper/ # Data mappers (DTO ↔ Domain)
├── domain/
│ ├── model/ # Domain models
│ ├── repository/ # Repository interfaces
│ └── usecase/ # Business logic use cases
└── presentation/
├── company_list/ # Stock listing screen
├── company_info/ # Stock detail & chart screen
└── ui/theme/ # Compose theme
This project is licensed under the Apache 2.0 License.