logo
0
0
WeChat Login

🍽️ 吃什么 - What to Eat

选择困难症的终结者

一个简洁优雅的跨平台应用,帮你快速决定今天吃什么。支持 iOS、Android 和 Web 三端。

Platform License Version

✨ 功能特点

  • 🎲 一键随机抽取 - 大按钮设计,简单直观
  • 📝 池子管理 - 轻松添加、删除、启用/禁用选项
  • 🔄 自动重置 - 支持每天/每周自动重置池子
  • 🏷️ 分类标签 - 支持餐馆、餐品、自定义类型
  • 💾 本地存储 - 数据完全保存在本地,保护隐私
  • 🎨 极简设计 - 清新的界面,流畅的动画

📱 截图

首页展示抽取结果,池子管理页面管理选项

🚀 快速开始

环境要求

  • Node.js 18+
  • npm / yarn / bun
  • Expo CLI

安装

# 克隆项目 git clone https://cnb.cool/lzf.ai/what-to-eat.git cd what-to-eat # 安装依赖 npm install # 或 bun install

运行

# 启动开发服务器 npm start # iOS 模拟器 npm run ios # Android 模拟器 npm run android # Web 浏览器 npm run web

🛠️ 技术栈

技术用途
Expo跨平台框架
React Native移动端开发
Expo Router路由导航
Zustand状态管理
NativeWind样式方案
Reanimated动画引擎
AsyncStorage本地存储

📂 项目结构

what-to-eat/ ├── app/ # 页面 (Expo Router) │ ├── _layout.tsx # 根布局 │ ├── index.tsx # 首页 │ ├── pool.tsx # 池子管理 │ └── settings.tsx # 设置页面 ├── components/ # 可复用组件 │ ├── BigButton.tsx # 主按钮 │ ├── ItemCard.tsx # 选项卡片 │ └── AddItemModal.tsx # 添加弹窗 ├── store/ # 状态管理 │ └── index.ts # Zustand store ├── types/ # TypeScript 类型 │ └── index.ts ├── assets/ # 静态资源 ├── app.json # Expo 配置 ├── package.json ├── tailwind.config.js # Tailwind 配置 └── tsconfig.json

🎯 核心功能

1. 随机抽取

点击中央大按钮,系统会从已启用的选项中随机抽取一个。支持动画效果。

2. 池子管理

  • 添加新选项(支持名称和类型)
  • 点击选项卡片切换启用/禁用状态
  • 左滑或点击删除按钮移除选项
  • 按类型筛选查看

3. 设置

  • 重置周期: 每天自动重置 / 每周自动重置 / 手动重置
  • 默认类型: 添加新选项时的默认类型

🔧 配置

修改应用名称

编辑 app.json:

{ "expo": { "name": "你的应用名称" } }

修改主题色

编辑 tailwind.config.js 中的颜色配置。

📦 打包发布

使用 EAS Build

# 安装 EAS CLI npm install -g eas-cli # 配置项目 eas build:configure # 构建 iOS eas build --platform ios # 构建 Android eas build --platform android # 构建 Web eas build --platform web

本地打包

# iOS (需要 macOS + Xcode) npx expo run:ios --configuration Release # Android (需要 Android Studio) npx expo run:android --variant release # Web npx expo export --platform web

🧪 测试

# 运行 lint 检查 npm run lint # 类型检查 npx tsc --noEmit

🤝 贡献

欢迎贡献代码、报告问题或提出建议!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'feat: add some feature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

MIT License

🙏 致谢


Made with ❤️ for people who can't decide what to eat

About

今天中午吃什么?

Language
TypeScript97.9%
JavaScript2.1%