Skip to content

Commit 94eb412

Browse files
committed
first commit
0 parents  commit 94eb412

File tree

69 files changed

+3328
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+3328
-0
lines changed

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
*.iml
2+
.gradle
3+
/local.properties
4+
/.idea/caches
5+
/.idea/libraries
6+
/.idea/modules.xml
7+
/.idea/workspace.xml
8+
/.idea/navEditor.xml
9+
/.idea/assetWizardSettings.xml
10+
.DS_Store
11+
/build
12+
/captures
13+
.externalNativeBuild
14+
.cxx
15+
local.properties
16+
/.idea/**

README-en.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
[中文](README.md) | English
2+
3+
# Simple Todo
4+
5+
A to-do list management app developed using the latest Android technology stack.
6+
7+
## Screenshots
8+
9+
<img src="screenshots/screenshots1.png" width="50%"/><img src="screenshots/screenshots2.png" width="50%"/>
10+
<img src="screenshots/screenshots3.png" width="50%"/><img src="screenshots/screenshots4.png" width="50%"/>
11+
<img src="screenshots/screenshots5.png" width="50%"/><img src="screenshots/screenshots6.png" width="50%"/>
12+
13+
<br></br>
14+
15+
## Download Experience
16+
17+
- Scan QR code to install:<br></br>
18+
<a href="https://www.pgyer.com/YrsgyKDL"><img src="simpletodo.png"/></a>
19+
20+
- [Click to download simpletodo.apk][1]
21+
22+
## Features
23+
24+
- ✅ Basic Task Management
25+
- Add, edit, and delete tasks
26+
- Mark tasks as complete/incomplete
27+
- Task priority support (High, Medium, Low)
28+
- Task notes support
29+
- Bulk selection and deletion
30+
31+
- 🏷️ Category Management
32+
- Custom task labels
33+
- Label color customization
34+
- Task filtering by labels
35+
36+
- ⏰ Time Management
37+
- Set task due dates
38+
- Due date notifications
39+
- Automatic overdue task detection
40+
41+
- 🔍 Search and Filter
42+
- Task search
43+
- Show/hide completed tasks
44+
- Multi-dimensional task filtering
45+
46+
## Technical Architecture
47+
48+
- **UI**: Jetpack Compose + Material 3
49+
- **Architecture Pattern**: MVVM
50+
- **Dependency Injection**: Hilt
51+
- **Local Storage**: Room
52+
- **Background Tasks**: WorkManager
53+
- **Asynchronous Processing**: Kotlin Coroutines + Flow
54+
55+
## Project Structure
56+
57+
```
58+
app/src/main/
59+
├── java/com/example/simpletodo/
60+
│ ├── data/ # Data layer
61+
│ │ ├── local/ # Room database
62+
│ │ ├── model/ # Data models
63+
│ │ └── repository/ # Data repositories
64+
│ ├── di/ # Dependency injection
65+
│ ├── ui/ # UI layer
66+
│ ├── worker/ # Background workers
67+
│ ├── MainActivity.kt # Main activity
68+
│ └── TodoApplication.kt # Application entry
69+
└── res/ # Resources
70+
```
71+
72+
## Development Environment
73+
74+
- Android Studio Hedgehog | 2023.1.1 or higher
75+
- JDK 17
76+
- Android SDK 34
77+
- Kotlin 1.9.0 or higher
78+
79+
## Build and Run
80+
81+
1. Clone the project
82+
83+
git clone https://github.com/VIPyinzhiwei/SimpleToDo.git
84+
85+
2. Open the project in Android Studio
86+
87+
3. Sync Gradle dependencies
88+
89+
4. Run the application
90+
91+
## Main Dependencies
92+
93+
- Jetpack Compose: UI framework
94+
- Room: Local database
95+
- Hilt: Dependency injection
96+
- WorkManager: Background task scheduling
97+
- Material3: Material Design 3 components
98+
- Accompanist: System UI controller
99+
100+
## License
101+
102+
[Apache License 2.0][2]
103+
104+
## Contributing
105+
106+
Contributions via Issues and Pull Requests are welcome.
107+
108+
1. Fork the project
109+
2. Create your feature branch
110+
3. Commit your changes
111+
4. Push to the branch
112+
5. Create a Pull Request
113+
114+
## Contact
115+
116+
For questions or suggestions, feel free to:
117+
118+
- Create an Issue
119+
- Email: vipyinzhiwei@gmail.com
120+
- Blog: vipyinzhiwei.com
121+
122+
[1]:https://github.com/VIPyinzhiwei/SimpleToDo/raw/main/simpletodo.apk
123+
[2]:http://www.apache.org/licenses/LICENSE-2.0

README.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
中文 | [English](README-en.md)
2+
3+
# 简单待办
4+
5+
一个使用最新 Android 技术栈开发的待办事项管理应用。
6+
7+
## 应用截图
8+
9+
<img src="screenshots/screenshots1.png" width="50%"/><img src="screenshots/screenshots2.png" width="50%"/>
10+
<img src="screenshots/screenshots3.png" width="50%"/><img src="screenshots/screenshots4.png" width="50%"/>
11+
<img src="screenshots/screenshots5.png" width="50%"/><img src="screenshots/screenshots6.png" width="50%"/>
12+
13+
<br></br>
14+
15+
## 下载体验
16+
17+
- 扫描二维码安装:<br></br>
18+
<a href="https://www.pgyer.com/YrsgyKDL"><img src="simpletodo.png"/></a>
19+
20+
- [点击下载 simpletodo.apk][1]
21+
22+
## 功能特点
23+
24+
- ✅ 基础任务管理
25+
- 添加、编辑、删除任务
26+
- 任务标记完成/未完成
27+
- 支持任务优先级(高、中、低)
28+
- 支持添加任务备注
29+
- 批量选择和删除
30+
31+
- 🏷️ 分类管理
32+
- 自定义任务标签
33+
- 标签颜色定制
34+
- 按标签筛选任务
35+
36+
- ⏰ 时间管理
37+
- 设置任务截止日期
38+
- 到期提醒通知
39+
- 自动识别过期任务
40+
41+
- 🔍 搜索与过滤
42+
- 任务搜索
43+
- 显示/隐藏已完成任务
44+
- 多维度任务筛选
45+
46+
## 技术架构
47+
48+
- **UI**: Jetpack Compose + Material 3
49+
- **架构模式**: MVVM
50+
- **依赖注入**: Hilt
51+
- **本地存储**: Room
52+
- **后台任务**: WorkManager
53+
- **异步处理**: Kotlin Coroutines + Flow
54+
55+
## 项目结构
56+
57+
```
58+
app/src/main/
59+
├── java/com/example/simpletodo/
60+
│ ├── data/ # 数据层
61+
│ │ ├── local/ # Room 数据库
62+
│ │ ├── model/ # 数据模型
63+
│ │ └── repository/ # 数据仓库
64+
│ ├── di/ # 依赖注入
65+
│ ├── ui/ # 界面层
66+
│ ├── worker/ # 后台任务
67+
│ ├── MainActivity.kt # 主活动
68+
│ └── TodoApplication.kt # 应用入口
69+
└── res/ # 资源文件
70+
```
71+
72+
## 开发环境要求
73+
74+
- Android Studio Hedgehog | 2023.1.1 或更高版本
75+
- JDK 17
76+
- Android SDK 34
77+
- Kotlin 1.9.0 或更高版本
78+
79+
## 构建与运行
80+
81+
1. 克隆项目
82+
83+
git clone https://github.com/VIPyinzhiwei/SimpleToDo.git
84+
85+
2. 使用 Android Studio 打开项目
86+
87+
3. 同步 Gradle 依赖
88+
89+
4. 运行应用
90+
91+
## 主要依赖库
92+
93+
- Jetpack Compose: UI 框架
94+
- Room: 本地数据库
95+
- Hilt: 依赖注入
96+
- WorkManager: 后台任务调度
97+
- Material3: Material Design 3 组件
98+
- Accompanist: 系统 UI 控制
99+
100+
## 许可证
101+
102+
[Apache License 2.0][2]
103+
104+
## 贡献指南
105+
106+
欢迎提交 Issue 和 Pull Request 来帮助改进项目。
107+
108+
1. Fork 项目
109+
2. 创建特性分支
110+
3. 提交变更
111+
4. 推送到分支
112+
5. 创建 Pull Request
113+
114+
## 联系方式
115+
116+
如有任何问题或建议,欢迎提交 Issue 或通过以下方式联系:
117+
118+
- Email: vipyinzhiwei@gmail.com
119+
- Blog: vipyinzhiwei.com
120+
121+
[1]:https://github.com/VIPyinzhiwei/SimpleToDo/raw/main/simpletodo.apk
122+
[2]:http://www.apache.org/licenses/LICENSE-2.0

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/build.gradle.kts

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
plugins {
2+
alias(libs.plugins.android.application)
3+
alias(libs.plugins.kotlin.android)
4+
alias(libs.plugins.kotlin.compose)
5+
kotlin("kapt")
6+
id("com.google.dagger.hilt.android")
7+
}
8+
9+
android {
10+
namespace = "com.example.simpletodo"
11+
compileSdk = 35
12+
13+
defaultConfig {
14+
applicationId = "com.example.simpletodo"
15+
minSdk = 26
16+
targetSdk = 34
17+
versionCode = 1
18+
versionName = "1.0"
19+
20+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
21+
vectorDrawables {
22+
useSupportLibrary = true
23+
}
24+
}
25+
26+
buildTypes {
27+
release {
28+
isMinifyEnabled = false
29+
proguardFiles(
30+
getDefaultProguardFile("proguard-android-optimize.txt"),
31+
"proguard-rules.pro"
32+
)
33+
}
34+
}
35+
compileOptions {
36+
sourceCompatibility = JavaVersion.VERSION_17
37+
targetCompatibility = JavaVersion.VERSION_17
38+
}
39+
kotlinOptions {
40+
jvmTarget = "17"
41+
}
42+
buildFeatures {
43+
compose = true
44+
}
45+
composeOptions {
46+
kotlinCompilerExtensionVersion = "1.5.4"
47+
}
48+
packaging {
49+
resources {
50+
excludes += "/META-INF/{AL2.0,LGPL2.1}"
51+
}
52+
}
53+
}
54+
55+
dependencies {
56+
// AndroidX Core
57+
implementation(libs.androidx.core.ktx)
58+
implementation(libs.androidx.lifecycle.runtime.ktx)
59+
implementation(libs.androidx.activity.compose)
60+
61+
// Compose
62+
implementation(platform(libs.androidx.compose.bom))
63+
implementation(libs.androidx.ui)
64+
implementation(libs.androidx.ui.graphics)
65+
implementation(libs.androidx.ui.tooling.preview)
66+
implementation(libs.androidx.material3)
67+
implementation("androidx.compose.material:material-icons-extended:1.5.4")
68+
69+
// System UI Controller
70+
implementation("com.google.accompanist:accompanist-systemuicontroller:0.32.0")
71+
72+
// Room
73+
val roomVersion = "2.6.1"
74+
implementation("androidx.room:room-runtime:$roomVersion")
75+
implementation("androidx.room:room-ktx:$roomVersion")
76+
kapt("androidx.room:room-compiler:$roomVersion")
77+
78+
// Hilt
79+
implementation("com.google.dagger:hilt-android:2.48")
80+
kapt("com.google.dagger:hilt-android-compiler:2.48")
81+
implementation("androidx.hilt:hilt-navigation-compose:1.1.0")
82+
83+
// Coroutines
84+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
85+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
86+
87+
// ViewModel
88+
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2")
89+
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.2")
90+
91+
// Testing
92+
testImplementation(libs.junit)
93+
androidTestImplementation(libs.androidx.junit)
94+
androidTestImplementation(libs.androidx.espresso.core)
95+
androidTestImplementation(platform(libs.androidx.compose.bom))
96+
androidTestImplementation(libs.androidx.ui.test.junit4)
97+
debugImplementation(libs.androidx.ui.tooling)
98+
debugImplementation(libs.androidx.ui.test.manifest)
99+
100+
// WorkManager
101+
implementation("androidx.work:work-runtime-ktx:2.9.0")
102+
103+
// Material3 日期时间选择器
104+
implementation("androidx.compose.material3:material3:1.2.0")
105+
implementation("androidx.compose.material3:material3-window-size-class:1.2.0")
106+
}

app/proguard-rules.pro

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile

app/release/app-release.apk

10.4 MB
Binary file not shown.
8.96 KB
Binary file not shown.
8.86 KB
Binary file not shown.

0 commit comments

Comments
 (0)