国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

這個(gè)軟件我開發(fā)了11年,終于賺錢了!

0
分享至

  2015年,我是一個(gè)普通的全棧Web開發(fā)。

  我有一臺(tái)Mac,玩了一段時(shí)間以后,我就被它充滿活力的應(yīng)用生態(tài)系統(tǒng)所吸引了。

  有一天,我看到了一個(gè)叫做IA Writer的Markdown編輯器,又簡(jiǎn)單又優(yōu)雅。

  我也決定自己做一個(gè)。

  懷著滿腔熱情,我開始學(xué)習(xí)如何制作Mac原生文本編輯器。

  XCode,AppKit,Objective-C,所有這一切對(duì)我來(lái)說(shuō)都是全新的。

  我打算把我的文本編輯器叫做Paper,它就像一張紙,非常簡(jiǎn)潔。

   重要的決定

  我的第一個(gè)決定就是:這個(gè)應(yīng)用一定要是原生的

  我是Web開發(fā),完全可以復(fù)用Electron這樣的框架,但是我不想用它。

  我寧愿學(xué)習(xí)全新的技能,為用戶提供最好的體驗(yàn)。

  這個(gè)體驗(yàn)就是:軟件很小,下載速度超快,使用起來(lái)是原生的UI。

  這樣才能與其他非常精美的編輯器競(jìng)爭(zhēng)。

  我不想縮短開發(fā)時(shí)間,因?yàn)槲覔碛惺澜缟纤械臅r(shí)間。

  第二,我選擇了Objective-C。

  2015年,Swift剛剛出現(xiàn),我做了一個(gè)實(shí)驗(yàn),用Objective-C和Swift分別在XCode中寫了一個(gè)空的項(xiàng)目,然后檢查各自生成的.app包。

  我驚訝地發(fā)現(xiàn),Swift中嵌入了完整的運(yùn)行時(shí),.app包是5M,而Objective-C只有幾十K。

 ?。ㄈ绻悻F(xiàn)在進(jìn)行這個(gè)實(shí)驗(yàn),差異不會(huì)那么大)

  我想要最好的,寧愿付出更難學(xué)習(xí)和語(yǔ)言過時(shí)的代價(jià),以便得到更精簡(jiǎn)的軟件包。

  第三,我不想依賴第三方

  從自己不熟悉的生態(tài)系統(tǒng)中,選擇依賴項(xiàng),這實(shí)在是不容易。

  恐怕大家都有這樣痛苦的經(jīng)驗(yàn):在編寫一行代碼之前,添加一大堆不知道的第三方包和庫(kù)......

  我要構(gòu)建一切內(nèi)容,這樣我可以按需定制,獲得一點(diǎn)競(jìng)爭(zhēng)優(yōu)勢(shì)。

  比如Markdown的解析引擎,因?yàn)镻aper不像那些傳統(tǒng)的編輯器,并不支持全部的Markdown語(yǔ)言,所以在解析引擎中我只需要寫我需要的代碼,并且我可以做大量?jī)?yōu)化。

  Paper 僅使用 AppKit 和 UIKit 中的本機(jī) UI 元素,因?yàn)樗鼈兊木S護(hù)開銷最低:由Apple自動(dòng)更新,向后兼容,保證在每個(gè)設(shè)備上工作。

   我的愿景

  非常簡(jiǎn)單,超越IA Writer,更加精簡(jiǎn),更加優(yōu)雅,讓用戶專注于寫作這件事。

  為了實(shí)現(xiàn)目標(biāo),我盡最大可能減少干擾。

  應(yīng)用程序窗口內(nèi)沒有一個(gè)按鈕。

  沒有標(biāo)準(zhǔn)的“首選項(xiàng)”窗口,將所有內(nèi)容分散到菜單項(xiàng)和菜單小部件中。

  將滾動(dòng)條縮小為2個(gè)像素的線。

  上下滾動(dòng)時(shí)可以隱藏標(biāo)題欄,使得編輯器周圍的空白可以拖動(dòng)

  不知道是否有人注意到了我這些努力,很可能是有的,因?yàn)橛腥藢懥艘粋€(gè)非常簡(jiǎn)潔的評(píng)論,我至今依然將其作為宣傳語(yǔ):

這是一個(gè)超級(jí)干凈的寫作空間,有大量可配置的東西,當(dāng)你不需要時(shí),它們可以隱藏在實(shí)現(xiàn)之外。

  根據(jù)我的觀察,奉行極簡(jiǎn)主義的寫作軟件通常會(huì)走向兩條路:

 ?。?)變得流行,為了滿足大量用戶的新需求,偏離極簡(jiǎn)主義初心,變得復(fù)雜起來(lái)。

 ?。?)繼續(xù)保持極簡(jiǎn)和小眾,最終被創(chuàng)造者所拋棄。

  Paper不會(huì)走(1),但是可能在(2)的路上。

  我的計(jì)劃是:讓Paper永遠(yuǎn)保持它發(fā)布時(shí)的樣子,拒絕增加多余的視覺混亂,正如用戶所說(shuō):

請(qǐng)不要讓 Paper 變得更復(fù)雜!市面上有很多“全功能”編輯器,但它們不適合專注寫作。

  同時(shí),通過緩慢的、可預(yù)測(cè)的更新節(jié)奏,我會(huì)向應(yīng)用程序的邊緣地帶添加功能,同時(shí)保持默認(rèn)路徑超級(jí)干凈。

  

  與瀏覽器中可預(yù)測(cè)的JavaScript運(yùn)行時(shí)相比,閉源原生UI是一個(gè)脆弱的地方。

  如果你不努力的投入精力去重構(gòu)應(yīng)用,fix bug,很快,你的軟件就會(huì)因?yàn)楸罎⒍淮蠹覘売谩?/p>

   架構(gòu)設(shè)計(jì)

  我發(fā)現(xiàn)將Paper的代碼看做兩個(gè)作用域非常方便

  1.應(yīng)用程序作用域

  包括菜單,狀態(tài)欄,圖標(biāo),暗黑模式,全局配置,單實(shí)例視圖

  2.文檔作用域

  視圖和邏輯的集合,存在于表示單個(gè)文檔的視圖控制器中。

  一個(gè)新的文檔作用域在文檔打開的那一刻產(chǎn)生,在文檔關(guān)閉的那一刻死亡。

  與單一應(yīng)用程序作用域不同,多個(gè)文檔作用域可以同時(shí)存在

  對(duì)每個(gè)作用域,我都會(huì)定義一個(gè)storyboard,完成以下功能:

  描述作用域內(nèi)使用的各種視圖和小部件

  充當(dāng)依賴注入容器,將作用域內(nèi)所有的模塊粘合在一起。

   付費(fèi)功能

  從2015到2017年,訂閱制在App Store中還不普遍。大家還都是付費(fèi)下載,但是我覺得如果不使用的話,大家不會(huì)為一個(gè)不知名的App付費(fèi)。

  我其實(shí)并不想設(shè)置什么“付費(fèi)墻”或者試用期啥的,我想給用戶提供更好的體驗(yàn),我的辦法就是給專業(yè)版(Pro)的某些視覺效果收費(fèi),對(duì)于基本功能如文件同步、PDF導(dǎo)出等保證免費(fèi)。

  然后我讓大家無(wú)限期的試用,感受外觀和效果,如果大家覺得不錯(cuò)的話,就可以購(gòu)買Pro版。

  當(dāng)然,必須得有辦法防止無(wú)限期地使用高級(jí)功能而不掏錢,最早的時(shí)候,我設(shè)置了一個(gè)60秒的定時(shí)器:如果有一個(gè)Pro版的功能處于激活狀態(tài),就提醒人們購(gòu)買。

  說(shuō)實(shí)話,60秒提醒一次挺煩人的,后來(lái),我想了一招,把這些提醒和文字聯(lián)系起來(lái),一旦你用Paper開始寫作,每輸入幾百個(gè)字符提示一次,這樣大家就可以盡可能不受干擾的情況下嘗試所有功能。

  

  事實(shí)證明,從用戶反饋看,這種和文字結(jié)合的付費(fèi)提醒方式很不錯(cuò):

“......Paper可以讓你隨意擺弄和測(cè)試專業(yè)功能,而不是鎖在付費(fèi)墻后面(這也是我不喜歡很多應(yīng)用的原因)....你不必相信我說(shuō)的,自己跳進(jìn)去看看,Paper讓你試用每一個(gè)特性...”

   粗糙的部分

  文本編輯器有太多的功能了,復(fù)制粘貼、拖放、撤銷、插入符號(hào)交互、從右到左的語(yǔ)言、非字母語(yǔ)言、聽寫、語(yǔ)音文本、掃描文本、文本中的非文本對(duì)象、點(diǎn)擊并按住鏈接預(yù)覽、文本搜索替換、拼寫檢查、自動(dòng)更正、自動(dòng)完成、人工智能建議......

  你還得被新版的操作系統(tǒng)擺布,它可能增加了新的方式來(lái)插入、更新文本,和文本交互。

  在iOS上,弄清楚“文本編輯器矩形”背后的數(shù)學(xué)原理尤其難,因?yàn)橛懈鞣N因素,例如靈動(dòng)島,主頁(yè)欄、動(dòng)態(tài)顯示的軟件鍵盤,這些都會(huì)造成阻礙。

  

  輸入語(yǔ)言和字體也是一個(gè)令人頭疼的問題。

  字母語(yǔ)言相對(duì)容易處理,因?yàn)榇蠖鄶?shù)主要字體甚至支持古怪的字形,例如元音變音和西里爾字母。

  然而,非字母語(yǔ)言需要特定的字體來(lái)顯示其字形。

  幸運(yùn)的是,蘋果系統(tǒng)為每種非字母輸入語(yǔ)言至少預(yù)裝了一種字體。

  唯一的問題是:沒有 API 將輸入語(yǔ)言映射到支持的字體 - 所以我不得不用大量的switch語(yǔ)句暴力破解它。

  還有就是批量更新,對(duì)簡(jiǎn)單的情況很容易,但是對(duì)于那些邊邊角角的情況,處理起來(lái)太痛苦了,比如加粗一段文本就耗費(fèi)了很多步驟

  

   用戶反饋

  Paper最早用的是一個(gè)叫做HockeyApp的平臺(tái),Mac版自帶聊天功能,這可比電子郵件反饋好多了,用戶可以直接啟用聊天,進(jìn)行反饋。

  微軟收購(gòu)了 HockeyApp后, 將其變成了 AppCenter,聊天功能沒有了。

  沒辦法,我只好自己做:

  

  后來(lái)我還發(fā)現(xiàn)了一些小“秘密”,我寫了一些代碼,能夠從用戶未發(fā)送消息中查找一些關(guān)鍵字,然后自動(dòng)回復(fù)。

  

  自動(dòng)回復(fù)回答了很多常見的問題,大大減少了我的“客服”工作量。

   軟件發(fā)布

  我會(huì)收集聊天中的反饋,每月做一次新版本發(fā)布。

  我會(huì)使用單個(gè)遞增的數(shù)字做版本號(hào),這是個(gè)簡(jiǎn)單的事情,為啥要用2個(gè)以上的用點(diǎn)分隔的數(shù)字呢?

  這是我的release note 模板:

  

  我覺得release note 一定得簡(jiǎn)單,這樣用戶才能真正閱讀。

  錯(cuò)誤修復(fù),微調(diào),較小的功能通常不會(huì)提及,我不喜歡類似“我們已經(jīng)修復(fù)了一些錯(cuò)誤并進(jìn)行了一些性能改進(jìn)”這樣的廢話。

  不斷地更新讓用戶覺得他們的訂閱是值得的,也會(huì)告訴App Store算法,這個(gè)應(yīng)用沒有被放棄。

  最后,正是這種緩慢而穩(wěn)定的節(jié)奏讓我能在未來(lái)幾年繼續(xù)做這件事情。

   后記

  這篇文章翻譯來(lái)自https://papereditor.app/dev,作者是Mihhail Lapushkin,一個(gè)愛沙尼亞的程序員。

  

  原文中有更多章節(jié),我做了刪減,翻譯也不是直譯,而是在保留原意的情況下,轉(zhuǎn)換成了更輕松的風(fēng)格。

  這篇文章讓我最為感慨的是這么幾點(diǎn):

  1.跨界開發(fā)

  一個(gè)Web開發(fā),毅然進(jìn)入桌面領(lǐng)域,學(xué)習(xí)全新的知識(shí),并且獲得成功。

  所以,喜歡什么東西,就動(dòng)手搞起來(lái)吧,別把現(xiàn)有的技術(shù)棧自己給圈住了。

  現(xiàn)在AIGC很厲害,完全可以利用起來(lái)。

  2. 目標(biāo)明確,追求極致。

  他追求的就是最佳的用戶體驗(yàn),為了縮小軟件大小,直接用最“原始”的Objective-C。

  為了完全掌控,竟然不依賴第三方類庫(kù),完全從頭打造。

  在我的記憶中,可能只有SQLite的作者也是這么干了。

  3. 不但會(huì)編程,還得有藝術(shù)品位。

  這個(gè)Paper編輯器界面做得賞心悅目,就連這篇文章的網(wǎng)站也做得讓人看起來(lái)非常舒心。

  可見Mihhail Lapushkin不但是個(gè)程序員,還是個(gè)優(yōu)秀的用戶體驗(yàn)設(shè)計(jì)師,很有藝術(shù)品位。

  這一點(diǎn)我很羨慕,我一直在弄后端,就是因?yàn)楦悴缓媒缑嫦嚓P(guān)的東西。

  程序員眾多,把不同領(lǐng)域的知識(shí)結(jié)合起來(lái),才能脫穎而出啊。

  4.長(zhǎng)時(shí)間打磨,真有時(shí)間

  2015年開始做,2017年作出第一個(gè)版本,在Mac上發(fā)布,2019年發(fā)布iOS版本。

  然后就是持續(xù)的打磨,到今年已經(jīng)11年了。

  除了真正喜歡之外,很難找到別的原因了。

  Mihhail Lapushkin說(shuō)“我擁有世界上所有的時(shí)間”,嗯,這些國(guó)外程序員確實(shí)太幸福了。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
億萬(wàn)國(guó)人破防!90歲院士平靜宣布,中國(guó)導(dǎo)彈從此沒有任何死角

億萬(wàn)國(guó)人破防!90歲院士平靜宣布,中國(guó)導(dǎo)彈從此沒有任何死角

策略述
2026-03-03 18:16:39
發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象:兄弟姐妹中最大方的那個(gè),往往日子過得更好,孩子也更優(yōu)秀

發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象:兄弟姐妹中最大方的那個(gè),往往日子過得更好,孩子也更優(yōu)秀

十點(diǎn)讀書
2026-03-04 12:19:08
臺(tái)積電創(chuàng)辦人張忠謀:如果想扼殺中國(guó)大陸,中國(guó)大陸真的無(wú)能為力

臺(tái)積電創(chuàng)辦人張忠謀:如果想扼殺中國(guó)大陸,中國(guó)大陸真的無(wú)能為力

混沌錄
2026-02-27 21:29:05
威廉王子高調(diào)表達(dá)愛意,親自發(fā)布凱特新照,全家祝她生日快樂!

威廉王子高調(diào)表達(dá)愛意,親自發(fā)布凱特新照,全家祝她生日快樂!

趣味萌寵的日常
2026-03-04 20:25:11
丁俊暉的母親陳習(xí)娟:辛苦撫養(yǎng)兒子成才,最終還沒享福就去世了

丁俊暉的母親陳習(xí)娟:辛苦撫養(yǎng)兒子成才,最終還沒享福就去世了

老吳教育課堂
2026-03-02 12:53:19
小S復(fù)出首秀翻車!撿漏大S代言,臺(tái)詞內(nèi)涵馬筱梅惹眾怒,吃相太難看

小S復(fù)出首秀翻車!撿漏大S代言,臺(tái)詞內(nèi)涵馬筱梅惹眾怒,吃相太難看

八卦王者
2026-03-03 21:50:42
毛利率超70%,直追愛馬仕!剛剛,這家昆山公司上市了

毛利率超70%,直追愛馬仕!剛剛,這家昆山公司上市了

創(chuàng)客公社-江蘇第一創(chuàng)投媒體
2026-03-04 10:39:42
33中5!格林成太陽(yáng)累贅,排隊(duì)給火箭道歉,斯通下了一盤大棋

33中5!格林成太陽(yáng)累贅,排隊(duì)給火箭道歉,斯通下了一盤大棋

巴叔GO聊體育
2026-03-04 12:35:42
俄羅斯在烏克蘭遭遇2023年11月以來(lái)最慘單月

俄羅斯在烏克蘭遭遇2023年11月以來(lái)最慘單月

刀刀觀察
2026-03-04 00:12:07
30多歲大叔揭示撩撥年輕姑娘的秘密,網(wǎng)友驚呼:真是老狐貍!

30多歲大叔揭示撩撥年輕姑娘的秘密,網(wǎng)友驚呼:真是老狐貍!

特約前排觀眾
2026-02-18 00:15:03
【2026.3.4】爆姐的飯后爆料:生命不止,爆料不息!

【2026.3.4】爆姐的飯后爆料:生命不止,爆料不息!

娛樂真爆姐
2026-03-04 23:26:31
《生化危機(jī)9:安魂曲》DLC爆料!已進(jìn)入后期開發(fā)

《生化危機(jī)9:安魂曲》DLC爆料!已進(jìn)入后期開發(fā)

3DM游戲
2026-03-04 09:18:05
科威特飛行員真牛!4名陣亡美軍身份曝光,特朗普不滿英國(guó)西班牙

科威特飛行員真牛!4名陣亡美軍身份曝光,特朗普不滿英國(guó)西班牙

鷹眼Defence
2026-03-04 18:38:18
機(jī)關(guān)事業(yè)單位退休:40號(hào)文件明確待遇,工齡核算別出錯(cuò)

機(jī)關(guān)事業(yè)單位退休:40號(hào)文件明確待遇,工齡核算別出錯(cuò)

水泥土的搞笑
2026-03-05 00:51:47
伊朗伊斯蘭革命衛(wèi)隊(duì):向美軍航母發(fā)射了4枚巡航導(dǎo)彈,襲擊發(fā)生后,這艘航母逃往印度洋東南部

伊朗伊斯蘭革命衛(wèi)隊(duì):向美軍航母發(fā)射了4枚巡航導(dǎo)彈,襲擊發(fā)生后,這艘航母逃往印度洋東南部

極目新聞
2026-03-04 08:20:18
復(fù)制粘貼,青島一家三口街頭散步“齊頭并進(jìn)”,爸爸兒子女兒身高統(tǒng)一1米82;網(wǎng)友:建議每個(gè)人分我5厘米

復(fù)制粘貼,青島一家三口街頭散步“齊頭并進(jìn)”,爸爸兒子女兒身高統(tǒng)一1米82;網(wǎng)友:建議每個(gè)人分我5厘米

臺(tái)州交通廣播
2026-03-04 20:20:50
這跟不穿有啥區(qū)別??jī)?nèi)褲外露、劉雯半個(gè)腚都光著,新時(shí)尚真看不懂

這跟不穿有啥區(qū)別??jī)?nèi)褲外露、劉雯半個(gè)腚都光著,新時(shí)尚真看不懂

嫹筆牂牂
2026-03-03 07:06:44
李小璐寫真生圖高清

李小璐寫真生圖高清

翩翩明星
2025-11-14 09:39:36
賈平凹影響《少婦百潔》?辣眼睛

賈平凹影響《少婦百潔》?辣眼睛

不正確
2026-03-02 14:39:52
無(wú)語(yǔ)!平頂山母女遺產(chǎn)案爆出操作猛如虎,舅舅舅媽吃絕戶!

無(wú)語(yǔ)!平頂山母女遺產(chǎn)案爆出操作猛如虎,舅舅舅媽吃絕戶!

社會(huì)日日鮮
2026-03-04 06:58:18
2026-03-05 02:20:49
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
231文章數(shù) 631關(guān)注度
往期回顧 全部

科技要聞

多位核心離職,阿里親手廢掉最強(qiáng)AI天團(tuán)?

頭條要聞

外媒稱伊朗封鎖霍爾木茲海峽只讓中俄船通行 中方回應(yīng)

頭條要聞

外媒稱伊朗封鎖霍爾木茲海峽只讓中俄船通行 中方回應(yīng)

體育要聞

2026年中超,為什么值得你多看一眼?

娛樂要聞

謝謝謝娜 貢獻(xiàn)出26年內(nèi)娛的第一個(gè)笑話

財(cái)經(jīng)要聞

人大代表建議:將農(nóng)民養(yǎng)老金提到500元

汽車要聞

鴻蒙智行首款獵裝車 尚界Z7/Z7T首發(fā)

態(tài)度原創(chuàng)

旅游
游戲
房產(chǎn)
親子
家居

旅游要聞

日照莒縣:浮來(lái)山廟會(huì)引來(lái)八方游客

《LOL》凌晨停機(jī)維護(hù)!一次性更新兩個(gè)版本內(nèi)容

房產(chǎn)要聞

400組,30套!聚億·椰海錦程為何能在春節(jié)火出圈?

親子要聞

罕見七胞胎超市排隊(duì)看海鮮

家居要聞

極簡(jiǎn)無(wú)界 靜居自安然

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版