顯示具有 app 標籤的文章。 顯示所有文章
顯示具有 app 標籤的文章。 顯示所有文章

2026年3月29日 星期日

[AI] 我叫 Claude 和 Gemini CLI 幫我做遊戲 UI,這差異也太大了

我最近在玩一個 side project,在正式動工之前,我想先用 AI 工具快速生一版測試 UI 感受一下。於是我做了一個小實驗,把同樣的設計規格丟給 Claude Code 和 Gemini CLI,看看誰交得出可以用的東西。

結論先說:差很多。而且差別相當大

我給的任務

Prompt 不是隨便一句話,我把完整設計規格都餵進去了:色彩系統、字型規範、各難度的 HP 和傷害數值、UI 元件風格,包含「背景要用程式生成山脈風景,不使用任何圖片」這種很具體的要求。

Claude Code 的結果

第一眼的感覺是:這個東西看起來像是真的做出來要用的。

背景山脈用程式畫出來了,天空有漸層,四張卡片各自有難度色條(Easy 綠、Normal 藍、Hard 橘、Extreme 紅),選中的卡片有藍色邊框——它知道這些卡片是可以被點選的,不是靜態裝飾。數字用的字型也確實對上了規格。

它不只是執行了指令,更像是讀懂了我要做什麼,然後做了設計決策。

Gemini CLI 的結果


我多看了幾秒才搞清楚這是什麼。

版面沒有結構,標題、星星、難度名稱全部排在一起,像是有人在記事本裡打了一份說明文件然後截圖給我看。沒有背景、沒有卡片、沒有顏色,星星甚至還是空心的。

公平地說:資訊都在,難度名稱、題型說明一個沒少。但「正確的資訊」和「可以用的畫面」是完全不同的兩件事。

AI 輔助開發,我現在的想法

這次實驗讓我重新思考一件事,用 AI 做開發,難點從來不是「讓它執行指令」,而是「它能不能把你腦袋裡的意圖轉成實際的決策」。

「半透明卡片」要怎麼做才有質感?山脈要幾層、透明度怎麼疊才自然?這些細節我在規格書裡都只描述了感覺,沒有給答案——因為我自己也不知道答案。這需要的不只是照著清單做事,而是真的理解「這個遊戲想給人什麼感受」,然後做出對應的判斷。

Claude Code 的結果讓我覺得那個東西後面有個人在做設計。Gemini CLI 的結果,讓我覺得它完成了一份清單。

Claude Code 的輸出也不是零缺陷,還有幾個細節要調。但它給的是一個可以繼續改的起點,而不是一個要從頭重蓋的廢墟。


2023年12月3日 星期日

[App] 百貨小工具隱私權保護政策

非常歡迎您使用百貨小工具,為了讓您安心使用百貨小工具的各項服務,特此向您說明百貨小工具的隱私權保護政策,以保障您的權益,請您詳閱下列內容:


隱私權保護政策的適用範圍
隱私權保護政策內容,包括百貨小工具如何處理在您使用百貨小工具時收集到的使用情況,但絕對不會收集個人隱私資料。隱私權保護政策不適用於百貨小工具以外的相關連結網站,也不適用於非百貨小工具所委託或參與管理的人員。

個人資料的蒐集、處理及利用方式
當您使用百貨小工具時,百貨小工具會記錄您的點選資料,做為改進百貨小工具的參考依據,此記錄為內部應用,絕對不會對外公佈。我們會視需要公佈統計數據,但不會涉及個人資料。

資料之保護
百貨小工具完全使用 Google 提供的開發環境與平台工具,完全沒有使用第三方資源。

隱私權保護政策之修正
百貨小工具隱私權保護政策將因應需求隨時進行修政,修正後的條款將刊登於此。

2023年8月29日 星期二

[iOS][Swift][App] 實作搜尋建議

Photo by Ketut Subiyanto

簡單記錄一下實作搜尋建議的方法,完整的程式在下方

struct ContentView: View {
    @State private var searchText = ""
    @State private var selectedSuggestion = ""
    // 建議列表
    @State private var suggestions: [String] = ["Apple 蘋果", "ALLSAINTS", "BOTTEGA VENETA", "COSME DECORTE 黛珂", "Nike 耐吉", "Dell 戴爾", "COS", "Zara", "Emilie Louis", "L.ERICKSON", "SPRAYGROUND", "gubami Social-法式tapas餐廳", "Sarabeth's"]
    @State private var showSuggestions = false
    
    var body: some View {
        VStack {
	    // 搜尋欄位
            TextField("Search", text: $searchText)
                .padding(.horizontal, 15)
                .padding(.vertical, 10)
                .background(Color(.systemGray6))
                .cornerRadius(8)
                .padding(.top, 10)
                .padding(.bottom, 5)
                .onChange(of: searchText) { newValue in
                    showSuggestions = !newValue.isEmpty
                }
            
            // 選擇搜尋建議後的顯示
            if !selectedSuggestion.isEmpty {
                Text("Selected: \(selectedSuggestion)")
                    .padding(.top, 10)
            }
                        
            if showSuggestions {
                List {
                    ForEach(filteredSuggestions, id: \.self) { suggestion in
                        Text(suggestion)
                            .onTapGesture {
                                selectedSuggestion = suggestion
                                searchText = ""  // 清空 TextField
                                showSuggestions = false  // 隱藏建議列表
                            }
                    }
                    if filteredSuggestions.isEmpty {
                        Text("找不到品牌")
                            .foregroundColor(.gray)
                    }
                }
                .background(Color.white)
                .cornerRadius(8)
                .shadow(radius: 5)
                .padding()
            }
            Spacer()  // 添加一個間距,以便頁面內容和建議列表不重疊
        }
        .padding()
        
        var filteredSuggestions: [String] {
            if searchText.isEmpty {
                return []
            }
            return suggestions.filter({ $0.localizedCaseInsensitiveContains(searchText) })
        }
    }
}

2020年9月11日 星期五

[Android][App] 傳說小工具 10 萬下載

20017/04/15 是傳說小工具上架的日子,過了三年又四個月,小工具來到 10 萬下載,選擇裝備的按鈕也被按下了 286 萬次,當初因為自己有查詢裝備的需求而做出了這個 app,還很擔心會乏人問津,有一些人願意使用我已經很滿足了,到現在為止雖然使用者也不是很多,但知道有幫助到一些人就覺得很足夠。

因為本業才是該多付出時間的地方,這小工具也符合當初不花太多時間的需求,當玩家或是朋友要求我做出什麼功能時,總是考慮很多,深怕花太多時間或是做出來其實沒啥被使用到,接下來我還是會繼續維護這個小工具,並且繼續想想還有什麼能做。

感謝各位使用者。

2019年6月9日 星期日

[生活][影片] 統一發票秒領中獎獎金影片

上次發 [生活] 財政部推出的統一發票兌獎 app,讓我秒領中獎獎金 後,我一直覺得沒有影片實在是不會讓人體會 秒領 的感覺,這次有影片了。


希望能讓有在對發票但還不知道這個功能的人了解這到底有多方便。

2019年2月19日 星期二

[生活] 財政部推出的統一發票兌獎 app,讓我秒領中獎獎金


將每個月發票收集起來是有點麻煩的事,但我覺得領中獎發票的錢是非常麻煩的事,這個月我使用了財政部推出的統一發票兌獎 app,它讓領中獎獎金這件事變的太容易,我填完資料後就秒領中獎獎金了。

詳細的使用方式可以參考電獺少女的這篇 - "官方推出『 統一發票兌獎 』 強項在哪?新制有哪些?以後發票獎金要去哪領?Android / iOS",我覺得對獎方式還是直接人工做比較方便,所以我只有用到兌獎,我拿著中獎的發票,然後按下 "我要領獎",下方有個快速領獎的功能,將電子發票證明聯掃描後,因為我還沒填寫過領獎資料,所以只要填入一次領獎相關資料,之後就可以直接用了,領獎資料包含身分證資料及領獎帳號資料,這真的一點都不麻煩,因為當我填完資料送出時,我的 line (中國信託 LINE)就馬上通知我有入帳了,讓我瞬間決定一定要推薦這個好物給大家。

Reference
1. 官方推出『 統一發票兌獎 』 強項在哪?新制有哪些?以後發票獎金要去哪領?Android / iOS
2. 統一發票兌獎 Android App
3. 統一發票兌獎 iOS App

2018年9月19日 星期三

[App] 傳說小工具隱私權保護政策

非常歡迎您使用傳說小工具,為了讓您安心使用傳說小工具的各項服務,特此向您說明傳說小工具的隱私權保護政策,以保障您的權益,請您詳閱下列內容:

隱私權保護政策的適用範圍
隱私權保護政策內容,包括傳說小工具如何處理在您使用傳說小工具時收集到的使用情況,但絕對不會收集個人隱私資料。隱私權保護政策不適用於傳說小工具以外的相關連結網站,也不適用於非傳說小工具所委託或參與管理的人員。

個人資料的蒐集、處理及利用方式
當您使用傳說小工具時,傳說小工具會記錄您的點選資料,做為改進傳說小工具的參考依據,此記錄為內部應用,絕對不會對外公佈。我們會視需要公佈統計數據,但不會涉及個人資料。

資料之保護
傳說小工具完全使用 Google 提供的開發環境與平台工具,完全沒有使用第三方資源。

隱私權保護政策之修正
傳說小工具隱私權保護政策將因應需求隨時進行修政,修正後的條款將刊登於此。

2017年4月29日 星期六

[Web] 傳說小工具網頁版

之前在 Android 上出的傳說小工具 app,收到一些玩家說也想要有 iOS 版的 app,但要弄出 iOS 的傳說小工具,必定會花上很長一段時間啊,做網頁版的還比較有機會,想起了之前玩 FB SDK 時,有申請了一個 Heroku 來用,於是就來試試看吧。

今天終於把網頁版搞定了,也發佈到 FB 玩家群組去了,希望能得到一些 feedback,目前 Heroku 是提供了每個月 550 hours 的時間讓我使用,希望這個時間是足夠的,不然我就糗了。

傳說小工具網頁版
https://toolsofrov.herokuapp.com/


傳說小工具 Android App
https://play.google.com/store/apps/details?id=tw.blogspot.bradnopitt.toolsofrov

2017年4月15日 星期六

[Android][App] 傳說小工具

最近在玩傳說對決,發現裝備怎麼出真的是一件非常重要而且變化多端的細節,但是無論在官網上或 app 裡都沒有好的試算系統,沒辦法好好的選擇你要的裝備並且幫你試算出結果,我想說都沒人做的話,那就讓我先來做吧,先出一版陽春的然後再慢慢改進,開始。

此版的主要功能為:
1. 裝備種類過濾
2. 屬性加總
3. 唯一被動列表

Play Store 連結:
https://play.google.com/store/apps/details?id=tw.blogspot.bradnopitt.toolsofrov

介紹影片: