關於《Swift開發指南》背後的那些事

2021-08-27 19:15:15 字數 4019 閱讀 9433

時間軸(倒敘)

ios教父前傳

我是乙個編了20年程式的碼農,做了10年it培訓的教書匠,寫了15本書的筆農。

2023年的時候我有幸相識了大富翁遊戲之父,台灣的柯博文老師。從那時開始,我真正的接觸到了ios。我用蘋果虛擬機器,用了乙個星期的時間,編寫了第乙個iphone helloworld程式。蘋果的事件處理機制和objective-c古怪的語法有別於其它我接觸的語言。那時候可參考的中文資料很少,源於老師的職業習慣,我決定要寫乙個系列的ios叢書,我規劃了6本書,《ios網路程式設計與雲端應用最佳實踐》、《ios感測器應用開發最佳實踐》、《ios多**技術開發最佳實踐》、《iphone與 ipad開發實戰——ios 經典應用剖析》、《ios開發指南》、《objective-c開發指南》經過四年的筆耕不輟,前五本都一一出版發行,並獲得了大量讀者和忠實的學習者。最後一本順應蘋果公司的程式語言的變革,改為即將上市的《swift開發指南》。

20天時間寫出全球第一本swift書,我是如何做到的?

夢中夢正編著一款新型遊戲的程式,突然電腦中病毒般一頓亂跳,滑鼠竟然變成了乙隻活生生的大老鼠,嘴裡叼著一根雪茄,尖著嗓門奸笑著對我說,「蘋果都出新語言了,你還在等什麼?」。突然驚醒,原來是在做夢。走到書架前,一本書翩翩起舞,輕輕的落在我腳下,撿起來一看,「swift語言」。「關老師!關老師!快醒醒,馬上到直播課時間了!」我被一陣喊叫聲和敲桌子聲音吵醒了,原來剛才一直在做夢,「恩,我再眯一分鐘,看看裡面是什麼」邊說著我換了乙隻胳膊繼續趴著睡。「看什麼啊?就一分鐘哦,莫名其妙。」小賈提醒我道。難道是老天冥冥中在提示我什麼嗎?

滑鼠手、鍵盤手、肩周炎(配圖)

6月9日凌晨4點11分,被樓下的汽車發動聲驚醒,我從辦公室的沙發上爬起來,洗了把臉,意識越來越清醒。是時候出下一本書了,開啟蘋果官網,第一眼看到《the swift programming language》文件,我如飢似渴的開始研究,用了整整12個小時的時間,到當天下午4點,我已經對這門語言心領神會了。讀完文件的第一想法就是我要用我這20年的程式設計經驗和10年的培訓經驗和專案經驗,第一時間寫一本關於swift語言開發的教程。

接下來,制定計畫,每天住在辦公室,砍去一切與寫這本書無關的事情,比如和朋友約飯、講課(理想大於金錢的時刻)、回家陪家人(在此也想非常感謝老婆和孩子在這一段時間的默默支援!),甚至睡覺休息時間,總之一切都在為了這乙個目標讓步。正如一本書裡所寫的:「當你真心想要一樣東西的時候,你身上散發出來的就是那種能量的振動頻率,然後全宇宙就會聯合起來幫助你達到你想要的東西。」

在暢銷書《ios開發指南》完成之後,我就得了乙個毛病——肩周炎。肩周炎不是乙個什麼大毛病,可是它會把從書架高處取書這麼簡單的乙個動作,或者是拿筆在白板上寫點板書成為挑戰自我的乙個動作。疼,隱隱作痛。去醫院看,醫生說:「你這毛病這輩子就這樣了,只能維持,盡量別再保持乙個姿勢,電腦盡量少用。」「不可能的」我心裡想到。我這幾年要不是沒日沒夜的坐在電腦前碼字,寫案例,做方案,怎麼會有今天的這些作品。這本《swift開發指南》更是飽含了汗水和淚水。

我這些年的心血之作!

團隊成員調侃我是「滑鼠手關sir,技藝堪比剪刀手愛德華」。因為網路時代的寫書、敲**與紙質時代不同,滑鼠和鍵盤是必備神器,所以團隊小賈非常貼心的給我買了好幾個款型的滑鼠,一天20小時的輪番上陣,陪我揮灑前程。但就是這樣,在swift這場戰役中還是烙下了新病根,腱鞘炎。但一想到我的新書馬上就能出版,可以幫助那麼多挨踢人士以及攻城獅們,第一時間系統學習和掌握這門語言,我就興奮不已。《swift開發指南》每章都配有專案案例和測試習題,最後還用swift語言開發了乙個計算器專案。在此,也非常感謝合著者趙志榮女士,感謝她對專案習題的精心編寫和文稿的不倦審查。

我的小夥伴!

落下點小毛病還是小事,最讓人糾結難耐的還是,蘋果swift語言出來後,兩天一小改,三天一大動的情形,問題是我的書已經完成了一大半,但是看到官方形勢的急劇變化,我二話不說,立馬進行整章、整節的調整,在經過連續20天時間,每天持續奮戰18-19個小時之後,最後終於完成了swift語言的beta 4版本撰寫。在這20天時間裡我的體重爆減了15斤,這也算是對自己的另一種完美交差了。

「青蛙公主」

我的team短小精悍,被業界高煥堂戲稱是「青蛙公主」組合。程式猿們以男性居多,又多是注重本質和物理層,對應用層以及使用者體驗方面不是摸不著頭腦 就是興趣不大。趙大羽老師是移動平台ui、ue專家,專注於移動設計領域。是目前國內能講使用者體驗課程的僅有幾個金牌講師之一。趙老師講課深入淺出、每每講到難點和有深度的課題時總會抖幾個包袱出來,立即將極其抽象的事物完完全全的剖析出來,讓學員自己思考、琢磨,然後頓悟,那些四萬多移動使用者體驗設計和移動端敏捷設計的「羽絲」們深有體會。正是他用這樣的方式和深度感化著乙個個程式猿和設計獅們,讓他們從程式的世界裡抬起頭來,為使用者的感受和體驗思考。

「青蛙公主」在圖書簽署會上

我的圖靈大編輯

swift一書交稿之後,我們的乙個小請求就是在書的封面上加上「國內第一本swift開發教程」一行字。編輯小張給我們的答覆是,可能無法滿足我們的這一要求。這個訊息對我們來說非常有挫敗感,畢竟這是我們在如此短的時間內,相當於常人三倍的時間和精力投入編寫的一本教程,同時也有爭當第一之想法。於是我就給她講了這段時間我們是怎麼努力堅持過來的,以及我們的心路歷程和汗水付出,希望出版社可以給我們乙個說法。經過調查,最終他們也查明事實,我們確實是國內第一本swift開發教程,最終還是決定給我們正名。在這我也想分享給各位的一句話是:「不要怕被拒絕,也不要怕被誤會,是『金子總會發光』,但也要努力爭取成為『金子』,天道總會酬勤。」

封面的故事

我的圖書封面以及文中配圖都是「公主」精雕細琢的傑作。「公主」對封面的使用者體驗要求近乎苛刻。因我們ios、swift都是蘋果開發相關的系列書籍,所以都是以「蘋果」為原型的創新圖案。在用swift語言做計算機專案時,在使用者體驗設計的理念基礎上,由「公主」手繪計算器草圖,並以我的程式思路,逐步深入到程式、功能、應用等層面。

書中的一張手繪草圖

swift速成,你如何做到?

為什麼學?

怎麼學?

學到什麼程度?

學習的程度和你努力堅持的程度成正比。挨踢們最能懂我這句話的意思,因為程式和技術很多時候是有標準答案的,你的功夫不到家,核心要素沒有掌握,就別怪bug,bug的老來找你,程式跑不通,還總是找不到問題所在,有時候想找到問題,似乎比重新開發一遍還難。用一句話概括,就是「你的思想有多深邃,你的程式就能跑多久」。

學習規劃圖

swift修訂,速度中!

《swift開發指南》是在蘋果公司宣布swift語言之後立即投入編寫的,全書編寫貫穿xcode6 beta1版到beta4版的更新,最終成書是以beta4版落地。因beta版本到最終版本之前還有一些變化,所以在final版本出來之前,我們會在案例和習題中為大家及時更新,待swift語言的final版出來之後,我們也會及時對本書進行修訂,並更新到社群、**中,並一直保持同步更新和完善。

京東:噹噹:

互動出版社:

蘋果swift程式語言開發指南(上):

蘋果swift程式語言開發指南(下):

swift專案開發實戰-基於分層架構的多版本iphone計算器:

本書**:

Facebook的libra幣開發指南

近期facebook擬發行的libra幣,可以說是加密貨幣界和傳統金融行業的一件大事,很多人都認為這次數字貨幣真的可能改變世界。作為程式設計師而言,怎樣搭上這班車,相信是大家都非常關心的。我覺得我們可以從開發libra幣的智慧型合約入手,將現實世界中的支付場景,尤其是跨境支付場景,在libra幣的環...

以太坊儲存Swarm的開發指南

它有兩個主要的特性使swarm有別於其他分散的分布式儲存解決方案 儘管bittorrent和zeronet等現有服務允許使用者註冊和共享它們在伺服器上的內容,但swarm提供了一種分布式雲儲存服務託管。群體上上傳的內容可以在以後檢索,所有內容都可能不需要硬碟。另乙個重要特徵是獎勵制度。激勵系統解決了...

ABI是編譯器的開發指南

在計算機中,應用二進位制介面描述了應用程式 或者其他型別 和作業系統之間或其他應用程式的低階介面.abi涵蓋了各種細節,如 資料型別的大小 布局和對齊 呼叫約定 控制著函式的引數如何傳送以及如何接受返回值 例如,是所有的引數都通過棧傳遞,還是部分引數通過暫存器傳遞 哪個暫存器用於哪個函式引數 通過棧...