年度徵文 | AI,零基礎,我的第一款應用 - 少數派#
#Omnivore
利益相關聲明: 作者與文中產品有直接的利益相關(開發者、自家產品等)
「本文參加 2023 年度徵文活動。我的 2023 年度關鍵詞是:創造。」
2023 年,是特別的一年。
這一年,我鼓起勇氣辭職,我從零開始學習編程,我做出了自己的第一款應用:Cush 記帳。我的人生好像脫軌了,駛向一片未知的地方。期間有太多的歡喜成長,猶豫徬徨,共同構成了我 2023 的關鍵詞:創造。
我知道螢幕前的很多人,也想創造一個美好的應用,但囿於編程的艱澀,淺嘗輒止。所以讓我寫下這一年的經歷,分享我這樣零基礎的人,如何在 AI 的幫助下一點點創造。我這樣都可以,我相信你也可以。
讓我們開始吧!
8 - 11 月:編程之路#
剛開始開發時,我先學習了少數派「iOS 獨立開發指南」。
這個教程針對零基礎用戶,系統地介紹了編程是怎麼回事,如何一步步做應用。
我每天學習 2-3 節,大概看了半個月。一開始,我認認真真地在紙上做筆記,完成每一個章節的課後習題。但學到 Swift 部分愈發艱難,尤其是 2.5 結構部分,看著都有閱讀障礙了。代碼也越來越多,在紙上記筆記真的要崩潰了。後來我直接跳到 SwiftUI 部分,簡單看完就開始上手做應用了。
當時在紙上記的筆記
我的應用大致分為兩個部分:數據算法、界面交互。
數據算法指的是數據庫、存儲刪減數據、調用數據等。這部分通常使用 Swift,比較難和枯燥。界面交互指的是展示數據、用戶交互等。這部分使用 SwiftUI,就像拼積木一樣,更容易上手。
一開始我要搭建自己的數據庫。按照教程需要用到 JSON 和增刪讀改等一堆函數,看著就很頭大。恰時 AI 很火,我就抱著試試看的態度,買了美區禮品卡開通了 GPT-4。然後我直接問 AI:
我正在開發一個 Swift 軟件。這是一個教學代碼,請你參考這個代碼給出我的數據庫代碼。數據格式為 XXX,另外注意:YYY(我的特別要求)。
不得不說,這玩意真的太牛了。它直接給出了完整的、運行良好的代碼。不僅採用了教學代碼的框架,並且完成了我自定義的需求。這是我第一次感受到 AI 的神奇。
我不再需要會寫代碼,只要能讀懂,會運行,編程的難度大大降低了。
有了數據庫,就要調用數據展示了。一開始我是直接問 AI:
這是我的數據庫,請你給我生成一個函數,可以計算過去七天的花費總額。
但因為我的應用是記帳軟件,涉及到很多函數,每次複製粘貼數據庫太麻煩了,於是我做了一個 GPTs,直接預設了數據庫 Promote,這樣每次只要告訴它想生成什麼函數就可以了。
這種重複性的工作,真的很適合預設 Promote 的 GPTs。
GPT 3.5 也可以預設 Promote
數據算法設計好後,就需要構建界面了。
這方面有很多編程語言,如 SwiftUI、UIKit,甚至 Flutter 等等。一開始我還去調研了一下,看到有開發吐槽 SwiftUI,糾結要不要用。後來嘗試學習了一下,便喜歡上了 SwiftUI。
SwiftUI 就像是搭積木一樣。想要兩行文字,直接拖拽兩個 Text 視圖就好,入門非常簡單。官方還有很多預設的組件,例如鬧鐘裡上下滾動選擇時間的效果,在 SwiftUI 裡直接調用 Picker 組件寫幾行代碼就可以實現。寫起來真的很美很解壓,這也讓我第一次喜歡上了編程。
幾行代碼就可以寫出右邊的效果
開始編程前,我已經在 Figma 裡設計好了所有頁面。所以接下來的事情,就是一個頁面一個頁面去做。
首先,大部分頁面都是基礎的元素堆疊,並不難。
我下載了一些 SwiftUI 應用,如 Swifter、Interactful、Libraried、Fabula 等。它們就像是一個 SwiftUI 效果小詞典。想要什麼效果,就上去找源代碼,再發給 GPT,寫起來很快。
這裡分享一個 GPT 小技巧。
在網上搜索解決方案時,會看到很多時候看不懂但是和問題相關的代碼,我就剪切下來問 GPT:你看這個代碼有啟發嗎?不管多亂多無關,它都能找到核心點並模仿。我的很多問題都是這樣解決的。
Interactful:可以直接複製源碼
但隨著頁面和代碼越來越多,數據流動也越來越複雜。
之前我是直接把所有代碼發給 GPT,GPT 總是能讀到關鍵的部分。但後來,一個頁面就可能有上千行代碼,發給 GPT 字數爆表。所以我在開發到 1/3 時又花了幾天時間學習了代碼整理、備註規範等,並把所有常用模塊打包成可以復用的組件。後來每次問 GPT,我總能快速發送核心點,效率提升了很多。我也驚訝地發現,GPT 給出的答案有時也會變好。
把問題問清楚,在和 AI 交流的時候也很實用。
用 //MARK: - 整理代碼,非常解壓
GPT 也不總是可靠。有時候,它會給出特別複雜的解決方案。
在我的設計裡,我希望備註框可以左右滑動關閉,這樣使用起來很自然。但是 GPT 讓我檢測用戶滑動行為,涉及到 UIKit 甚至 Objective-C 等非常複雜的代碼,實現的結果也很糟糕。
我隱約覺得不可靠,便仔細思考了一下,潛意識裡為什麼會想出左右滑動的方案。後來發現是源自 iPhone 桌面左右滑動的體驗,這其實是 SwiftUI 的預設組件 TabView。後來我讓 GPT 用 TabView 的方式實現,幾行代碼就解決了。
所以如果 GPT 給出的解決方案太複雜,不妨再優化一下自己的需求。
最後的效果展示
還有一次,我遇到了個棘手的 Bug:一旦輸入小數點應用就會卡死。
問 GPT 後,它總能給出解決方案,但總解決不了問題。我便去學習了斷點測試,排查了很久,終於發現原來是地區問題。我的手機設置的是以逗號,為小數點的法國地區。於是我在傳遞數據前做了個判斷,便解決了問題。
這也給了我一個教訓:不能太依賴 AI,還是要加強自己的編程技能。
如果我不會編程,便只能不斷問 AI,連解法是否可靠都無法甄別。但是了解編程之後,可以有很簡單的解決辦法,自己遇到問題也能更好的排查。它就像是我的員工,我的能力上限決定了它的能力上限。
存儲前用左邊的代碼來過濾逗號小數點,就能避免閃退 Bug 了
當然,除了提升自己的能力,還有一個簡單的方法可以解決問題:找外援。
一般,GPT-4 解決不了的問題,我會再問一遍 BingAI、Board 和 Pi,有時候可以神奇地解決。有些問題網上很明顯會有解決方案,如怎麼把導航標題設為圓體,我就直接英文谷歌,一般前排的 StackOverflow、文章和 YouTube 視頻等都可以解決。如果不清楚專業名詞怎麼問,可以問 GPT 如何提問。有些時候,百度也能給出解決方法,如這篇如何手勢返回的文章。
大部分情況下,只要想解決問題,總能找到解決的辦法。
我經常問 GPT 怎樣提問 ...
當然,有一些問題可能只屬於我,全世界都找不到辦法,這時候就需要發揮主觀能動性了。
我設計了一個特別的貨幣選擇頁面。它可以像設置鬧鐘一樣上下滑動,同時顯示彩色的旗幟和貨幣符號。這是一個新鮮的設計。GPT 怎麼也給不出可靠的設計,網上也沒有先例參考。後來我想了一個巧妙的辦法:把滑動的內容變成高清的圖片,放到 SwiftUI 原生的 Picker 組件裡,就巧妙的解決了,體驗也很好。
推薦大家試試 Cush 的這個界面,很好用 ~
如果還是沒辦法解決,那就變通一下。
在 Cush 的數字輸入界面,我希望數字始終很大,並隨著輸入等比例減小,這樣好看又實用。但這涉及到對每一個設備的屏幕尺寸的檢測,試了很久都無法解決。於是我想了個變通的方法:輸入 5 位數字後,字體會自動縮小一個字號,以此類推。雖然不是完美的方案,但在大部分情況下也能運行良好。
這其實也是編程教給我的道理:不管如何解決,解決問題最重要。
我在編程的很長一段時間裡,都是每天晚上勤勤懇懇把代碼複製到 OneDrive 備份。我知道 Push 到 GitHub 更好,但是 OneDrive 也一樣能留檔。我到現在都是用蘋果的提醒事項做路線圖。我知道 Linear、Notion 等工具更好,但是現在蘋果夠用,未來有需求再換也不遲。
當然,還有一些問題,無論如何都無法解決的。
例如我希望首頁可以上滑到負一頁,負一頁可以下滑到首頁。但首頁和負一頁都是滾動頁面 ScrollView,怎麼都無法實現。所幸它不干涉到核心體驗。權衡之後,我也只能暫且搁置。(此處呼喚一個能力強大的開發大佬 (`-´)> )
做出來,比完美更重要。我相信未來我會慢慢迭代,做得更好。
備份到 OneDrive
開發到後期,我已經變成了一個超級大巨嬰,什麼簡單的問題都想問 GPT。我知道這種依賴性並不好,很多時候自己學習去做會更快,但還是偷懶不做,導致效率始終很低。
很快我就迎來了教訓。
我需要給應用加上付費功能 IAP。但這是一個複雜的問題,涉及到前後端和各種判斷。GPT 很適合解決單點問題,但解決複雜問題的方案常常很糟糕。那幾天我各種嘗試,精疲力竭。期間也想過去認認真真學習 IAP,但看著就覺得很難,總是不想學,GPT 又無法解決問題,導致我陷入矛盾內耗,很痛苦。
後來我終於開始走出舒適圈。我先看了少數派教程,但它直接給了一個有 Bug 的文件,沒有因果,實在不敢用。然後我又看了蘋果的官方教程,它給了一個有源代碼的測試應用,裡面包含了所有付費類型。但是我真的很暈,我只想用最簡單的付費方案啊!囿於不知道也不敢刪除多餘的部分,也沒敢用。
有時候挺奇妙的,本以為提供了完美的方案,實際上別人只想要一點點,完美對別人來說反而是負擔。
實際上,在 IAP 上一直有一個成熟的解決方案:RevenueCat。但是它的 YouTube 教學視頻動輒四十分鐘,我拉進度條,中間的代碼看起來也很複雜,讓人望而卻步。後來實在沒辦法,我就告訴自己,就花一小時,認認真真看完也不會怎樣。於是便認認真真看完了,結果發現它和 SwiftUI 一樣簡單直接,文檔也清晰易懂,真的不難。花了兩三個小時便創建好了 IAP。
這件事對我來說很特別,它告訴了我一個很重要的道理:生活裡很多困難的事情,往往只是麻煩,而不是困難。只要耐著性子,一點點學習和拆解,慢慢就能做完。這種心態讓我在面對困難時不再犯怵。現在,我已經能耐著性子看一些更長更複雜的視頻,學習之前望而卻步的「SwiftUI 編程思想」了。
神奇的男人,幫我解決了很多問題
總之,就是這樣一天天,一點點,我做完了我的應用。
12 - 1 月:上架與合作#
寫到這裡,讓我先介紹一下我的應用:Cush 記帳。
我從大學起就有記帳的習慣,但往往堅持幾周就半途而廢了。雖然如此,在記帳的這幾周裡,我知道自己花了多少錢,對花錢這個行為有了感知力,真的就節省了花費。於是每當我花費失控時,我就會把記帳當成是糾錯工具,記上幾周,自己就會慢慢變好。
2023 年,我鼓起勇氣辭職後,自然而然便想到了做這樣一款理念的記帳軟件。它幫助了我,我相信它可以幫助更多人。於是便有了 Cush。它採用特別的上下屏設計,讓用戶在大部分情況下可以只專注記帳;它特別強調了備註心情功能,用戶可以針對每月、每天、每一筆記錄寫備註;在啟動頁,我還特別提示用戶可以短期記帳,糾正超支。
有趣的是,當時我沉迷學習多鄰國,非常喜歡它賤賤的小組件,於是也在應用裡做了一個通知系統,用戶超支時便會彈出賤賤的提醒。這個提醒還會根據用戶的超支程度變化,為此我想了上百個,花費了很多精力。
上下屏設計|心情備註|有趣提醒
這些都是我在產品上架前做的功能。沒有用戶調研,全憑自己的直覺和想像。當時我想 Cush 的特色功能應該是短期糾正超支和趣味提醒,所以把這作為了上架後的行銷方向。
做完應用後,便是申請開發者帳號,發 TestFlight 測試,修改優化,然後是上架。
上架後,按照預期方向,我嘗試做了一些推廣。例如發小紅書、豆瓣等。後來也很快拿到了 App Store 本周推薦,MRR 到了 $500+。但當我想要認真開始推廣時,一位前輩告訴我,要先提升應用留存率。而想要提升留存率,就要先知道用戶為什麼使用我的產品,又有哪些不滿可以改善。於是我開始了用戶調研。
蘋果推薦 ~
Cush 簡單又精美,在測試和上架初期,就有很多很多用戶朋友表達了喜愛,他們都特別特別好,對此我真的非常非常感恩。但這也掩蓋了一些問題,讓我誤認為應用在按照我的預設軌跡發展。但當我發了一堆問卷,又打了十幾個用戶電話後,發現完全不是。
對於他們來說,Cush 最有價值的地方是可以養成記帳和省錢習慣。傳統的記帳軟件都堆砌了一堆複雜的功能,記帳前還要選分類,繁瑣和難以堅持。但 Cush 界面極簡無干擾,記帳時只需下滑記錄金額,甚至不用分類,讓人輕鬆就可以堅持記帳。與此同時,Cush 的智能日預算,和超支時界面變紅的警戒色,真的能在每一天,記錄的每一筆,潛移默化省錢。
而我之前設想的心情備註功能,幾乎沒有人用。那些賤賤的提醒,煩人也沒有用處。
Cush 真的能幫助很多人通過記帳變得更好
所以 Cush 做出了改變。我隱藏了提醒,去除了短期糾正超支的理念文章。應用的重心轉移到了「幫助用戶養成記帳和省錢習慣」。
這裡還可以介紹 Cush 的一些未來計畫:養成記帳習慣方面,Cush 會增加一個可以自定義預設標籤的桌面小組件,省去重複打標籤的繁瑣,讓記帳更快速;養成省錢習慣方面,用戶在每周回顧時,將可以回看並選擇哪些花費可以節省,讓下周做得更好。
這段經歷對我來說真的特別有益。我一直對產品感興趣,但終究沒有職業化的做過產品。但是現在,我在分析需求,用戶調研,靠近我喜歡的職業道路。每一次彎路都讓我新奇,原來那些書裡讀過的內容是這樣的。我重新拾起了以前沒有共鳴的產品書,我很好奇這條路上會發生什麼。
對了,還預測一下:Cush 會支持對單個標籤設置預算
到 12 月末,一次特別的契機,我和一名字節開發大佬合作了。
我一直知道自己不擅長也不喜歡開發,補短板只是無奈之選。合作後,我做產品等,他做開發,我們有了工作排期,有了文檔庫,一切按預期推進,我真的覺得工作幸福感提升了 10 倍。不到一個月的時間,我們做了 iCloud 備份、自動記帳、收入模式,修復了很多 Bug。
我們一起做的功能
Cush 在設計伊始只能記錄支出,產品的所有設計都是圍繞支出。做收入時,意味著所有的細節和界面都要重新設計。當時我還突發奇想要加入省錢模式。於是,支出、收入、省錢,三個模式混雜在一起,我設計了幾十個界面,始終覺得不好。後來,我的開發夥伴幫我梳理了產品價值,於是我們刪除了省錢模式。我們學習了精益創業,做了用戶調研,定位調整為幫助大家養成記帳和省錢習慣,於是收入便成了次要。
最後,我們用一種非常巧妙的方式實現了收入模式。原版設計幾乎不需要變動,收入只是淺淺展示可有可無。它添加了一個大的功能,它本需要設計地很複雜,但現在的設計卻幾乎沒有變化,簡單自然。雖然花了很多精力產品設計,但它大大減小了開發和使用成本,整體上反而是值得的。
這個經歷也提示我:要花更多時間思考產品,而不是為了速度盲目投入開發,堆砌功能。
沒做收入模式之前的 Cush
做了收入模式之後的 Cush,幾乎沒有變化
捨棄的「存錢功能」
捨棄的複雜方案 1
捨棄的複雜方案 2
捨棄的複雜方案 N ...
我合作的開發朋友真的很棒。他不像很多開發只做開發,而是有很好的產品意識。我們之間有商議,有爭執,做出來的產品明顯更好。但他合作之初,是想和成熟的產品學習產品知識,而我也只是產品菜鳥。於是,一個月後,我們的合作結束了。按照約定的 50% 分成,是 1600 余元,我想這應該遠低於他一個月的工資。
希望我可以努力,把 Cush 做好,提升自己,再請他,值得地,繼續合作。
2 月:從心出發#
做獨立開發,最難克服的一點是:紀律性。
不用工作後,時間都是自由安排,也沒有目標效績的壓力。我很喜歡設計,就經常熬夜設計到兩三點。快到中午才起床,沒有精力和自控力,也不喜歡編程,就去看一些亂七八糟的資訊逃避。有時候,我一天能摸魚 7-8 個小時,Xcode 編程軟件都沒有打開。
後來有一天,我終於忍無可忍了,這不是我辭職前想要的生活啊!
我用 5Why 方式問自己為什麼要熬夜做設計,深入到潛意識裡發現,是害怕靈感溜走,以及覺得這樣很努力。但我告訴自己,專業應該體現在紀律性,而不是通過投入的時間「假裝努力」。靈感是專業後的穩定結果,追求突發的靈感並不是專業的體現。於是我戒除了熬夜。
早上睡懶覺時,我問自己,過去睡了十年懶覺,現在有感覺到很幸福嗎?並沒有。今天睡懶覺只是滿足了一種癮,明天就記不得今天的懶覺快樂了,對嗎?對,我瓦解了當下這種滿足癮的渴望,早晨便沒有睡懶覺的念。現在每天早晨六點半起床。
這些聽起來有點奇怪。為什麼不是上床前不玩手機,早晨定鬧鐘等實際的方式?因為改變行為最好的方式是改變認知,而不是約束行為。所有的念都來自潛意識的預設,通過 5Why 打開潛意識,否定這一預設,然後就自然能改變行為了。
聽起來有點奇怪,但推薦試一試。
至於白天的工作效率低。我知道是因為自己陷入了被動駕駛,不知道自己在浪費時間。於是我參考「時間貧困」一書的時間追蹤表,做了一個優化版本。記錄自己剛剛在幹什麼。僅僅是記錄這個動作,就讓我意識到原來我在看資訊,於是便減少了看資訊。
有意思的是,通過記錄時間,我發現每次高頻工作一小時後會擺爛看一小時資訊。後來我切換了工作方式,每工作 20 分鐘就站起來走一走(休息),後來能連續工作兩小時,只需要看半小時資訊了。慢慢的,我更了解自己了,也在一點點變好。
我的時間記錄歷史
還有一些時候,我很迷茫不知道做什麼。原因在想做的事情太多太大而無從下手。我就會用飛書的思維筆記拆解一下。我發現,僅僅是寫下來,焦慮就會消失。沒有了負面情緒,自控力也提升了。思維筆記真的很適合學習和梳理,現在我記讀書筆記、整理用戶訪談、做計畫,做各種事情都用思維筆記,推薦!
用思維導圖做讀書筆記,真的比 Notion、Flomo 等線性工具好太多了,推薦推薦
我很擅長認知和時間管理,解決這些問題並不難。但很快,我就遇到了個難以解決的問題。
在產品推廣階段,我的大部分用戶主要來自小紅書。但後來做 iCloud 時,我提及「招募」用戶被違規限流,後來的每一條筆記全部限流。如何違規申訴都告之沒有問題,但發什麼都限流,讓我真的特別特別崩潰。小紅書這一點真的特別傻 X。總之,我陷入了一種對不穩定的焦慮。
然後,我便去學習其它增長方式。我加了一堆獨立開發群,然後了解到,原來很多獨立開發不知道做什麼時,就會先做記帳、待辦事項、日記這三種應用,被戲稱為獨立開發三件套。這讓我莫名有一種羞恥感。我又看了一堆「獨立開發做什麼、曬收入」等等內容,知識沒學到,反而懷疑自己做的事情是否有前途,品類增長前景怎麼樣,投入產出是否值得,賺錢可能性是否高等等。一評估,更焦慮了。
辭職這些天,我一直在玩即刻。本來是想休閒,但上面全是 AI 風口,還有很多「大佬」曬成就,讓人更焦慮了。我不免開始動搖:這是一個 AI 機遇時代,做記帳是不是太落後了,決策是不是太糟糕了。
最後,我一直關注的一位「獨立開發導師」也在說新手千萬不要做記帳,加上開發大佬的離開,我的心態徹底崩潰了。
我喪失了對 Cush 的熱情,我覺得自己一事無成,我覺得我找不到工作,我不知道自己應該做什麼。然後,我開始看考公資料了 …
那幾天裡,我看了很多很多考公視頻,下載資料分析自己適合哪個崗位,甚至發現考西藏比較容易還小小激動了一下。我想自己就這樣吧,努力考上,安安穩穩應該會很幸福吧!這不是我辭職前想要的生活,那時卻非常憧憬。
但我如果考公,那些付了錢的用戶怎麼辦?這件事在我心裡非常撕扯。而且我內心深處知道,考上了我不會幸福的。如果那時再看一些成功學的書,我也許會遺憾自己的人生吧。曾經想法無限,但受到一點挫折就逃避,成為了一個無能狂怒,自怨自艾的普通人。
總之,就是一段非常低壓的時光。那時我還想過拍視頻、做健身教練等等不靠谱的想法。
很認真地研究了做視頻,發現我不喜歡寫和剪輯這樣緊湊專業的內容,就放棄了
然後,一個偶然的機會,我看到了胖東來老闆的視頻。
他在回答一位普通人的困惑:28 歲一事無成的人生怎麼辦?他給的回答是:無論工資多少,不和別人比,靜下心來認認真真地工作,去創造美好。這其實是一個製作粗糙的視頻,講了一些好像雞湯的話,但對我來說,就像是一道神啟。不知道為何,我忽然想通了。
我所有的不快樂,都是源於一種期望:我要世俗意義上的成功。所以我要把握機會(AI),賺錢(換方向),證明自己(不做開發三件套)。但我做 Cush 的源動力一直是我要創造美好的東西,這是讓我在 2023 年辭職的勇氣來源,在我開發時就寫到了應用裡,是我每個熬夜設計的晚上,那種發自內心的喜歡和動力。
有些答案,其實我已經知道了,只是忘記了。
滑動 Cush 設置底部,可以見到這個彩蛋
如果不成功 會怎麼樣?沒有很多錢,但是我依然能找一份工作,吹的起空調,在物質上過得比古代王侯將相還好;如果沒有趕上 AI 風口會怎麼樣?我也沒有趕上移動互聯網和比特幣風口,也還是活得好好的;如果不做 Cush 會怎樣?我想十年之後再回看,我會很遺憾吧!
與此同時,我想 Cush 一定不是我生命裡最後一款產品。我一直有很多想法,例如 全新的工作方式 hillo、增幅 macOS 工作流的小工具、基於 Arc 的一系列想像,亦或是 AI,如此等等。我可以把 Cush 當成是一個很好的鍛煉機會,增長我的產品能力,未來再做這些產品時也更游刃有餘。慢就是快。
就這樣,仔細想了想最糟糕的結果,和我真正想要的東西,我便忽然想開了。然後我取關了「獨立開發導師」和一批「AI 大佬」,退出了所有獨立開發群,不再關注這些焦慮源,不再以成功為目標。然後,我的大腦忽然就打開了,我對 Cush 的熱情,我的創意,我的自控力,全部都回來了。
想想也很奇妙。現在我還是做著和以前一樣的事情,好像什麼都沒有發生過。
我擁有可以改變我自己的力量
哦對了,關於小紅書限流,現在還沒有解決。想想還是很憂愁。不過,切換心態,這應該也只是麻煩,而不是困難的事情吧!希望明年的這個時候再分享,它會成為一件不起眼的小事,被一筆帶過。
如果你也想從零做一款產品#
最後,如果你也想從零做一款產品。
在產品上,建議可以圍繞一個小點,做得簡單一點。
簡單是美。它不是簡單的刪除和功能少,而是深思熟慮後的去繁就簡,可以幫助用戶專注在最重要的事情上。例如我的 Cush,在設計之初就採用上下屏,把大部分不常用的內容隱藏起來,所以用戶能關注在最核心的記帳上,堅持之;整個應用沒有花哨的數據分析,只突出一個指標:是否超支,所以能幫助用戶省錢。
這種簡單不是囿於技術的,而是一種選擇。
通過上下屏設計,將記錄和圖表等非常用功能藏起來
在設計上,參考最好的方案。
我就把我覺得審美和功能最頂級的應用放在了手機首屏,每天提醒自己。還買了很貴的 Mobbin 會員,沒事多逛逛。如果你還不會設計,可以簡單學習一下 Figma。不用關心裡面的組件、變量等高級功能,簡單學一下就行。設計的時候,一定要用手機同步預覽。
哦對了,建議多用 SwiftUI 官方的輪子,例如 Sheet、Picker、蘋果設計語言、震動反饋等。開發成本低,體驗上讓人感覺很流暢。追求自定義可能會又難又醜。蘋果 HIG 是很好的設計參考,但需根據實際情況選擇性接受。例如蘋果不建議多層 Sheet。Transit 就是多層 Sheet,邏輯混亂,體驗不好。但我的 Cush 是「本周 - 今日 - 本條」這樣邏輯清晰的多層 Sheet,使用起來並無大礙。
我的手機首屏
當你想好自己要做什麼樣的應用,並在紙上或 Figma 類繪圖軟件上設計好後,就可以開始學習編程了。
很幸運,AI 的出現,真的讓每個人都有了編程創造的可能。
編程裡有困難艱澀,也有簡單有趣。以往學習時,必須要先學習困難的理論部分,讓人還沒開始就結束了嘗試。現在有了 AI,困難的部分不用自己寫,只要讀懂會用就可以了,門檻大大降低。有了信心,慢慢接觸到界面交互代碼等更有趣的東西,逐漸喜歡上編程,再學習之前晦澀的部分就更簡單了。
你可以先找一本編程教程 1
少數派編程課是一個合適的選擇。如果你買的是少數派編程課,建議上手學習第一章,然後通讀第二章,再在電腦上跟著編程第三章和第四章的前 7 節,然後就可以直接做應用了。
看,了解編程是怎麼回事,以及培養編程基礎。Swift 部分讀懂就行不用寫,SwiftUI 跟著寫,應用部分看自己的應用需要什麼,就學什麼。然後就可以直接做應用了。先開 GPT-4 會員,然後,需要什麼功能,就問 AI / 找教程 / 搜谷歌 / 私信開發大佬。遇到問題,解決問題,如果無法解決,就拆解問題,或轉換問題,或暫時搁置,一點點就能做完。
至於實際的教程和資源。推薦解決疑難雜症的 StackOverflow,推薦講解 RevenueCat 的 Chris,推薦蘋果官方的 SwiftUI 教程。但等等,我想一開始並不需要收藏什麼,不用等準備好了才開始。就直接開始,想做什麼功能就谷歌,好資源自己就會出現。
如果只能記住一個建議的話,就是用谷歌英文搜索!
我很早之前就買了少數派編程課,但因為開頭的 Swift 部分大勸退,覺得自己這輩子都不可能編程了。但是現在,我不僅會寫了,甚至還開發出了自己的應用。雖然只是個小小的入門門徒,但這是我從未想過的事情。我這樣都可以,相信你也一定可以的。
最後,至於產品上線後如何推廣,我暫時也沒有什麼經驗。希望明年再來分享。
結尾#
回看我人生的前 24 年,好像不知怎麼就過完了。
雖然我也在決定我的人生,例如選擇上什麼大學,讀什麼專業,畢業後做什麼工作。但這些決定來自於我,又好像不是我。我可以想像,按照慣例,我會升職加薪,組建一個家庭,生兩個可愛的寶寶,退休,和朋友打打象棋,進 ICU,擠在一個小小的墓地裡。總感覺是被什麼推著走。
但過去的 2023 年,像是一段很奇幻的旅程。
我猶豫了整整一年,終於鼓起勇氣辭職。辭職後我嘗試了很多事情,終於決定現在要做的事情。做事中遇到很多挫折和懷疑,我終於克服並堅定地選擇。我第一次感受到,我在過我自己的人生,我在為我自己的人生負責。很難去描述這種感受,但它是很真實的。
未來會怎麼樣,我也不知道。也許明年積蓄耗盡,我又會回到職場,繼續去升職加薪;也許 Cush 能做大做強,成為世界上最簡單好用的記帳軟件;也許 AI 太厲害,這一切都沒有了意義,大家 30 歲集體退休,天天遛彎下象棋;也許人生無常,變化倏爾即至。
無論如何,在當下,更穩健地過好每一天,增長技能,創造更多美好吧!
- 1 少數派編程課是一個合適的選擇。如果你買的是少數派編程課,建議上手學習第一章,然後通讀第二章,再在電腦上跟著編程第三章和第四章的前 7 節,然後就可以直接做應用了。