This commit is contained in:
arthur
2026-09-17 11:13:35 +08:00
parent 46198aa8c9
commit 3284e63e89
8 changed files with 2248 additions and 432 deletions
+85
View File
@@ -0,0 +1,85 @@
# Day_1:环境配置与第一个 React Native 应用
> 今天只做一件事:让 React Native 开发环境真正跑起来。
预计用时:30~45 分钟。
## 今日目标
- 安装 VS Code、Node.js LTS 与 Git
- 在手机安装 Expo Go
- 创建并启动一个 Expo 项目
- 修改一行文字并在手机或模拟器中看到变化
## 1. 安装工具
安装以下工具并保持默认设置:
1. [VS Code](https://code.visualstudio.com/)
2. [Node.js LTS](https://nodejs.org/)
3. [Git](https://git-scm.com/)
4. 手机上的 Expo Go(Android 可从 Google Play 获取;iOS 可从 App Store 获取)
打开 VS Code 的“终端 → 新建终端”,依次检查:
```bash
node --version
npm --version
git --version
```
三条命令都应输出版本号;若没有,请重启终端后检查安装步骤。
## 2. 创建项目
在准备放置练习代码的位置执行:
```bash
npx create-expo-app@latest CampusHelper
cd CampusHelper
npx expo start
```
终端会显示二维码。让电脑和手机连接同一网络,再用 Expo Go 扫码打开项目;也可按提示在 Android 或 iOS 模拟器中启动。
## 3. 认识项目
新版模板的目录可能略有不同,但先找到入口屏幕(常见为 `app/index.tsx` 或 `App.tsx`)。React Native 常见组件包括:
```text
View 一块布局区域
Text 文字
Pressable 可点击区域
Image 图片
```
## 4. 第一次修改
将入口页面中可见的标题改成:
```text
Hello, APP!
这是我的第一个 React Native 应用。
```
保存后,Expo 通常会自动刷新手机中的页面。没有刷新时,回到 Expo Go 后手动刷新。
## 今日任务
把文字改成属于你自己的介绍,至少包括姓名、专业和一句“我想学习的技术”。不要直接提交示例文字。
## 验收标准
- [ ] `node --version`、`npm --version`、`git --version` 都能运行
- [ ] `CampusHelper` 项目已创建
- [ ] Expo 开发服务器已启动
- [ ] 手机或模拟器成功显示应用
- [ ] 修改后的文字已经显示
## 常见问题
**手机打不开二维码:**先确认手机和电脑处于同一局域网;不方便时,可在 Expo 的终端界面切换为 tunnel 连接。
**`npx` 找不到:**通常是 Node.js 未安装成功,重新打开终端并执行 `node --version` 检查。
**修改后没更新:**确认文件已保存,并在 Expo Go 中执行刷新。
+1314
View File
File diff suppressed because it is too large Load Diff
+497
View File
@@ -0,0 +1,497 @@
# Day_3:Git 入门——给代码一个“存档点”
> 今天学习 APP 开发中非常重要的工具:Git。
>
> 不管以后学习 React Native、Kotlin、KMP 还是后端,你都会继续使用它。
预计用时:40~60 分钟
## 今日目标
完成今天后,你应该能够:
- 理解 Git 大概是做什么的
- clone 一个仓库
- 查看 Git 状态
- add 修改
- commit 修改
- push 到远程
- pull 最新代码
暂时不用学习复杂 Git。
---
# 1. Git 是什么?
假设你写项目时这样保存:
```text
最终版.zip
最终版2.zip
最终版真的最终版.zip
最终版真的最终版修改.zip
```
这显然很痛苦。
Git 可以帮你保存项目的修改历史。
你可以把:
```text
commit
```
理解成:
> 给当前代码拍一张快照。
---
# 2. Git 最基本的流程
暂时只需要记住:
```text
修改文件
↓
git add
↓
git commit
↓
git push
↓
远程仓库
```
其中:
```text
add
```
表示:
> 我准备提交这些修改。
```text
commit
```
表示:
> 保存一个版本。
```text
push
```
表示:
> 把本地版本上传到服务器。
---
# 3. 配置自己的身份
第一次使用 Git,需要告诉 Git 你是谁。
打开终端:
```bash
git config --global user.name "你的名字"
```
例如:
```bash
git config --global user.name "Arthur"
```
再填写邮箱:
```bash
git config --global user.email "你的邮箱"
```
查看:
```bash
git config --global --list
```
---
# 4. 创建自己的练习仓库
进入社团 Git 平台。
创建一个自己的仓库,例如:
```text
app-rookie-你的名字
```
创建仓库时建议:
```text
初始化 README
```
这样仓库不是空的。
找到仓库的:
```text
HTTPS Clone 地址
```
复制。
---
# 5. clone 到自己的电脑
先进入你准备保存代码的位置:
```bash
cd 你的目录
```
然后:
```bash
git clone 复制下来的地址
```
例如:
```bash
git clone <你的仓库地址>
```
成功后:
```bash
ls
```
应该出现:
```text
app-rookie-你的名字
```
进入:
```bash
cd app-rookie-你的名字
```
---
# 6. 看看 Git 在干什么
执行:
```bash
git status
```
如果没有修改,通常会看到类似:
```text
nothing to commit
working tree clean
```
意思是:
> 当前代码没有没有保存的修改。
---
# 7. 修改一个文件
执行:
```bash
echo "Day 3 Git Practice" > Day_3.txt
```
再:
```bash
git status
```
这一次你应该看到:
```text
Day_3.txt
```
出现在未跟踪文件中。
---
# 8. git add
执行:
```bash
git add Day_3.txt
```
再次:
```bash
git status
```
文件状态发生了变化。
现在表示:
> 我准备把 Day_3.txt 放进下一次 commit。
---
# 9. 第一个 commit
执行:
```bash
git commit -m "docs: finish day 3 git practice"
```
这里:
```text
-m
```
后面的文字就是:
> 这次修改做了什么。
---
# 10. push
执行:
```bash
git push
```
根据平台设置,第一次可能需要登录。
完成后打开网页刷新仓库。
如果你看到:
```text
Day_3.txt
```
恭喜:
> 🎉 你完成了第一次真正的 Git 提交。
---
# 11. git log
执行:
```bash
git log --oneline
```
你可能看到:
```text
abc1234 docs: finish day 3 git practice
...
```
这就是你的提交历史。
---
# 12. pull 是什么?
如果服务器上的代码比你的电脑更新:
需要:
```bash
git pull
```
你可以尝试:
1. 在 Git 网页上修改 `README.md`
2. 直接在网页提交修改
3. 回到本地
4. 执行:
```bash
git pull
```
观察本地文件有没有更新。
---
# 今日任务
完成以下过程:
```text
创建个人仓库
↓
clone
↓
创建 Day_3.txt
↓
git add
↓
git commit
↓
git push
↓
网页确认文件存在
```
然后再做第二次修改:
把:
```text
Day 3 Git Practice
```
改成:
```text
Day 3 Git Practice
I know how to use Git now.
```
再次:
```bash
git add .
git commit -m "docs: update day 3 practice"
git push
```
最后:
```bash
git log --oneline
```
应该至少看到两个自己的 commit。
---
# 验收标准
- [ ] 知道 Git 是版本管理工具
- [ ] 成功 clone 仓库
- [ ] 会执行 `git status`
- [ ] 会执行 `git add`
- [ ] 会执行 `git commit`
- [ ] 会执行 `git push`
- [ ] 知道 `git pull` 是做什么的
- [ ] 仓库里至少存在两个自己的 commit
提交:
```text
git log --oneline
```
的截图。
---
# 常见问题
## `not a git repository`
先执行:
```bash
pwd
```
很可能:
> 你没有进入仓库目录。
执行:
```bash
cd app-rookie-你的名字
```
然后再试。
这就是为什么 Day_2 要学习目录。
---
## `nothing to commit`
通常表示:
> 你没有新的修改可以提交。
先:
```bash
git status
```
看看发生了什么。
---
## push 被拒绝
先不要乱执行:
```text
--force
```
先尝试:
```bash
git pull
```
如果仍然失败:
把完整报错提交到工单或询问学长学姐。
---
# Bonus
尝试执行:
```bash
git diff
```
然后修改一个文件,再执行一次。
看看 Git 是如何显示代码变化的。
---
+75
View File
@@ -0,0 +1,75 @@
# Day_4:第一个 React Native 页面——组件、JSX 与 StyleSheet
> 今天不写复杂逻辑,只做出一个像样的页面。
预计用时:40~60 分钟。
## 今日目标
- 理解组件与 JSX
- 使用 `View`、`Text`、`Image`
- 使用 `StyleSheet` 编写样式
- 完成 CampusHelper 的个人信息卡片
## 1. React Native 页面是什么
React Native 用组件描述页面:
```text
View = 布局容器
Text = 文字
Image = 图片
StyleSheet = 样式规则
```
与 Web 不同,不能直接写 `div`、`p`;文字必须放在 `Text` 中。
## 2. 一个最小页面
在入口屏幕中尝试下面的代码:
```tsx
import { StyleSheet, Text, View } from 'react-native';
export default function HomeScreen() {
return (
<View style={styles.page}>
<Text style={styles.title}>Hello APP</Text>
<Text>这是我的第一个 React Native 页面。</Text>
</View>
);
}
const styles = StyleSheet.create({
page: { flex: 1, padding: 24, backgroundColor: '#F5F7FB' },
title: { fontSize: 28, fontWeight: '700', marginBottom: 12 },
});
```
`style={styles.title}` 表示把 `styles` 中名为 `title` 的样式应用到文字。
## 3. 制作个人信息卡片
在页面中加入以下结构,并替换成你自己的信息:
```tsx
<View style={styles.card}>
<Text style={styles.name}>小明</Text>
<Text style={styles.meta}>计算机科学与技术</Text>
<Text style={styles.meta}>方向:移动端开发</Text>
</View>
```
为 `card` 添加 `padding`、`backgroundColor`、`borderRadius` 和 `marginTop`;为 `name` 设置更大的 `fontSize` 和 `fontWeight: '700'`。
## 今日任务
完成一张个人信息卡片,至少展示:姓名、专业、感兴趣的方向、想学习的技术。自行调整背景、间距、字号或圆角,使页面有自己的风格。
## 验收标准
- [ ] 使用了 `View` 和 `Text`
- [ ] 使用 `StyleSheet.create`
- [ ] 页面显示四项个人信息
- [ ] 卡片具有间距、背景色和圆角
- [ ] 在 Expo Go 或模拟器中正常预览
+67
View File
@@ -0,0 +1,67 @@
# Day_5:让页面动起来——事件、state 与 useState
预计用时:40~60 分钟。
## 今日目标
- 理解“事件 → 函数 → state 更新 → 界面更新”
- 使用 `Pressable`
- 使用 `useState`
- 完成学习打卡计数器
## 1. state 是什么
页面中会变化的数据叫状态(state)。在函数组件中,用 `useState` 保存它:
```tsx
import { useState } from 'react';
const [count, setCount] = useState(0);
```
`count` 是当前数值;`setCount` 是更新它的方式。调用后,React 会重新渲染受影响的界面。
## 2. 加一个按钮
```tsx
import { Pressable, Text, View } from 'react-native';
<View>
<Text>今日学习次数:{count}</Text>
<Pressable onPress={() => setCount(count + 1)}>
<Text>+1</Text>
</Pressable>
</View>
```
用户点击 `Pressable`,触发 `onPress`,再通过 `setCount` 更新数值;`Text` 中的 `{count}` 会显示新值。
## 今日任务:学习打卡计数器
在昨天的个人信息卡片下方加入计数器:
```text
今日学习打卡
当前完成:0 次
[ +1 ] [ -1 ] [ 重置 ]
```
要求:`+1` 增加一次;`-1` 减少一次但不能小于 0;重置按钮使次数回到 0;为按钮添加明显的背景色、内边距和圆角。
`-1` 的逻辑可以写成:
```tsx
setCount((current) => Math.max(0, current - 1));
```
## 验收标准
- [ ] 使用 `useState`
- [ ] 使用至少一个 `Pressable`
- [ ] `+1`、`-1`、重置均可用
- [ ] 数值不会小于 0
- [ ] 点击后界面会立即更新
## 思考题
为什么不要写 `count++`,而要调用 `setCount`?提示:React 需要知道状态发生了变化,才能安排重新渲染。
+92
View File
@@ -0,0 +1,92 @@
# Day_6:列表与导航——从一个页面到一个小应用
> 今天第一次制作“列表页 → 详情页”。
预计用时:45~60 分钟。
## 今日目标
- 使用数组保存列表数据
- 用 `FlatList` 高效渲染列表
- 使用 Expo Router 的 `Link` 或 `router.push` 跳转
- 在详情页读取路由参数
## 1. 准备活动数据
在首页定义数据:
```tsx
const activities = [
{ id: '1', title: 'APP 部新人培训', time: '周五 19:00', place: '信息学院' },
{ id: '2', title: '程序设计比赛', time: '周六 14:00', place: '教学楼' },
{ id: '3', title: '社团招新宣讲', time: '周日 18:30', place: '大学生活动中心' },
];
```
每一项都是对象,`id` 用来识别活动,其他字段是要显示的信息。
## 2. 使用 FlatList
`FlatList` 是 React Native 推荐的长列表组件。最小写法如下:
```tsx
import { FlatList, Text, View } from 'react-native';
<FlatList
data={activities}
keyExtractor={(item) => item.id}
renderItem={({ item }) => (
<View>
<Text>{item.title}</Text>
<Text>{item.time} · {item.place}</Text>
</View>
)}
/>
```
## 3. 创建详情页
Expo Router 模板中,为活动详情新建 `app/activity/[id].tsx`。`[id]` 表示 URL 中可变的参数,例如 `/activity/2`。
首页可用 `router.push` 前往详情:
```tsx
import { router } from 'expo-router';
router.push({ pathname: '/activity/[id]', params: { id: item.id } });
```
详情页通过 `useLocalSearchParams` 读取参数:
```tsx
import { useLocalSearchParams } from 'expo-router';
const { id } = useLocalSearchParams<{ id: string }>();
```
根据 `id` 从活动数组中查找对应数据,再展示标题、时间、地点与介绍。页面返回按钮由 Expo Router 的 Stack 默认提供;若没有,请检查根布局是否使用了 `Stack`。
## 今日任务:校园活动列表
完成首页活动列表和活动详情页:
```text
首页
├─ APP 部新人培训
├─ 程序设计比赛
└─ 社团招新宣讲
↓
活动详情
```
详情页至少显示活动名称、时间、地点、活动介绍。点击不同活动,必须显示不同内容。
## 验收标准
- [ ] 首页至少显示 3 条活动
- [ ] 使用 `FlatList`
- [ ] 每个列表项都有稳定的 `id`
- [ ] 点击列表项能跳到详情页
- [ ] 使用 `router.push`(或 `Link`)传递 `id`
- [ ] 详情页用 `useLocalSearchParams` 读取 `id`
- [ ] 不同活动展示不同详情
+100
View File
@@ -0,0 +1,100 @@
# Day_7:综合小测——CampusHelper
> 把前六天学到的东西真正组合成一个 React Native 应用。
预计用时:60~90 分钟。
今天可以查阅前面的 README、官方文档、报错信息或 AI;但请确保你知道提交的代码大致在做什么。
## 最终任务
完成 CampusHelper,至少包含:
```text
首页
├─ 个人信息卡片
├─ 学习打卡计数器
└─ 校园活动列表
↓
活动详情
└─ 报名状态切换
```
## 功能要求
### 1. 个人信息卡片
首页显示姓名、专业、APP 部新人身份和学习方向。
### 2. 学习打卡
显示当前次数,提供 `+1`、`-1`、重置按钮;次数不能小于 0。
### 3. 活动列表
至少三条活动,每条展示名称、时间和地点。请使用 `FlatList`。
### 4. 活动详情
点击活动进入详情页,展示标题、时间、地点和介绍。不同活动必须显示不同内容。
### 5. 报名按钮
详情页增加可切换状态的按钮:
```text
[ 报名活动 ] ↔ [ 已报名 ]
```
参考实现:
```tsx
const [joined, setJoined] = useState(false);
<Pressable onPress={() => setJoined((current) => !current)}>
<Text>{joined ? '已报名' : '报名活动'}</Text>
</Pressable>
```
## 最低验收标准
- [ ] 项目能通过 `npx expo start` 正常运行
- [ ] 至少有首页和活动详情页两个页面
- [ ] 使用 `View`、`Text`、`StyleSheet`
- [ ] 使用 `useState`
- [ ] 使用 `Pressable` 和 `onPress`
- [ ] 使用 `FlatList`
- [ ] 使用 Expo Router 页面跳转并传递参数
- [ ] 有一个能改变状态的报名按钮
- [ ] 页面有基本样式且没有明显红色报错
## Git 要求
完成项目后,在项目目录执行:
```bash
git status
git add .
git commit -m "feat: finish CampusHelper React Native app"
git push
git log --oneline
```
## 项目 README
为你的项目添加 `README.md`,写明:项目名称、已完成功能、你学到的 React Native 知识点,以及启动方式:
```bash
npm install
npx expo start
```
## 提交内容
在 Day_7 工单提交首页截图、活动详情截图、Git 提交记录截图,以及一句你在这七天中收获最大或最难理解的知识点。
## Bonus
- 用 `AsyncStorage` 持久化报名状态;
- 设计自己的色彩、卡片和按钮风格;
- 增加 Todo、课程表、失物招领等一个新页面。
+18 -432
View File
@@ -1,450 +1,36 @@
# DailyChallenge_APP
APP部 2026 纳新每日一题(开发基础 / 命令行 / Git / 微信小程序)
APP 部 2026 纳新每日一题(开发基础 / 命令行 / Git / React Native)。
请克隆仓库以获取每日一题。
## 学习方式
每天一个文件夹(`Day_1 ~ Day_7`),**先看教程再动手做**,每天控制在 **30~60 分钟以内**:
1. 打开当天文件夹的 `README.md`
2. 先阅读 `README.md` 中的内容,了解当天需要使用的知识
3. 再完成任务,遇到问题时优先尝试查阅文档、搜索或使用 AI 辅助
4. 将运行结果、截图或代码提交到**当日工单**评论区
---
## 提交方式
请在对应的每日工单下方“撰写”区域提交你的代码、运行截图或仓库链接,然后点击“评论”。
如果页面显示“登录 并参与到对话中”,请先点击“登录”并注册你的账户。
推荐从第一天开始保留自己的练习仓库,例如:
```text
DailyChallenge_APP_你的名字/
├── Day_1/
├── Day_2/
├── Day_3/
├── ...
└── Day_7/
```
后续会学习使用 Git 管理这些代码。
---
每个 `Day_1` ~ `Day_7` 文件夹中都有当天教学与任务。建议每天投入 30~60 分钟:先读 `README.md`,再完成任务,并将代码、运行截图或仓库链接提交到当天工单。
## 课程安排
| 目录 | 内容 |
| --- | --- |
| `Day_1` | 环境配置:VS Code + 终端 + 微信开发者工具 |
| `Day_1` | 环境配置:VS Code、Node.js、Git、Expo Go 与第一个 React Native 应用 |
| `Day_2` | 命令行基础:目录、文件与路径 |
| `Day_3` | Git 入门:clone / add / commit / pull / push |
| `Day_4` | 小程序页面基础:WXML + WXSS |
| `Day_5` | 小程序交互:事件、data 与 `setData` |
| `Day_6` | 页面与组件:列表、页面跳转与简单数据展示 |
| `Day_7` | 完成一个简单微信小程序 |
| `Day_4` | React Native 页面基础:组件、JSX 与 StyleSheet |
| `Day_5` | React Native 交互:事件、state 与 `useState` |
| `Day_6` | 列表与导航:`FlatList`、参数与详情页 |
| `Day_7` | 综合完成一个 React Native 校园助手应用 |
每个目录包含:当日题目(`README.md`)、学习资料、任务要求、提示以及参考解答。
> **定位目标:**帮助零基础同学建立开发习惯,理解项目、组件、状态、事件、列表与导航,并能阅读和修改一个简单的 React Native 应用。
> **定位目标:**这一阶段主要帮助零基础同学建立最基本的软件开发习惯,理解文件、终端、Git、页面、数据和事件之间的关系,并能够看懂和修改一个简单的小程序项目。
## 技术栈
---
本阶段使用 React Native + Expo:
## 每日内容简介
- React:用组件描述界面,用 state 管理会变化的数据。
- React Native:将 React 组件渲染为 Android / iOS 原生界面。
- Expo:提供适合入门的项目脚手架、开发服务器与真机预览流程。
- React Navigation:处理多页面应用的页面跳转。
### Day_1:搭建你的开发环境
入门阶段不需要 Android Studio 或 Xcode;使用 Expo Go 扫码即可在手机上预览。
完成最基本的开发环境配置:
## 最终项目:CampusHelper
- 安装 VS Code
- 安装 Chrome / Edge
- 安装微信开发者工具
- 学会打开终端
- 成功打开并运行第一个示例项目
第七天将完成一个小型校园助手应用,至少包含个人信息卡片、学习打卡计数器、校园活动列表,以及活动详情页与报名状态切换。
当天不要求掌握编程知识。
目标只有一个:
> **让开发环境真正跑起来。**
---
### Day_2:程序员如何操作文件?
学习最基本的命令行概念:
```text
当前目录
文件
文件夹
绝对路径
相对路径
```
以及常见命令:
```bash
cd
dir / ls
mkdir
pwd
```
这一部分虽然看起来和 APP 开发没有直接关系,但今后使用:
```text
Git
Gradle
Node.js
开发服务器
项目脚本
```
都会频繁接触终端。
---
### Day_3:第一次使用 Git
学习最基本的版本控制流程:
```text
工作区
↓
git add
↓
git commit
↓
本地仓库
↓
git push
↓
远程仓库
```
主要使用:
```bash
git clone
git status
git add .
git commit -m "..."
git pull
git push
```
当天任务是:
> 将自己的练习文件第一次提交到 Git 仓库。
暂时不要求掌握:
```text
rebase
reset
cherry-pick
复杂分支管理
```
这些会在真正参与项目后逐步学习。
---
### Day_4:第一个微信小程序页面
正式进入微信小程序。
学习:
```text
WXML
WXSS
页面结构
基础组件
文字
图片
按钮
简单布局
```
理解最重要的两个概念:
```text
WXML = 页面结构
WXSS = 页面样式
```
当天任务可以完成一个:
> **APP 部个人介绍页面**
例如显示:
```text
姓名
专业
兴趣方向
想学习的技术
联系方式
```
---
### Day_5:让页面“动起来”
学习小程序中的:
```text
事件
data
setData
bindtap
```
理解:
```text
用户点击
↓
触发事件
↓
执行函数
↓
数据发生变化
↓
界面更新
```
当天任务:
> 完成一个简单的计数器或 Todo 页面。
例如:
```text
当前次数:0
[ +1 ]
[ -1 ]
[ 重置 ]
```
重点不是功能复杂,而是第一次理解:
> **页面其实是数据的一种表现。**
---
### Day_6:从一个页面到一个小应用
学习:
```text
列表渲染
wx:for
条件渲染
页面跳转
简单的数据传递
```
当天任务可以完成一个:
> **校园活动列表**
首页:
```text
APP 部新人培训
程序设计比赛
社团招新宣讲
```
点击某一个活动后进入详情页。
开始建立:
```text
列表页
↓
详情页
```
这种真实 APP 中非常常见的页面关系。
---
### Day_7:综合小测
最后一天不再学习大量新知识。
使用前几天的知识完成一个简单小程序,例如:
## Campus Helper Mini
可以包含:
```text
首页
活动列表
活动详情
个人页面
```
最低要求:
- 至少两个页面
- 使用 WXML
- 使用 WXSS
- 至少一次点击事件
- 至少一次 `setData`
- 至少一次列表渲染
- 至少一次页面跳转
- 使用 Git 提交代码
- 编写简单的 `README.md`
Bonus:
- 本地缓存
- 表单输入
- 搜索 / 筛选
- 调用简单的公开 API
- 自定义组件
---
## 环境准备
`Day_1` 会详细介绍。
### 编辑器
VS Code
<https://code.visualstudio.com/>
### 微信开发者工具
微信官方提供的小程序开发环境。
后续的 WXML、WXSS、JavaScript 和页面调试都会在这里完成。
### 浏览器
推荐:
- Chrome
- Edge
浏览器的开发者工具也是今后调试 Web 页面、接口和网络请求的重要工具。
### Git
用于:
```text
获取代码
保存修改记录
提交作业
团队协作
```
后续 APP 部正式项目原则上都会使用 Git 进行代码管理。
---
## 与 Kotlin / KMP 学习的关系
APP 部目前主要包含:
```text
微信小程序
+
Kotlin / Kotlin Multiplatform
```
本仓库主要用于技术扫盲和小程序开发启蒙。
Kotlin / KMP 方向已有独立教程:
```text
From Kotlin to Kotlin-Multiplatform
```
本每日一题主要负责所有方向共同需要的基础能力:
```text
开发环境
命令行
项目目录
Git
页面
事件
数据
调试
```
---
## 关于 AI
欢迎使用 AI。
在现在的软件开发过程中,能够正确使用 AI 本身也是一种能力。
你可以让 AI:
```text
解释报错
解释一段代码
寻找某个 API 的使用方法
帮助检查代码
给出修改建议
```
但不建议直接:
```text
复制题目
↓
让 AI 完整生成
↓
不阅读代码
↓
直接提交
```
换句话说,
> **AI 生成的代码,我大概知道每一部分是在干什么;修改一个需求时,我知道应该去哪里改。**
如果你能够做到这一点,本阶段的学习目标就已经基本达成。
---
## 最后的目标
完成这一阶段以后,不要求你能够独立开发一个完整 APP。
希望你至少能够做到:
```text
看到一个项目
↓
知道怎么把它 clone 下来
↓
知道应该在哪个目录运行
↓
能够阅读基本项目结构
↓
能够修改一个简单页面
↓
能够处理点击事件和页面数据
↓
能够通过 Git 提交自己的修改
```
做到这些,你就已经具备继续学习微信小程序、Kotlin / KMP,以及参加 APP 部真实项目开发所需要的第一层基础。
完成后,你应能从项目目录启动开发服务器、修改一个组件、处理点击事件、更新 state、渲染列表、在页面间传递参数,并用 Git 保存修改。