Skip to content

SLEEX/AIcalendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AI Calendar (AI日历)

📖 项目简介 (Introduction)

AI Calendar 是一款融合了实用日历功能与 AI 艺术生成的个人应用。它不仅仅是一个查看日期的工具,更是一个每日更新的数字艺术画廊,旨在通过 AI 技术为每一天赋予独特的视觉体验和知识价值。

核心理念:每一天,都是一幅新的画卷。


✨ 核心功能 (Features)

1. 基础日历 (Core Calendar)

  • 多视图支持:提供清晰的日视图(Today)和月视图(Month Grid)。
  • 信息展示:包含公历日期、星期,并预留农历/节气显示位置。
  • 交互:简单直观的日期切换与跳转。

2. AI 插画与科普 (AI Art & Trivia)

  • 每日一图:深度集成 NanoBananaPro 生图 API,每天自动展示一张高质量插画。
  • 知识科普:每张插画下方配有相关的科普小知识(涵盖历史、自然、艺术等领域),实现“图文并茂”。
  • 强关联性:日期(如节日、节气)、插画内容、科普文字三者之间具有强逻辑关联,形成统一的叙事。

3. 个性化定制 (Customization)

  • 设定明日:用户可以掌握未来,提前选定“明天”及以后的主题关键词(如:赛博朋克、印象派、极简主义)和绘画风格。
  • API 配置:支持用户自行输入和管理 NanoBanana API Key,保障服务的灵活性。

4. 智能生成机制 (Smart Generation)

  • 提前准备 (Pre-generation):系统采用 T-1 策略,提前一天在后台生成次日所需的内容。
  • 无感体验:用户第二天打开应用时,内容已准备就绪,无需等待加载,体验流畅。

🎨 UI/UX 设计 (Design)

设计原则

  • 风格扁平简洁 (Flat & Minimalist)。去除多余装饰,强调内容本身。
  • 体验流畅舒适,久看不累。配色柔和,排版考究,适合长期日常使用。

画面布局 (Layout)

采用 “双轴沉浸式”布局,结合了传统的日历工具与现代的流媒体浏览体验。

1. 日历功能区 (Left Zone)

位置:屏幕上半部分 (Mobile) 或 左侧栏 (Desktop)

  • 设计:纯净背景,内容垂直水平居中
  • 元素:大号日期、月历网格,视觉重心稳重。

2. 全景视窗区 (Right Zone)

位置:右侧主区域 (Desktop),采用水平滚动 (Scroll Snap)

  • Page 1: 今日聚焦 (Peek View)

    • 布局:拍立得卡片位于中间偏右的位置,营造视觉张力。
    • 右侧预览:屏幕右边缘隐约显示(虚化处理)“最近三天”的插画列表,暗示用户可以向左滑动
    • 交互:点击卡片可查看详情/科普。
  • Page 2: 历史画廊 (Gallery View)

    • 位置:位于 Page 1 右侧,滑动进入。
    • 布局由上到下的瀑布流/网格展示过往所有日历产出。
    • 交互:点击任意历史图片,自动跳转回该日期的详情卡片。

🏗 信息架构 (Information Architecture)

graph TD
    Start[启动应用] --> CheckConfig{检查 API 配置}
    
    CheckConfig -- 未配置 --> SetupPage[API 配置页]
    CheckConfig -- 已配置 --> HomePage[主页 - 今日视图]
    
    subgraph HomePage_Layout [主页布局]
        CalendarArea[日历功能区]
        ContentCard[内容卡片区]
    end
    
    HomePage --> CalendarArea
    HomePage --> ContentCard
    
    CalendarArea -->|切换日期| HistoryView[历史/未来预览]
    
    ContentCard -->|浏览| ImageView[查看大图]
    ContentCard -->|点击设置| CustomizePage[定制明日主题]
    
    CustomizePage -->|选择风格/标签| UserPrefs[(用户偏好存储)]
    
    %% 后台逻辑
    HomePage -.->|后台触发| GenService[生图调度服务]
    GenService -->|读取 T+1 设置| UserPrefs
    GenService -->|调用| NanoBananaAPI[NanoBanana API]
    NanoBananaAPI -->|返回图片| LocalStorage[(本地缓存)]
Loading

🛠 技术实现规划 (Technical Implementation)

1. 技术栈建议

  • 前端框架:React / Vue (Web) 或 React Native / Flutter (Mobile)。
  • 状态管理:简单的 Context API 或 Pinia。
  • 持久化:LocalStorage 或 SQLite (用于存储 API Key、用户偏好、图片缓存)。

2. 核心逻辑:提前生成 (Pre-generation)

为了实现“内容生成的机制是提前一天”,建议采用以下逻辑:

  1. 触发时机:每次 App 启动 (onLaunch) 或从后台进入前台 (onResume)。
  2. 检查逻辑
    const tomorrow = getTomorrowDate();
    const cachedContent = storage.get(tomorrow);
    
    if (!cachedContent) {
        // 1. 读取明日的主题设置 (默认为随机或用户指定)
        const theme = userSettings.getTheme(tomorrow);
        
        // 2. 构建 Prompt
        const prompt = buildPrompt(tomorrow, theme);
        
        // 3. 异步调用 API (不阻塞 UI)
        api.generateImage(prompt).then(img => {
            storage.save(tomorrow, img);
        });
    }
  3. Prompt 构建:结合日期特征(如“周五”、“中秋”)和用户主题。

3. API 配置

  • 在首次启动时引导用户输入 NanoBanana API Key。
  • 密钥仅存储在本地设备,确保安全性。

🗓 优先级排序 (Roadmap)

Phase 1: MVP (最小可行性产品)

  • 基础日历界面搭建(日视图+月视图)。
  • NanoBanana API 配置与联调。
  • 每日一图功能(基于默认 Prompt)。
  • “提前一天”的静默生成逻辑。

Phase 2: 交互与定制

  • “定制明日”功能界面开发。
  • 科普文案的展示(初期可使用静态库或简单的规则生成)。
  • 插画卡片的分享功能。

Phase 3: 内容增强

  • 接入 LLM 自动生成与图片匹配的科普文案。
  • 历史画廊(Gallery)回顾模式。

About

一个可以自动更新插画的 AI 日历

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published