mirror of
https://github.com/Joker-x-dev/AndroidProject-Compose.git
synced 2025-12-27 15:47:11 +00:00
159 lines
6.8 KiB
Markdown
159 lines
6.8 KiB
Markdown
|
|
<div align="center">
|
|||
|
|
|
|||
|
|
<img src="docs/images/graphs/logo.svg" width="120" alt="Logo"/>
|
|||
|
|
|
|||
|
|
# AndroidProject-Compose
|
|||
|
|
|
|||
|
|
_A fast-start Android framework built with Jetpack Compose_
|
|||
|
|
|
|||
|
|
<!-- Language Switch Button -->
|
|||
|
|
<div align="center">
|
|||
|
|
<a href="README.md">🌍 中文</a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
[](https://github.com/Joker-x-dev/AndroidProject-Compose)
|
|||
|
|
[](https://gitee.com/Joker-x-dev/AndroidProject-Compose)
|
|||
|
|
[](https://www.pgyer.com/AndroidProject-Compose)
|
|||
|
|
[](https://compose.dusksnow.top)
|
|||
|
|
[](https://deepwiki.com/Joker-x-dev/AndroidProject-Compose)
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
## 📖 Project Overview
|
|||
|
|
|
|||
|
|
AndroidProject-Compose is a **single-module Jetpack Compose scaffold** that ships with the essential building blocks for networking, state, navigation, theming, data storage, and database access. It also includes a few feature demo pages so you can “clone → run → plug in your business logic” to quickly build or learn a modern Compose app.
|
|||
|
|
|
|||
|
|
> If this project helps you, please give it a Star ⭐ It means a lot and keeps me motivated to maintain and update the project long-term!
|
|||
|
|
|
|||
|
|
## 📱 Preview
|
|||
|
|
|
|||
|
|
<img src="docs/images/preview/page.png" alt="page"/>
|
|||
|
|
|
|||
|
|
### 📍 Project Links
|
|||
|
|
|
|||
|
|
- **GitHub**: [https://github.com/Joker-x-dev/AndroidProject-Compose](https://github.com/Joker-x-dev/AndroidProject-Compose)
|
|||
|
|
- **Gitee**: [https://gitee.com/Joker-x-dev/AndroidProject-Compose](https://gitee.com/Joker-x-dev/AndroidProject-Compose)
|
|||
|
|
|
|||
|
|
> This scaffold originates from the CoolMall practice project and keeps only the foundational capabilities plus sample pages. For the full e-commerce business, complete UI/animations, and full-featured demos, see CoolMall: GitHub https://github.com/Joker-x-dev/CoolMallKotlin | Gitee https://gitee.com/Joker-x-dev/CoolMallKotlin
|
|||
|
|
|
|||
|
|
### Demo Download
|
|||
|
|
|
|||
|
|
**Release build (2MB)**: [Download](https://www.pgyer.com/AndroidProject-Compose)
|
|||
|
|
- **Supported OS**: Android 6.0 and above
|
|||
|
|
- **Release notes**: Preview builds update occasionally and may not always reflect the latest code changes
|
|||
|
|
|
|||
|
|
### Documentation
|
|||
|
|
|
|||
|
|
- **Docs**: [View online](https://compose.dusksnow.top)
|
|||
|
|
- **Note**: Online docs stay in sync with the code and cover quick start, architecture, sample routes, common customization points, and more.
|
|||
|
|
|
|||
|
|
## 🛠️ Tech Stack
|
|||
|
|
|
|||
|
|
### Core Technologies
|
|||
|
|
|
|||
|
|
| Category | Technology | Version | Description |
|
|||
|
|
|-----------------------|---------------------|------------|------------------------------|
|
|||
|
|
| Programming Language | Kotlin | 2.2.21 | 100% Kotlin |
|
|||
|
|
| UI Framework | Jetpack Compose | 2025.11.01 | Declarative UI framework |
|
|||
|
|
| Dependency Injection | Hilt | 2.57.2 | Dagger-based DI framework |
|
|||
|
|
|
|||
|
|
### Feature Modules
|
|||
|
|
|
|||
|
|
| Category | Technology | Version | Description |
|
|||
|
|
|------------|------------------------|---------------|---------------------------|
|
|||
|
|
| Navigation | Navigation Compose | 2.9.6 | Compose navigation |
|
|||
|
|
| Network | Retrofit + OkHttp | 3.0.0 + 5.3.2 | HTTP client |
|
|||
|
|
|
|||
|
|
### Data Storage
|
|||
|
|
|
|||
|
|
| Category | Technology | Version | Description |
|
|||
|
|
|---------------|------------|---------|----------------------------------|
|
|||
|
|
| Database | Room | 2.8.4 | SQLite database |
|
|||
|
|
| Local Storage | MMKV | 2.2.4 | High-performance key-value store |
|
|||
|
|
|
|||
|
|
### Development Tools
|
|||
|
|
|
|||
|
|
| Category | Technology | Version | Description |
|
|||
|
|
|-------------------|------------|---------|------------------------|
|
|||
|
|
| Logging | Timber | 5.0.1 | Log management |
|
|||
|
|
| Network Debugging | Chucker | 4.2.0 | Network request monitor|
|
|||
|
|
| Memory Leak Check | LeakCanary | 2.14 | Memory leak detection |
|
|||
|
|
|
|||
|
|
## 📱 Feature Module Directory
|
|||
|
|
|
|||
|
|
- **Main Module (main)**
|
|||
|
|
- Main page (main)
|
|||
|
|
- Core capability demos (core-demo)
|
|||
|
|
- Navigation demos (navigation-demo)
|
|||
|
|
|
|||
|
|
- **Auth Module (auth)**
|
|||
|
|
- Login (login)
|
|||
|
|
|
|||
|
|
- **User Module (user)**
|
|||
|
|
- User info (info)
|
|||
|
|
|
|||
|
|
- **Demo Module (demo)**
|
|||
|
|
- Generic network request demo (network-demo)
|
|||
|
|
- Generic paged list demo (network-list-demo)
|
|||
|
|
- Database demo (database)
|
|||
|
|
- Local storage demo (local-storage)
|
|||
|
|
- State management demo (state-management)
|
|||
|
|
- Network request demo (network-request)
|
|||
|
|
- Navigation with args (navigation-with-args)
|
|||
|
|
- Navigation result passing (navigation-result)
|
|||
|
|
|
|||
|
|
## Project Structure
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
├── app/ # App entry
|
|||
|
|
├── core/ # Core
|
|||
|
|
│ ├── base/ # Base abstractions
|
|||
|
|
│ ├── data/ # Data layer
|
|||
|
|
│ ├── database/ # Database
|
|||
|
|
│ ├── datastore/ # Data storage
|
|||
|
|
│ ├── designsystem/ # Design system
|
|||
|
|
│ ├── model/ # Data models
|
|||
|
|
│ ├── network/ # Network layer
|
|||
|
|
│ ├── result/ # Result handling
|
|||
|
|
│ ├── state/ # State management
|
|||
|
|
│ ├── ui/ # UI components
|
|||
|
|
│ └── util/ # Utilities
|
|||
|
|
├── navigation/ # Navigation module
|
|||
|
|
│ ├── routes/ # Route definitions
|
|||
|
|
│ ├── results/ # Route results
|
|||
|
|
│ └── extension/ # Navigation extensions
|
|||
|
|
├── feature/ # Feature modules
|
|||
|
|
│ ├── main/ # Main module
|
|||
|
|
│ ├── auth/ # Auth module
|
|||
|
|
│ ├── user/ # User module
|
|||
|
|
│ └── demo/ # Demo module
|
|||
|
|
└── MainActivityViewModel.kt # Host-level shared ViewModel
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 👥 Join the Community
|
|||
|
|
|
|||
|
|
Welcome to the developer group—share learning notes and discuss technical questions together!
|
|||
|
|
|
|||
|
|
<div align="left">
|
|||
|
|
<img src="docs/images/group/qq.jpg" width="200" alt="QQ group QR code"/>
|
|||
|
|
<p>Scan or search the group number to join the QQ group</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
## 🤝 Contributing
|
|||
|
|
|
|||
|
|
This is an open learning project. All Android enthusiasts are welcome to contribute!
|
|||
|
|
|
|||
|
|
### 🎯 How to Contribute
|
|||
|
|
|
|||
|
|
- **Code Contributions**: Submit pull requests to improve features or fix issues
|
|||
|
|
- **Issue Feedback**: Report bugs or suggest features via Issues
|
|||
|
|
- **Documentation**: Enhance docs, add usage guides or developer guides
|
|||
|
|
- **Design Support**: Provide UI/UX suggestions or assets
|
|||
|
|
- **Testing Help**: Join feature testing and share feedback
|
|||
|
|
|
|||
|
|
### 📋 Contribution Guidelines
|
|||
|
|
|
|||
|
|
- Please follow the project coding conventions before submitting code
|
|||
|
|
- For new features, create an Issue first to discuss feasibility
|
|||
|
|
- Sharing learning notes and technical takeaways is encouraged
|