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

網(wǎng)易首頁 > 網(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ì)我來說都是全新的。

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

   重要的決定

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

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

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

  這個(gè)體驗(yàn)就是:軟件很小,下載速度超快,使用起來是原生的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í)和語言過時(shí)的代價(jià),以便得到更精簡(jiǎn)的軟件包。

  第三,我不想依賴第三方。

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

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

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

  比如Markdown的解析引擎,因?yàn)镻aper不像那些傳統(tǒng)的編輯器,并不支持全部的Markdown語言,所以在解析引擎中我只需要寫我需要的代碼,并且我可以做大量?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)論,我至今依然將其作為宣傳語:

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

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

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

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

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

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

請(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)。

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

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

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

  

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

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

   粗糙的部分

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

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

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

  

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

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

  然而,非字母語言需要特定的字體來顯示其字形。

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

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

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

  

   用戶反饋

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

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

  沒辦法,我只好自己做:

  

  后來我還發(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é)奏讓我能在未來幾年繼續(xù)做這件事情。

   后記

  這篇文章翻譯來自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)手搞起來吧,別把現(xiàn)有的技術(shù)棧自己給圈住了。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Mihhail Lapushkin說“我擁有世界上所有的時(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)推薦
以色列工頭用希伯來語提醒中國(guó)工友注意安全:防空警報(bào)一響,放下工作,跑!

以色列工頭用希伯來語提醒中國(guó)工友注意安全:防空警報(bào)一響,放下工作,跑!

都市快報(bào)橙柿互動(dòng)
2026-03-02 21:42:57
「?jìng)b客島」鄭永年:哪是基于規(guī)則 就是叢林法則

「?jìng)b客島」鄭永年:哪是基于規(guī)則 就是叢林法則

海外網(wǎng)
2026-03-02 21:03:02
阿里的復(fù)仇:一場(chǎng)遲到了十年的清算

阿里的復(fù)仇:一場(chǎng)遲到了十年的清算

快消經(jīng)緯
2026-02-28 18:58:05
52中21!布朗尼真有本事!NBA最勵(lì)志的球二代

52中21!布朗尼真有本事!NBA最勵(lì)志的球二代

籃球?qū)崙?zhàn)寶典
2026-03-02 21:40:48
0-1!身價(jià)13.6億vs0.8億 天外飛仙世界波 超級(jí)豪門德比戰(zhàn)慘遭爆冷

0-1!身價(jià)13.6億vs0.8億 天外飛仙世界波 超級(jí)豪門德比戰(zhàn)慘遭爆冷

狍子歪解體壇
2026-03-03 06:03:57
東北男人“新戰(zhàn)袍”:4000元的迪桑特,成了體制內(nèi)的隱形工牌

東北男人“新戰(zhàn)袍”:4000元的迪桑特,成了體制內(nèi)的隱形工牌

夢(mèng)在深巷aqa
2026-02-25 00:15:06
伊朗稱反擊行動(dòng)“已造成560名美軍傷亡”;美國(guó)中央司令部發(fā)布“事實(shí)核查”聲明,否認(rèn)伊朗方面關(guān)于美軍在中東地區(qū)遭受重大傷亡的說法

伊朗稱反擊行動(dòng)“已造成560名美軍傷亡”;美國(guó)中央司令部發(fā)布“事實(shí)核查”聲明,否認(rèn)伊朗方面關(guān)于美軍在中東地區(qū)遭受重大傷亡的說法

瀟湘晨報(bào)
2026-03-02 09:33:53
出大事了,美伊重大轉(zhuǎn)折點(diǎn)被扒,6名美官員被殺,伊朗硬剛特朗普

出大事了,美伊重大轉(zhuǎn)折點(diǎn)被扒,6名美官員被殺,伊朗硬剛特朗普

杜鱂手工制作
2026-03-03 05:18:06
伊朗貨幣大幅貶值:去年12月1美元可兌換約4.2萬里亞爾,最新比例為1:131.4萬

伊朗貨幣大幅貶值:去年12月1美元可兌換約4.2萬里亞爾,最新比例為1:131.4萬

每日經(jīng)濟(jì)新聞
2026-03-02 21:57:09
“最慘超女”黃雅莉:沒工作沒積蓄,34歲生子后住5平米的小屋

“最慘超女”黃雅莉:沒工作沒積蓄,34歲生子后住5平米的小屋

地理三體說
2026-01-29 21:40:34
湖人球迷感謝范德比爾特在打勇士時(shí),化解東契奇和主帥的緊張氣氛

湖人球迷感謝范德比爾特在打勇士時(shí),化解東契奇和主帥的緊張氣氛

好火子
2026-03-02 23:04:57
山東姑娘獲 127 票高票當(dāng)選聯(lián)合國(guó)法官,這才是真正的中國(guó)驕傲!

山東姑娘獲 127 票高票當(dāng)選聯(lián)合國(guó)法官,這才是真正的中國(guó)驕傲!

眼界看視野
2026-03-02 19:22:50
隨著皇馬爆大冷門0-1+慘遭西甲2連敗,西甲最新積分榜出爐

隨著皇馬爆大冷門0-1+慘遭西甲2連敗,西甲最新積分榜出爐

側(cè)身凌空斬
2026-03-03 06:20:27
朱婷加比相撞,緊急送醫(yī)治療,檢查結(jié)果出爐

朱婷加比相撞,緊急送醫(yī)治療,檢查結(jié)果出爐

跑者排球視角
2026-03-02 23:29:37
足協(xié)確認(rèn)將公布第3批禁足名單 2條大魚或上榜 已有136人+13隊(duì)被罰

足協(xié)確認(rèn)將公布第3批禁足名單 2條大魚或上榜 已有136人+13隊(duì)被罰

我愛英超
2026-03-02 12:43:26
確認(rèn)了!是知名演員張嘉益

確認(rèn)了!是知名演員張嘉益

看盡落塵花q
2026-01-04 11:55:44
46歲高圓圓真空透視裝若隱若現(xiàn),真是太性感了吧!

46歲高圓圓真空透視裝若隱若現(xiàn),真是太性感了吧!

冒泡泡的魚兒
2026-03-02 16:17:57
春節(jié)自駕5000公里,我發(fā)現(xiàn)了純電出行的7個(gè)BUG

春節(jié)自駕5000公里,我發(fā)現(xiàn)了純電出行的7個(gè)BUG

新能源前瞻
2026-03-02 19:50:49
GPS失效影響全球?qū)?,兩?guó)已突破美國(guó)GPS限制

GPS失效影響全球?qū)?,兩?guó)已突破美國(guó)GPS限制

命運(yùn)自認(rèn)幽默
2026-03-03 05:19:54
富時(shí)中國(guó)A50指數(shù)期貨跌幅擴(kuò)大,現(xiàn)跌1.0%

富時(shí)中國(guó)A50指數(shù)期貨跌幅擴(kuò)大,現(xiàn)跌1.0%

每日經(jīng)濟(jì)新聞
2026-03-02 10:41:04
2026-03-03 06:56:51
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
230文章數(shù) 629關(guān)注度
往期回顧 全部

科技要聞

蘋果中國(guó)官網(wǎng)上線iPhone 17e,4499元起

頭條要聞

媒體:拉里賈尼走向前臺(tái) 四大關(guān)鍵變量將決定伊朗命運(yùn)

頭條要聞

媒體:拉里賈尼走向前臺(tái) 四大關(guān)鍵變量將決定伊朗命運(yùn)

體育要聞

“想要我簽名嗎” 梅西逆轉(zhuǎn)后嘲諷對(duì)手主帥

娛樂要聞

李亞鵬與哥哥和解 只有一條真心話短信

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

油價(jià)飆升 美伊沖突將如何攪動(dòng)全球經(jīng)濟(jì)

汽車要聞

國(guó)民SUV再添一員 瑞虎7L靜態(tài)體驗(yàn)

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

藝術(shù)
手機(jī)
數(shù)碼
公開課
軍事航空

藝術(shù)要聞

這四位老人的花鳥畫,竟讓人欲罷不能!

手機(jī)要聞

小米17 Ultra徠卡版全新黑銀配色預(yù)售:7999元起,10日發(fā)售

數(shù)碼要聞

蘋果新款iPad Air發(fā)布:4799元起 搭載M4芯片

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

美國(guó)中央司令部透露對(duì)伊朗動(dòng)武全部武器裝備清單

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