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

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

0
分享至

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

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

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

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

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

  XCode,AppKit,Objective-C,所有這一切對我來說都是全新的。

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

   重要的決定

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

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

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

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

  這樣才能與其他非常精美的編輯器競爭。

  我不想縮短開發(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),差異不會那么大)

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

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

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

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

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

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

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

   我的愿景

  非常簡單,超越IA Writer,更加精簡,更加優(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è)非常簡潔的評論,我至今依然將其作為宣傳語:

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

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

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

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

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

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

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

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

  

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

  如果你不努力的投入精力去重構(gòu)應(yīng)用,fix bug,很快,你的軟件就會因?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í)存在

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

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

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

   付費(fèi)功能

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

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

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

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

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

  

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

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

   粗糙的部分

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

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

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

  

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

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

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

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

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

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

  

   用戶反饋

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

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

  沒辦法,我只好自己做:

  

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

  

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

   軟件發(fā)布

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

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

  這是我的release note 模板:

  

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

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

  不斷地更新讓用戶覺得他們的訂閱是值得的,也會告訴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í)全新的知識,并且獲得成功。

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

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

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

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

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

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

  3. 不但會編程,還得有藝術(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)域的知識結(jié)合起來,才能脫穎而出啊。

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

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

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(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)推薦
武漢市武昌區(qū)政府副區(qū)長,區(qū)公安分局局長徐舫擬提名為市州副市州長人選

武漢市武昌區(qū)政府副區(qū)長,區(qū)公安分局局長徐舫擬提名為市州副市州長人選

觀星賞月
2026-04-20 18:26:12
男孩cos弗利薩,媽媽用乳膠漆化妝,洗不掉成“永久皮膚”

男孩cos弗利薩,媽媽用乳膠漆化妝,洗不掉成“永久皮膚”

國創(chuàng)漫話
2026-04-19 15:57:41
對付男人最高明的本事,不是管住他,而是.....

對付男人最高明的本事,不是管住他,而是.....

十點(diǎn)讀書
2026-04-19 18:38:02
京東股權(quán)曝光:劉強(qiáng)東控制12.7%股權(quán)有73%投票權(quán) 獲1億美元股息

京東股權(quán)曝光:劉強(qiáng)東控制12.7%股權(quán)有73%投票權(quán) 獲1億美元股息

雷遞
2026-04-20 10:11:22
福原愛官宣三胎僅3天,男方被扒底朝天,前夫江宏杰的做法太體面

福原愛官宣三胎僅3天,男方被扒底朝天,前夫江宏杰的做法太體面

阿纂看事
2026-04-20 14:51:18
特朗普:由于安全原因,萬斯將不再參加談判;伊朗:已做好外交與軍事對抗兩手準(zhǔn)備

特朗普:由于安全原因,萬斯將不再參加談判;伊朗:已做好外交與軍事對抗兩手準(zhǔn)備

藍(lán)色海邊
2026-04-20 18:19:49
重磅!34歲國乒世界冠軍換籍復(fù)出 代表哈薩克斯坦參賽 效仿朱雨玲

重磅!34歲國乒世界冠軍換籍復(fù)出 代表哈薩克斯坦參賽 效仿朱雨玲

念洲
2026-04-20 11:51:43
很多微信群都變成了死群,因?yàn)槿撕茈y對沒有利益的事保持長久熱情

很多微信群都變成了死群,因?yàn)槿撕茈y對沒有利益的事保持長久熱情

大張的自留地
2026-04-20 13:10:12
東風(fēng) - 31 泄密大案:總工程師被美色策反,國之重器險(xiǎn)遭滅頂之災(zāi)

東風(fēng) - 31 泄密大案:總工程師被美色策反,國之重器險(xiǎn)遭滅頂之災(zāi)

干史人
2026-04-18 13:44:12
今天才知道:冰箱冷凍室不能放這4樣,放了冰箱容易炸,真可怕

今天才知道:冰箱冷凍室不能放這4樣,放了冰箱容易炸,真可怕

Home范
2026-04-20 11:07:38
首輪8場G1打完!你該明白:總冠軍級球隊(duì)僅這5支!

首輪8場G1打完!你該明白:總冠軍級球隊(duì)僅這5支!

運(yùn)籌帷幄的籃球
2026-04-20 14:08:09
“把列車當(dāng)自家客廳!”網(wǎng)友稱買商務(wù)座遇幾人打牌喧鬧,12306回應(yīng)

“把列車當(dāng)自家客廳!”網(wǎng)友稱買商務(wù)座遇幾人打牌喧鬧,12306回應(yīng)

瀟湘晨報(bào)
2026-04-20 17:22:03
全場嘩然!29歲女子在相親舞臺稱“娶我一定讓你爽”,王婆也懵了

全場嘩然!29歲女子在相親舞臺稱“娶我一定讓你爽”,王婆也懵了

火山詩話
2026-04-19 06:42:57
河南一男子因病偏癱,覺得虧欠妻子主動(dòng)離婚,女兒擺酒席慶祝:他們開心就好,離婚不離家,母親繼續(xù)照顧父親,房車等全部財(cái)產(chǎn)都在母親名下

河南一男子因病偏癱,覺得虧欠妻子主動(dòng)離婚,女兒擺酒席慶祝:他們開心就好,離婚不離家,母親繼續(xù)照顧父親,房車等全部財(cái)產(chǎn)都在母親名下

洪觀新聞
2026-04-20 16:20:08
巴鐵1.3萬中械師進(jìn)沙特,阿聯(lián)酋提1500億進(jìn)京,中東變天了

巴鐵1.3萬中械師進(jìn)沙特,阿聯(lián)酋提1500億進(jìn)京,中東變天了

戰(zhàn)爭史
2026-04-20 11:04:19
女神志玲姐姐已逐漸蔡明化

女神志玲姐姐已逐漸蔡明化

微微熱評
2026-04-09 11:59:36
山東泰安一男子在減肥訓(xùn)練營內(nèi)身亡 當(dāng)?shù)鼐揭呀槿胝{(diào)查 訓(xùn)練營:其剛?cè)霠I還未開始訓(xùn)練

山東泰安一男子在減肥訓(xùn)練營內(nèi)身亡 當(dāng)?shù)鼐揭呀槿胝{(diào)查 訓(xùn)練營:其剛?cè)霠I還未開始訓(xùn)練

紅星新聞
2026-04-20 16:24:29
那番絕境,大帝終究還要面對

那番絕境,大帝終究還要面對

虛聲
2026-04-20 08:08:29
“浩浩媽”新作被捆綁!表情嬌羞 身材太難頂

“浩浩媽”新作被捆綁!表情嬌羞 身材太難頂

游民星空
2026-04-19 11:03:24
國際奧委會明確表態(tài),對2036年奧運(yùn)會的申辦情況很是失望

國際奧委會明確表態(tài),對2036年奧運(yùn)會的申辦情況很是失望

安安說
2026-04-20 11:09:20
2026-04-20 20:31:00
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
252文章數(shù) 645關(guān)注度
往期回顧 全部

科技要聞

華為Pura90逆周期定價(jià),4699元起,未漲價(jià)

頭條要聞

小學(xué)生遭多名中小學(xué)生施暴搜家 家長以"入室搶劫"報(bào)案

頭條要聞

小學(xué)生遭多名中小學(xué)生施暴搜家 家長以"入室搶劫"報(bào)案

體育要聞

阿森納已拼盡全力,但你早干嘛去了...

娛樂要聞

鹿晗生日上熱搜,被關(guān)曉彤撕下體面

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

利潤暴跌7成,字節(jié)到底在做什么

汽車要聞

把天門山搬進(jìn)廠?開仰望U8沖上45度坡的那刻 我腿軟了

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

藝術(shù)
教育
旅游
數(shù)碼
軍事航空

藝術(shù)要聞

王羲之《換鵝帖》尚在人間,驚艷無比!

教育要聞

同一個(gè)詞,AI怎么知道它是什么意思?

旅游要聞

棗莊薛城錦陽河畔春光正好 成市民休閑打卡好去處

數(shù)碼要聞

華為新內(nèi)存技術(shù)來了,Mate X7用戶6月有福

軍事要聞

特朗普:美艦向伊朗貨船開火炸出個(gè)洞

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