# CHANGELOG 此文件記錄專案的版本變更、解決的問題以及重要的程式碼更新。 --- ## v2.9.0 (2025-12-06) - AI 歷史回顧與生日慶祝優化 本版本專注於提升使用者與 AI 助手的互動回憶,並大幅改善了生日慶祝的視覺體驗,同時簡化了匯入聯絡人的流程。 ### 🤖 AI Wishes History (AI 歷史回顧) - **新增歷史紀錄區塊**:在 Friend Profile 頁面新增了 "AI Wishes" 區塊,自動記錄所有為該好友生成的 AI 祝福語。 - **折疊式設計**: - 預設僅顯示摘要 (2 行),保持介面整潔。 - 點擊卡片可展開閱讀完整內容,支援長文也不佔版面。 - **視覺化標籤**:每則紀錄都附帶場景標籤 (Scenario Badge) 與日期,清楚回顧每一次的溫暖互動。 ### 🎂 生日慶祝體驗升級 (Birthday Celebration) - **隨機彩帶特效**: - 重新設計了彩帶 (Confetti) 動畫,現在會以隨機的速度、角度和位置飄落,營造更自然歡樂的氛圍。 - **優雅的生日徽章**: - 移除了頂部突兀的橫幅,改在名字下方顯示精緻的 "🎉 Happy Birthday!" 膠囊徽章。 - 視覺上更融入 Profile Header,不搶占主要資訊空間。 ### 📥 匯入聯絡人優化 (Import Contacts) - **搜尋功能**:新增即時搜尋列,可透過名字快速查找手機通訊錄中的特定聯絡人。 - **狀態過濾器**: - **All**:顯示所有聯絡人。 - **Birthday**:只顯示有生日資料的聯絡人。 - **Photo**:只顯示有照片的聯絡人。 - **New**:只顯示尚未匯入的新聯絡人。 - **介面簡化**:移除了多餘的快速全選按鈕,操作更直觀。 ### 🛠 技術變更 - 更新 App 版本至 **v2.9.0**。 - 清理未使用樣式代碼。 ## v2.8.0 (2025-12-06) - 節日日曆客製化與使用者回饋系統 本版本帶來多項重要改進,包括節日日曆客製化功能、使用者回饋表單整合、Import 流程修復,以及多處 UI 優化。 ### 🆕 新增 Library - **react-native-webview@13.15.0**:用於嵌入 Tally 回饋表單 ### 🎄 節日日曆客製化 (Holiday Calendars) - **新增設定選項**:Settings → DATA & PREFERENCES → Holiday Calendars - **四種選項**: - 🎄 **Western**(預設):西洋節日 - 🧧 **Chinese**:華人傳統節日 - 🎄🧧 **Both**:兩者皆顯示 - **None**:不顯示任何節日 - **西洋節日**:New Year's Day、Valentine's Day、St. Patrick's Day、Halloween、Thanksgiving、Christmas Eve/Day、New Year's Eve - **華人節日**:春節、元宵節、清明節、端午節、中秋節、重陽節、冬至 - **動態主題**:每個華人節日都有專屬的漸層配色和裝飾圖示 ### 💬 使用者回饋系統 (Feedback Form) - **Tally 表單整合**:新增 `FeedbackScreen`,使用 WebView 嵌入 Tally.so 回饋表單 - **App 內體驗**:用戶不需離開 App 即可填寫回饋 - **完整狀態處理**:載入中 spinner、錯誤處理與重試按鈕 - **流程**:Settings → Send Feedback → 打開 Modal 顯示表單 ### ❓ Help Center 說明中心 - **新增 `HelpCenterScreen`**:完整的 App 內說明系統 - **5 大主題分類**: - 🚀 **Getting Started**:Bubly 介紹、新增朋友、匯入聯絡人 - 👥 **Managing Friends**:親密程度、釘選、批次刪除、標籤 - 📅 **Calendar & Reminders**:通知設定、節日顯示、紀念日 - ✨ **AI Assistant**:AI 功能、API Key 設定 - 🛡️ **Privacy & Data**:資料安全、匯出、重置 - **手風琴式展開**:點擊問題展開答案,優雅的動畫效果 - **快速連結**:Send Feedback 和 Email Support 入口 - **設計風格**:漸層 Hero 卡片、玻璃質感、與 App 一致的美學 ### 🔧 親密程度選擇器重設計 (Closeness Segment Picker) - **問題**:原先頭像下方的小徽章太隱蔽,用戶不會注意到可以點擊 - **解決方案**:新增玻璃質感的三選項分段選擇器 - 👋 **Just Met** - Acquaintance(青綠色漸層) - 🫶 **Friend** - Good buddy(紫色漸層) - 💖 **Bestie** - Inner circle(粉紅色漸層) - **位置**:放在 Nickname 區塊下方、Tab Switcher 上方 - **設計**:大面積可點擊區域、Emoji + 標題 + 副標題 ### 🐛 Bug 修復 (Bug Fixes) #### 1. Import Contacts 卡住問題 - **問題**:Reset All Data 後匯入聯絡人,Import Successful Modal 無法顯示 - **根本原因**:useEffect 依賴 existingContacts,導致連鎖更新 - **修正**: - 使用 `useRef` 追蹤匯入狀態 (`isImporting`, `hasLoadedOnce`) - 使用快照 (`existingContactsSnapshot`) 判斷已匯入聯絡人 - 改用 `navigation.reset()` 進行更穩定的導航重置 #### 2. Calendar 日曆高度不一致 - **問題**:月份天數不同時,日曆大小會變化,導致下方介面跳動 - **修正**:設置 `daysGrid` 固定 `minHeight: 260`,`dayCell` 使用固定 `height: 43` ### 🎨 UI 優化 (UI Improvements) #### Friends 頁面 - **複選按鈕移動**:從 Header 移至 Filter Row 末端,成為 "Select" 按鈕 - **更好的視覺一致性**:與 Sort 按鈕和 Tag Chips 風格一致 #### Calendar 頁面 - **預設視圖**:改為 Calendar 視圖(原為 Timeline) - **Filter Tabs 間距**:增加 `headerTitleRow` 的 `marginBottom`,防止標籤被遮擋 #### Bottom Navbar - **圖標對齊修復**:修正 `glowContainer` 添加居中樣式,確保發光圓圈與圖標精確對齊 ### 📋 技術變更摘要 | 檔案 | 變更 | | -------------------------------------- | ----------------------------------- | | `src/types/index.ts` | 新增 `holidayCalendars` 設定屬性 | | `src/screens/FeedbackScreen.tsx` | ⭐ 新增 - Tally 回饋表單頁面 | | `src/screens/HelpCenterScreen.tsx` | ⭐ 新增 - Help Center 說明中心 | | `src/screens/SettingScreen.tsx` | 新增節日日曆設定、修改回饋/說明導航 | | `src/screens/CalendarScreen.tsx` | 新增華人節日、固定日曆高度 | | `src/screens/FriendsScreen.tsx` | 移動複選按鈕位置 | | `src/screens/EditContactScreen.tsx` | 重設計親密程度選擇器 | | `src/screens/ImportContactsScreen.tsx` | 修復 Reset 後匯入卡住問題 | | `src/components/GlassTabBar.tsx` | 修復圖標居中對齊 | | `App.tsx` | 新增 Feedback、HelpCenter 路由 | --- ## v2.7.0 (2025-12-05) - 設定頁面大改版與批次操作功能 本版本帶來了全新的設定頁面設計,提升了整體 App 的專業度與一致性,並在朋友列表新增了實用的批次刪除功能,同時為行事曆加入了生動的節日主題卡片。 ### ⚙️ 設定頁面重塑 (Settings Revamp) - **現代化分組設計**:採用類似 iOS 原生的分組清單風格,將設定項目清晰分類為 General、Data & Preferences、AI Assistant、Support 等區塊。 - **個人化資料卡片**:新增個人資料預覽區塊,目前顯示 "Free Trial" 會員狀態,為未來的付費功能預留空間。 - **新增支援與法律資訊**: - **Support**:新增 "Rate Bubly" (評分)、"Send Feedback" (意見回饋) 與 "Help Center" (說明中心) 入口。 - **Legal**:新增 "Terms of Service" 與 "Privacy Policy" 頁面,內含符合美台法規的標準條款。 - **危險區域 (Danger Zone)**:將重置資料功能獨立為紅色警示區塊,防止誤觸。 ### 👥 朋友列表升級 (Friends Screen) - **批次刪除功能 (Batch Delete)**: - 新增多選模式 (Selection Mode),可透過長按卡片或點擊 Header 的 "Select" 按鈕進入。 - **Header 整合操作**:將刪除按鈕整合至頂部 Header 右側,解決了原先底部操作列被導航欄遮擋的問題。 - **視覺優化**:選取狀態清晰可見,操作流程順暢。 ### 📅 行事曆節慶主題 (Calendar Festive Themes) - **動態 "Up Next" 卡片**: - 根據即將到來的事件類型自動切換主題配色與裝飾。 - **生日**:金黃色漸層 + 蛋糕氣球 🎂🎈 - **聖誕節**:紅綠漸層 + 聖誕樹雪花 🎄❄️ - **萬聖節**:橘黑漸層 + 南瓜幽靈 🎃👻 - **情人節**:粉紅漸層 + 愛心玫瑰 💘🌹 - **新年**:深藍金漸層 + 煙火香檳 🎆🥂 - **篩選器修復**:修復了上方月曆視圖 (Calendar View) 無法正確響應篩選器 (Birthdays, Holidays 等) 的問題。 ### 🎨 其他優化 - **AI Assistant**:移除了 Header 左上角不必要的返回箭頭,與其他主頁面保持一致。 - **版本號更新**:App 版本推進至 v2.7.0。 ### 🛠 修正與優化 (Hotfix 2025-12-05) #### 1. 📅 Anniversary Date Picker 修復 - **問題**:iOS 上打開 Anniversary 日期選擇器後,只顯示一條灰色線,無法選擇日期。 - **修正**: - 新增 `textColor="#000000"` 與 `themeVariant="light"` 確保文字和背景顏色正確。 - 添加 `datePickerWrapper` 容器設置白色背景,確保 Spinner 可視。 - 將 Picker 高度從 150px 增加到 200px,提升使用體驗。 #### 2. 🎚️ Friendship Gravity 改為按鈕選擇器 - **問題**:原先的滑桿式設計操作不直觀,拖動時泡泡動態不穩定。 - **修正**: - 將複雜的 PanResponder 滑桿改為**三個簡單按鈕**選擇器。 - 使用 LinearGradient 配色與 FriendProfileScreen 一致: - **Just Met**:藍綠色漸層 `['#84fab0', '#8fd3f4']` - **Friend**:紫色漸層 `['#a18cd1', '#fbc2eb']` - **Bestie**:粉紅色漸層 `['#FF9A9E', '#FECFEF']` - 每個選項都有 ⭐ 星星圖示,點擊即選擇。 #### 3. 📥 匯入聯絡人 - 生日與紀念日資料遺失修復 (Critical) - **問題**:從手機通訊錄匯入聯絡人時,生日 (Birthday) 和紀念日 (Anniversaries) 資料沒有被帶入 App。 - **根本原因**:在 `ImportContactsScreen.tsx` 創建 `newContact` 物件時,遺漏了 `birthday`、`birthdayYearUnknown` 和 `enableBirthdayNotification` 欄位。 - **修正**: - 新增 `birthday: fullContactData.birthday` 將生日資料正確帶入。 - 新增 `birthdayYearUnknown` 標記,當手機通訊錄中的生日沒有年份時,正確標記為「年份未知」。 - 新增 `enableBirthdayNotification: true` 預設開啟生日通知。 #### 4. 🔗 匯入成功後導航修復 - **問題**:匯入聯絡人成功後,點擊 "Awesome!" 按鈕會卡在 Import Contacts 頁面。 - **修正**: - 使用 `StackActions.popToTop()` 先回到堆疊頂部,再導航到 Friends 頁面。 - 添加適當的延遲確保 Modal 完全關閉後再執行導航。 #### 5. 📌 新增釘選功能 (Pin Contacts) - **功能**:在 Friends 頁面可以釘選喜愛的聯絡人,使其永遠顯示在列表最上方。 - **特點**: - 📌 釘選的聯絡人**完全固定**在最上面,不受排序方式影響。 - 📌 支援 **List 模式** 和 **Grid 模式**。 - 📌 已釘選狀態:List 模式顯示紫色書籤,Grid 模式顯示紫色背景按鈕。 - 📌 點擊書籤圖示即可釘選/取消釘選。 #### 6. 🗑️ 刪除聯絡人 UI 優化 - **問題**:原先 "Delete Contact" 按鈕使用白色文字,在頁面上不夠明顯。 - **修正**: - 改為紅色醒目設計:🗑️ 垃圾桶圖示 + 紅色文字 + 紅色邊框。 - 簡化確認流程為單次確認。 #### 7. 🧹 其他清理 - 移除 Import Contacts 列表中不必要的編輯按鈕,簡化匯入流程。 --- ## v2.6.1 (2025-12-05) - 編輯體驗優化與 Bug 修復 本版本針對「編輯聯絡人」頁面進行了細節打磨,修復了年份選擇器的操作問題,並優化了鍵盤互動體驗,確保輸入過程流暢無阻。 ### 🛠 修正與優化 (Fixes & Improvements) #### 1. 🎁 Gift History 年份選擇器修復 - **問題**:原先的年份選擇器在滾動時無法正確選定年份,關閉後會跳回預設值 (2025)。 - **修正**: - 實作了 `onMomentumScrollEnd` 與 `onScrollEndDrag` 監聽,確保滾動停止時自動選定視窗中央的年份。 - 加入 `snapToAlignment="center"` 讓滾動手感更明確,不再卡在兩個年份中間。 - 設定 `initialScrollIndex` 確保打開時自動定位到當前設定的年份。 #### 2. ⌨️ 鍵盤遮擋完美解決 (Notes 區塊) - **問題**:在編輯位於頁面底部的 "Notes" 或 "Gift History" 輸入框時,鍵盤彈出會遮擋輸入內容,導致無法邊看邊打。 - **修正**: - 引入 `react-native-keyboard-aware-scroll-view` 取代原本的 `KeyboardAvoidingView`。 - 實現智能滾動機制,當鍵盤彈出時,畫面會自動上推,確保當前焦點輸入框始終位於鍵盤上方可視區域。 - 支援點擊背景收起鍵盤 (`keyboardShouldPersistTaps="handled"`),提升操作便利性。 #### 3. 📥 匯入成功視窗優化 - **問題**:部分用戶回報匯入聯絡人後的 "Success" 原生彈窗 (Alert) 無法關閉。 - **修正**: - 以全新的 **Custom Success Modal** 取代原生 `Alert.alert`。 - 採用一致的玻璃擬態設計,提供明確的 "Awesome!" 關閉按鈕,徹底解決卡死問題。 #### 4. 📝 文案優化 - **調整**:將首頁 Fun Fact 中較難懂的 "404: Bad vibes not found" 替換為更正向、符合品牌調性的 "Bubbo says: Pop problems like bubbles! 🫧"。 ## v2.6.0 (2025-12-05) - Dashboard Refinement & Calendar Revamp 本版本針對首頁儀表板 (Dashboard) 與行事曆 (Calendar) 進行了深度優化,提升了資訊的可讀性與互動性,並進一步打磨了視覺細節。 ### 📊 Dashboard Widget Refinement (儀表板優化) #### 1. Today's Party (今日壽星) - **視覺降噪**:調整了卡片背景漸層,改為極淡的 Pastel (粉彩) 色系,降低視覺搶眼度,使其更自然融入整體風格。 - **排版優化**: - 固定卡片寬度,確保版面整潔。 - 增加名字顯示行數並縮小問候語字體,解決長名字或長問候語被截斷的問題。 - **動態背景**:根據聯絡人重要性 (Bestie/Friend/Just Met) 自動切換不同的柔和背景色。 #### 2. Widget 重新設計 - **My Circle (原 Friends Widget)**:更名並加入 "Friends Connected 🤝" 副標題,強調人際連結的概念。 - **Zodiac Season (星座季節)**: - 新增星座 Widget,顯示當前星座季節 (e.g., Capricorn ♑)。 - 點擊可查看該星座的朋友數量與特質。 - **Events This Week**: - 取代原本模糊的 "Chill Vibes",直接顯示未來 7 天內的事件數量,資訊更明確。 ### 📅 Calendar Revamp (行事曆翻新) #### 1. 雙視圖切換 (Timeline vs Calendar) - **Timeline View (時間軸視圖)**: - 全新的預設視圖,以垂直時間軸呈現未來 12 個月的事件。 - **Sticky Month Headers**:月份標題懸浮固定,瀏覽更清晰。 - **Next Big Event**:頂部自動顯示下一個最重要的事件 (如 Bestie 生日) 並附帶倒數計時。 - **Calendar View (月曆視圖)**:保留傳統月曆模式,供習慣查看日期的用戶使用。 #### 2. 智慧過濾器 (Smart Filters) - 新增橫向過濾 Bar:**All / Birthdays / Anniversaries / Holidays**。 - 可快速篩選特定類型的事件,例如只查看接下來的節日或生日。 #### 3. 資料整合 - 完美整合 **Holidays (節日)**、**Birthdays (生日)** 與 **Anniversaries (紀念日)**。 - 節日顯示專屬 Emoji (如 🎄, 🎃),提升趣味性。 ### 🛠 其他修正 (Fixes) - **Anniversary Picker**:修復了編輯聯絡人頁面中 Anniversary 日期選擇器無法彈出的問題,改用 Modal 形式以確保穩定性。 - **Good Morning**:修復了首頁問候語在字數過多時被截斷的問題。 - **LinearGradient 類型修復**:解決了 TypeScript 中漸層顏色的類型錯誤。 --- ## v2.5.0 (2025-12-04) - AI 助手體驗重塑與 UI 一致性整合 本版本專注於 AI Assistant 的深度體驗優化,解決了長期存在的鍵盤遮擋與操作卡頓問題,並統一了全 App 的視覺語言。 ### 🤖 AI Assistant 體驗重塑 #### 1. 🧠 主動式節日建議 (Proactive Prompts) - **智慧偵測**:當您打開 AI 助手時,Bubbo 會自動檢查未來 7 天內是否有聯絡人的生日或紀念日。 - **驚喜提示**:若發現近期事件,Bubbo 會主動提示:"Bubbo noticed Alice's Birthday is in 3 days!" - **一鍵生成**:點擊提示卡片即可直接進入該聯絡人的祝福語生成模式,省去手動選擇的步驟。 #### 2. 🎁 禮物靈感筆記 (Gift Ideas Tracker) - **隨手記錄**:在聯絡人編輯頁面新增「Gift Ideas」區塊,聽到朋友想要什麼隨時記下。 - **送禮時光機**:新增「Gift History」功能,記錄歷年送過的禮物(含年份),避免重複送禮的尷尬。 - **貼心展示**:在聯絡人詳情頁 (Profile) 清晰展示未來的點子與過去的紀錄。 #### 3. ⌨️ 完美的鍵盤交互體驗 - **三重防遮擋機制**: - 增加 ScrollView 底部空間至 300px - TextInput 內建 150px 緩衝區 - **雙重自動滾動**:編輯時 300ms 預防性滾動 + 600ms 確認性滾動,確保文字永遠可見 - **流暢編輯**: - 修復了編輯長文時的滑動卡頓(通過 `scrollEnabled={false}` 將滑動權交還給頁面) - 新增 **拖曳收起鍵盤** (`keyboardDismissMode="on-drag"`) - 新增 **完成按鈕**:編輯模式右上角新增打勾按鈕,一鍵完成並收起鍵盤 #### 2. ⚡️ 極速生成體驗 - **打字機速度提升 300%**:從 50ms/字 提升至 **15ms/字**,大幅減少等待感 - **智能跟隨滾動**:打字機進行時畫面自動向下捲動,確保用戶永遠看到最新生成的文字 - **全新 Loading 狀態**: - 生成時畫面中央顯示大型 Bubbo (Thinking Mood) - 清晰的 "Crafting your perfect message..." 提示與 Spinner 動畫 #### 3. 🎄 節日與功能增強 - **聖誕限定場景**:恢復 `🎄 Christmas Greetings` 為最優先場景,支援聖誕專屬 Prompt - **歷史紀錄管理**:新增「清除所有歷史」功能(帶確認保護) ### 🎨 UI 視覺一致性整合 #### 統一重要度顯示 (Importance Badges) 將 Home、Friends、Calendar 三個畫面的聯絡人重要度顯示方式完全統一,提升辨識度。 - **統一標準**:全線採用 **Mini Gradient Badge + Star Icon** ⭐ - **移除舊設計**:廢除 Friends 列表原本不明顯的純色圓點 - **視覺規範**: - 尺寸:16x16px - 內容:白色微型星星 icon - 背景:根據重要度顯示對應漸層(紅/紫/藍) ### 🧹 代碼清理 - 移除臨時修復指南文件 - 優化 TypeScript 類型定義 - 統一組件樣式引用 --- ## v2.4.0 (2025-12-04) - UI/UX 精緻化與全局鍵盤優化 本次更新帶來了大規模的 UI/UX 改進,重點優化了生日選擇器、AI 助理對話氣泡的視覺設計,並解決了全局鍵盤遮擋問題。此版本專注於提升用戶體驗的直觀性與視覺吸引力。 ### 🎂 生日選擇器完全重新設計 完全捨棄了過時的分散式輸入方式,改為現代化的模態選擇器設計。 #### 核心特性 - **觸發卡片 (Trigger Card)**: - 點擊後彈出模態選擇器 - **已設置狀態**:紫青漸層背景 + 日曆圖標 + 完整日期顯示 - **未設置狀態**:灰色背景 + "Tap to set birthday" 提示 - 清晰顯示年份狀態(完整日期 vs "Year not set") - **全新模態設計**: - **iOS 風格滑出動畫**:從底部滑出,半透明黑色背景遮罩 - **清晰的白色漸層背景**:徹底解決黑屏問題 - **視覺化年份選項卡片**: - 📅 **完整日期卡片**(紫青漸層):日曆圖標 + "Full Date" + "Month, Day & Year" - 🎂 **僅生日卡片**(粉紅漸層):時鐘圖標 + "Just Birthday" + "Month & Day only" - **即時預覽卡片**:底部顯示當前選擇的完整預覽(如 "January 15, 1995" 或 "January 15 (year not saved)") - **動態提示文字**:根據選擇顯示 "Select full date:" 或 "Select birthday (month & day):" #### 用戶體驗提升 - ✨ **一眼就懂**:大卡片視覺化選項,不需思考 toggle 含義 - 🎨 **色彩區分**:紫青 vs 粉紅,清晰區分兩種模式 - 👁️ **即時反饋**:預覽卡片立即顯示結果 - 📱 **觸控友好**:大面積卡片,易於點擊 ### 💬 AI 助理對話氣泡重新設計 將原本單調的文字訊息轉變為生動、多狀態的互動體驗。 #### 多狀態設計 1. **初始狀態**(未選擇聯絡人): - ✨ emoji 雙側裝飾:`✨ Hey there! ✨` - 漸層強調文字:"perfect message" - 箭頭引導:`↓ Pick a friend to get started` 2. **工作狀態**(已選聯絡人,待選場景): - 小字體 "Writing for" - **大字粗體**聯絡人名字(紫色) - 問號圖標 + 斜體提示:"What's the occasion?" 3. **思考中狀態**: - 🤔 emoji + "Thinking of the perfect words..." 4. **完成狀態**: - ✨ emoji + "Ta-da! How does this look?" #### 視覺改進 - **豐富排版**:不同字體大小、粗細、顏色的組合 - **Emoji 融入**:讓對話更生動有情感 - **引導性圖標**:箭頭、問號等小圖標引導用戶 - **漸層文字強調**:重點詞彙使用品牌色 ### ⌨️ 全局鍵盤遮擋問題解決 實現了跨整個應用的鍵盤處理方案,確保輸入體驗流暢。 #### 技術實現 - **`KeyboardAvoidingView` 全局包裹**:EditContactScreen 使用智能鍵盤迴避 - **平台特定設置**: - iOS: `padding` 模式 + 90px 垂直偏移 - Android: 不需特殊處理(`undefined`) - **效果保證**: - ✅ 鍵盤彈出時,內容自動上移 - ✅ 當前輸入框始終可見 - ✅ 不遮擋重要內容 - ✅ 跨平台一致性體驗 ### 🎯 AI 助理場景優化 - **移除 "Apology" 場景**:此場景不適合 AI 生成訊息,已從選項中移除 - **保留場景**: - Birthday - 生日祝福 - Anniversary - 週年紀念 - Promotion - 升職祝賀 - Thank You - 感謝訊息 - Cheer Up - 加油打氣 ### 🎨 設計亮點 #### 生日選擇器 - 清晰的模態層次結構(Header → 選項卡片 → 日期選擇器 → 預覽) - 豐富的視覺反饋(漸層、圖標、陰影) - 符合 Apple 人機界面指南的設計 #### AI 助理 - 從單一文字到多層次互動體驗 - 動態內容根據狀態智能切換 - 更友善、更溫暖的對話氛圍 ### 🛠 技術細節 - **新增 State 變數**:`showBirthdayPicker`, `tempBirthday`, `includeYear` - **新增處理函數**:`handleSaveBirthday` - 從模態保存生日 - **新增樣式**:18 個新樣式支援生日模態設計 - **全局鍵盤設置**:`KeyboardAvoidingView` 配置優化 ### 📱 TestFlight 準備就緒 此版本已通過完整測試,所有功能正常運行: - ✅ TypeScript 編譯通過 - ✅ 所有 UI 改進已驗證 - ✅ 鍵盤處理在 iOS 和 Android 上測試 - ✅ 生日選擇器多種場景測試 - ✅ AI 助理所有狀態測試 ### 🎄 聖誕節限定活動 為慶祝聖誕節,本版本加入了溫馨的節日元素(期間限定,活動後將移除): #### 聖誕裝飾 - **底部導航欄**:旋轉雪花裝飾(隨 tab 切換動畫) - **Home 頁面**:聖誕帽 Bubbo 吉祥物 - **Friends 頁面**:聖誕樹 Bubbo(空狀態) - **Settings 頁面**:聖誕麋鹿 Bubbo #### 實現細節 - 新增 `ChristmasDecorations` 組件 - 5 種聖誕 Bubbo 造型(xmas, xmas-deer, xmas-tree, xmas-santa, xmas-socks) - Tab Bar 雪花動畫(與導航同步旋轉) #### 活動期間 - **開始**:2025-12-04 - **結束**:2025-12-27(預計) - **移除指南**:參見 `docs/development/CHRISTMAS_EVENT.md` --- ## v2.3.1 (2025-12-04) - 列表視圖重構與節日行事曆 本次更新專注於優化朋友列表的瀏覽體驗,移除了氣泡視圖以提供更清晰的資訊呈現,並大幅增強了行事曆功能,加入了西方重要節日的自動標示。 ### 📅 行事曆升級 (Calendar Upgrade) - **西方節日標示**:行事曆現在會自動標示重要的西方節日,並在日期上方顯示對應的節日圖示: - 🎉 New Year's Day (Jan 1) - 💘 Valentine's Day (Feb 14) - ☘️ St. Patrick's Day (Mar 17) - 🎃 Halloween (Oct 31) - 🦃 Thanksgiving (Nov 4th Thursday) - 🎄 Christmas Eve (Dec 24) - 🎅 Christmas Day (Dec 25) - 顯示聖誕帽圖示 - 🎆 New Year's Eve (Dec 31) - **節日卡片**:點擊節日日期時,下方事件列表會顯示專屬的節日卡片。 ### 👥 朋友列表重構 (Friends List Overhaul) - **純列表視圖**:移除了原本的氣泡 (Bubble/Orb) 視圖,全面改為更資訊豐富的列表視圖。 - **事件膠囊 (Event Pills)**:在朋友名字旁新增了動態膠囊,顯示即將到來的生日或紀念日倒數 (e.g., "Birthday 5d" 或 "Today")。 - **預設頭像優化**:統一了全站的預設頭像邏輯,無照片的聯絡人現在會顯示一致的 `avatar_default.png`,不再顯示文字預覽。 - **FAB 佈局修正**:調整了浮動按鈕 (FAB) 的展開位置,確保與首頁佈局一致,避免被底部導航欄遮擋。 ### 🛠 其他修正 (Fixes) - **樣式清理**:移除了大量遺留的氣泡視圖相關代碼與樣式,減少 App 體積與維護成本。 - **頭像一致性**:修復了聯絡人詳情頁 (Profile) 在無照片時顯示不一致的問題。 --- ## v2.3.0 (2025-12-03) - 新手引導通知 (Onboarding Notifications) 為了提升新用戶的黏著度與互動率,本次更新加入了針對新安裝用戶的「新手引導通知」功能。 ### 🔔 新增功能 (New Features) - **新手引導通知 (Onboarding Notifications)**: - **機制**:在用戶安裝 App 後的前 5 天,每天晚上 8 點發送一則推播通知。 - **內容**:採用美式年輕用語 (Gen Z Slang) 與幽默風格 (Duolingo-style),提醒用戶新增聯絡人或生日資訊。 - **目的**:透過趣味性的文案 ("Ghosting your contact list? 👻", "Bruh... 💀") 增加用戶回訪意願。 - **技術**:使用 `expo-notifications` 進行排程,並透過 `AsyncStorage` 確保僅在首次安裝時觸發。 ## v2.2.0 (2025-12-03) - 聖誕節限定活動與體驗優化 本次更新帶來了溫馨的 **聖誕節限定主題**,讓 Bubbo 吉祥物換上節日新裝!同時修復了聯絡人匯入的關鍵問題,並進一步打磨了新增聯絡人的體驗與全站介面一致性。 ### 🎄 聖誕節限定活動 (Limited Time Event) > **注意**:此為季節性限定活動,後續版本將會還原為標準主題。 - **Bubbo 換新裝**:吉祥物 Bubbo 新增了多款聖誕造型,散佈在 App 各個角落: - **Home (主頁)**:Xmas Bubbo 迎接您的到來。 - **AI Assistant**:Xmas Santa (聖誕老人) 為您服務。 - **Edit Contact**:Xmas Socks (聖誕襪) 陪伴您建立新連結。 - **Friends (空狀態)**:Xmas Tree (聖誕樹) 等待您掛上新朋友。 - **Settings (頁尾)**:Xmas Deer (馴鹿) 藏在最後的小驚喜。 ### 🐛 問題修復 (Bug Fixes) - **批次匯入修復**:解決了從通訊錄匯入多位聯絡人時,只有最後一位被成功匯入的問題。 - **技術細節**:在 `AppContext` 新增 `addContacts` 方法,支援一次性狀態更新與儲存,解決了迴圈呼叫導致的 Race Condition。 ### 🚀 體驗優化 (UX Improvements) #### 1. 新增聯絡人體驗升級 - **Random Avatar (隨機頭像)**:新增隨機產生卡通頭像的功能 (使用 DiceBear API),讓沒有照片的聯絡人也能擁有獨特外觀。 - **Aura Selector 優化**:重要性光環選擇器介面翻新,加入玻璃擬態背景、光暈效果與對應圖示 (Star, User, Coffee)。 - **介面活潑化**:加入 Bubbo 吉祥物與更直觀的操作按鈕。 - **用語修正**:將 "New Friend" 統一修正為 "New Contact"。 #### 2. 全站介面一致性 - **Header 統一**:將 **AI Assistant** 與 **Settings** 頁面的標題區域樣式統一為與 **Friends** 頁面一致的大標題設計 (Left-aligned, Bold, Glassmorphism)。 --- ## v2.1.0 (2025-12-03) - Aura 系統與介面精緻化 本次更新專注於提升「聯絡人」與「朋友」相關頁面的視覺質感,引入了全新的 **Aura(光環)系統** 來直觀呈現聯絡人重要性,並全面優化了 UI 細節,消除廉價感,打造更精緻的玻璃擬態體驗。 ### ✨ 新增功能與視覺升級 #### 1. Aura 光環系統 - **視覺化重要性**:不再僅用文字標示重要性,改以頭像周圍的漸層光環(Aura)呈現。 - **High**: 紅/粉色漸層 (Red/Pink Gradient) - **Medium**: 藍/青色漸層 (Blue/Cyan Gradient) - **Low**: 灰/銀色漸層 (Grey/Silver Gradient) - **全面整合**:Aura 效果已應用於首頁(Home)、行事曆(Calendar)、朋友列表(Friends)及個人檔案(Profile)。 #### 2. 介面質感提升 (Premium Glass UI) - **FriendsScreen (朋友列表)**: - 移除舊版簡單列表,改用高質感的 **BlurView 玻璃卡片**。 - 增加卡片邊框與陰影深度,提升立體感。 - 優化標籤(Tags)與倒數日(Next Event)的排版設計。 - **FriendProfileScreen (朋友檔案)**: - **玻璃時間軸**:將原本簡單的日期列表升級為精緻的玻璃卡片時間軸。 - **玻璃筆記區**:筆記區塊改為玻璃擬態容器。 - **圖示統一**:全面改用 **Feather Icons**,風格更簡約現代。 #### 3. 互動與細節優化 - **GlassTabBar**:優化了底部導航欄的動畫曲線與模糊強度,使其更滑順、更透亮。 - **編輯頁面**:新增了視覺化的 Aura 選擇器,讓設定重要性更直觀。 ### 🛠 技術調整 - **圖示庫標準化**:大幅減少 `Ionicons` 的使用,轉向 `Feather` 以保持風格一致。 - **組件優化**:在關鍵介面直接使用 `BlurView` 搭配 `LinearGradient` 以獲得更細膩的控制,逐步取代通用的 `LiquidGlass` 封裝。 ## v2.0.0 (2025-12-03) - Liquid Glass UI 重大改版 本次更新是 **Bubly** 自推出以來最重大的視覺設計改版,從原本的星空深色主題全面轉變為明亮、現代的 Liquid Glass(液態玻璃)設計語言,並加入全新的吉祥物角色 **Bobo**,大幅提升使用者體驗與視覺一致性。 ### 🎨 核心設計系統重構 #### 1. 全新的 Liquid Glass 設計語言 **設計理念轉變**: - **從深色星空 → 明亮液態玻璃**:移除了原本的深色宇宙/星空主題,改為以白色為基底的明亮介面 - **玻璃擬態設計**:採用毛玻璃模糊(Glassmorphism)效果,營造出輕盈、透明、流動的視覺感受 - **漸層色彩系統**:主要色彩從橘金色系轉變為青藍(Cyan `#6DD5FA`)到紫羅蘭(Violet `#BF85EC`)的漸層 **配色方案革新**([colors.ts:1-80](src/constants/colors.ts#L1-L80)): - **背景色**: - `background.main`: 純白色 `#FFFFFF`(主背景) - `background.subtle`: 極淺冷灰 `#F5F7FA`(區段背景) - 移除了 `deepSpace`、`darkNebula`、`starField` 等深色定義,改為淺色映射 - **主色調**: - `primary.cyan`: `#6DD5FA`(漸層起點,取代原本的橘色) - `primary.violet`: `#BF85EC`(漸層終點) - 保留 `primary.orange`: `#FF6B35` 作為次要品牌色 - **文字顏色**: - 從白色系改為深色系以提高可讀性 - `text.primary`: 午夜藍 `#2C3E50`(高對比) - `text.secondary`: 石板藍 `#5D6D7E`(中對比) - 新增 `text.inverse`: `#FFFFFF`(用於漸層背景上的白字) - **新增陰影系統**([colors.ts:58-71](src/constants/colors.ts#L58-L71)): - `shadows.soft`: 使用 Cyan 色彩的柔和陰影 - `shadows.button`: 使用 Violet 色彩的按鈕陰影 - 提供帶有色彩的懸浮感,符合 Liquid Glass 美學 #### 2. 新增核心 UI 組件 **LiquidGlass 組件**([src/components/LiquidGlass.tsx](src/components/LiquidGlass.tsx)): - 使用 `expo-blur` 的 `BlurView` 實現毛玻璃效果 - 結合 `LinearGradient` 創造邊框光暈效果 - 支援自訂: - `intensity`:模糊強度(預設 30) - `tint`:色調(light/dark/default) - `shape`:形狀(rectangle/circle/pill) - `borderOpacity`:邊框透明度 - 包含頂部光澤效果(shine effect)增強玻璃質感 - Android 平台自動降級為半透明背景作為備用方案 **BoboMascot 組件**([src/components/BoboMascot.tsx](src/components/BoboMascot.tsx)): - 全新的吉祥物角色「Bobo」,為應用注入親和力 - 支援 6 種情緒狀態: - `standard`:標準狀態(有背景版) - `happy`:開心 - `no-idea`:不知道 - `point`:指向你 - `say-hi`:打招呼 - `thinking`:思考中 - 自帶浮動動畫效果(可選開關) - 高度可自訂尺寸與樣式 **StarryBackground 組件重構**: - 原本的星空背景組件進行了簡化 - 移除複雜的宇宙星雲效果,改為輕量級的裝飾性背景 - 與新的 Liquid Glass 設計語言相容 ### 📱 全畫面 UI 重新設計 **所有主要畫面均已重新設計**,包含但不限於: 1. **首頁(HomeScreen)**([src/screens/HomeScreen.tsx](src/screens/HomeScreen.tsx)): - 改用 Liquid Glass 卡片元件 - 整合 Bobo 吉祥物於多個互動區域 - 白色背景配搭彩色漸層按鈕 2. **朋友列表(FriendsScreen)**([src/screens/FriendsScreen.tsx](src/screens/FriendsScreen.tsx)): - 列表項改用 Liquid Glass 效果 - 標籤系統採用新配色方案 - 浮動新增按鈕使用 Cyan-Violet 漸層 3. **行事曆(CalendarScreen)**([src/screens/CalendarScreen.tsx](src/screens/CalendarScreen.tsx)): - 日期選擇器採用玻璃效果 - 事件卡片使用 Liquid Glass 組件 - 空狀態顯示 Bobo 吉祥物(thinking 模式) 4. **朋友詳細頁(FriendProfileScreen)**([src/screens/FriendProfileScreen.tsx](src/screens/FriendProfileScreen.tsx)): - 頭像與資訊卡片採用玻璃效果 - 按鈕改用新的漸層色彩 - 整體配色從深色轉為淺色高對比 5. **AI 助理(AIAssistantScreen)**([src/screens/AIAssistantScreen.tsx](src/screens/AIAssistantScreen.tsx)): - 整合 Bobo 吉祥物作為 AI 代表 - 對話氣泡採用 Liquid Glass 設計 - 按鈕與輸入框使用新的色彩系統 6. **設定頁(SettingScreen)**([src/screens/SettingScreen.tsx](src/screens/SettingScreen.tsx)): - 設定項目改用 Liquid Glass 卡片 - 開關與控制元件配合新主題 - 版本資訊區域重新設計 7. **其他畫面**: - 編輯聯絡人(EditContactScreen) - 標籤管理(TagsManagementScreen) - 聯絡人選擇器(ContactSelectorScreen) - 匯入聯絡人相關畫面(ImportContactsScreen、ImportContactDetailScreen) - 全部配合新的設計語言進行調整 ### 🎭 新增視覺資源 **Bobo 吉祥物圖片資源**(`/assets/`): - `bobo_wt_bg.png`:標準版(帶背景) - `bobo_happy.png`:開心表情 - `bobo_no idea.png`:不知道表情 - `bobo_point at you.png`:指向動作 - `bobo_say hi.png`:打招呼動作 - `bobo_thinking.png`:思考表情 **應用圖示更新**: - `icon.png`、`adaptive-icon.png`、`favicon.png` 均已更新為新的品牌識別 ### 🔧 技術改進 #### 依賴套件更新 - 新增 `expo-blur`: `^15.0.7`(用於 Liquid Glass 效果) - `expo-linear-gradient` 升級至 `~15.0.7`(用於漸層效果) #### 程式碼品質 - 28 個檔案變更,1222 行新增,1211 行刪除 - 所有畫面組件統一採用新的設計系統 - 移除過時的深色主題相關程式碼 - 改善型別定義與程式碼結構 ### 📐 設計系統指南 **給開發者的設計原則**: 1. **使用 `<LiquidGlass>` 包裹卡片元素**:不再手動設定陰影與邊框,改用 LiquidGlass 組件 2. **色彩使用**: - 背景使用 `colors.background.main` 或 `colors.background.subtle` - 主要互動元素使用 `gradients.primary`(Cyan 到 Violet) - 文字使用 `colors.text.primary/secondary/tertiary` - 保留 `colors.primary.orange` 作為品牌提示色 3. **陰影**:使用 `shadows.soft` 或 `shadows.button` 取代手動設定 4. **吉祥物整合**:在空狀態、引導流程、互動回饋中適當加入 Bobo ### ⚠️ 重大變更(Breaking Changes) - **色彩常數重命名**:舊的 `deepSpace`、`darkNebula` 等深色定義已重新映射為淺色,若有自訂組件引用這些色彩需要更新 - **背景元件變更**:`StarryBackground` 組件行為已改變,不再顯示星空效果 - **主題系統**:目前僅支援 Light Mode,Dark Mode 支援已暫時移除(未來會重新加入) ### 🎯 使用者體驗提升 - **視覺一致性**:所有畫面統一採用 Liquid Glass 設計語言 - **可讀性提升**:從深色背景白字改為淺色背景深字,減少眼睛疲勞 - **現代感**:Glassmorphism 是當前主流的 UI 趨勢,提升應用的時尚感 - **親和力**:Bobo 吉祥物的加入讓應用更有溫度與個性 - **清晰度**:高對比配色方案提升介面元素的辨識度 ### 🔄 遷移指南 如果您從舊版本升級,請注意: 1. 執行 `npm install` 安裝新的依賴套件(`expo-blur`) 2. 檢查自訂的色彩引用,確認是否需要調整 3. 若有自製組件使用舊的 `colors` 定義,請參考新的 `src/constants/colors.ts` 進行更新 4. Bobo 圖片資源已包含在 `/assets/` 中,無需額外下載 --- ## v1.1.0 (2025-11-06) - Build修正與程式碼優化 本次更新主要解決了先前版本無法成功透過 `expo build` 或 `eas build` 進行建置的嚴重問題,並包含了一系列的程式碼品質提升和依賴套件升級。 ### 解決的重大問題 (Solved Issues) #### 1. Expo/EAS 建置失敗 - **問題描述**: 在執行 `expo build` 或 `eas build` 時,prebuild 階段必定失敗,並顯示找不到 `./assets/icon.png` 的錯誤。 - **根本原因**: 此問題由兩個環環相扣的錯誤所導致。 1. **原因一:App Icon 位置不正確 (直接原因)** Expo 的建置系統被設定為從專案根目錄下的 `./assets/icon.png` 來讀取 App Icon。然而,該圖示檔案當時並未在此路徑,這是導致建置流程找不到檔案並立即失敗的直接原因。 2. **原因二:`.gitignore` 設定錯誤 (根本原因)** 更根本的問題在於,專案的 `.gitignore` 檔案中包含了 `*.png` 規則。這個設定會命令 Git 忽略所有 `.png` 檔案。因此,即使手動將 `icon.png` 移至正確位置,它也無法被提交到版本控制系統。這意味著任何協作者或自動化建置環境在下載專案時,都無法取得 icon 檔案,最終仍會導致建置失敗。 - **解決方案**: 必須同時解決上述兩個問題。 1. **移動 Icon**: 將 `icon.png` 檔案放置到正確的 `/assets/icon.png` 路徑下。 2. **修改 .gitignore**: 移除 `.gitignore` 中忽略 `*.png` 和 `*.jpg` 的規則,確保圖片資源能被正常追蹤並提交。 ### 程式碼與函式庫變更 (Code & Library Changes) #### 1. 依賴套件升級 (Dependency Upgrades) 為了提升穩定性與安全性,更新了多個核心依賴套件,包含: - `expo`: `~54.0.12` -> `54.0.22` - `react-native`: `0.81.4` -> `0.81.5` - `expo-contacts`: `^15.0.9` -> `~15.0.10` - 以及其他相關的 `metro`, `babel` 等底層套件。 - (詳細變更請參考 `package-lock.json` 的 diff) #### 2. 程式碼品質優化 (Code Refinements) - **`src/constants/colors.ts`**: 為 `gradients` 物件中的陣列加上了 `as const`,將其轉換為唯讀元組,增加了型別的嚴謹性與安全性。 - **`src/lib/openaiService.ts`**: 移除了不再需要的 `console.log`,使程式碼更簡潔。 - **`src/screens/FriendsScreen.tsx`**: 在 `map` 迴圈中為 `tagId` 加上了明確的 `string` 型別,提升程式碼可讀性。 - **`src/screens/ImportContactsScreen.tsx`**: 重構了從系統聯絡人匯入生日的邏輯,新的寫法能更穩定地處理 `expo-contacts` 可能回傳的不同日期格式,避免因格式問題導致的閃退或錯誤。 ### 給開發者的說明 (Notes for Developers) - **初始設定**: 新加入的開發者在 `git clone` 專案後,請務必執行 `npm install` 來安裝所有依賴。 - **App Icon**: 未來若要更換 App Icon,請直接替換 `/assets/icon.png` 檔案即可。 - **快取問題**: 如果遇到無法解釋的錯誤,可以嘗試用 `npx expo start -c` 來清除 Expo 的快取後重啟。