王巍:關於Swift學習和Apple Watch開發的一些建議

2021-03-04 CSDN

王巍,微博ID「onevcat」,圈兒內人稱喵神,知名iOS/Unity 開發者,現居日本,就職於LINE。喵神是objc中國項目發起人,開源過廣受開發者喜愛的Xcode插件VVDocumenter,主創或參與開發《姬騎士和最後的百龍戰爭》、《英雄Slash》、《冒險謎題王國》以及《小熊推金幣》等多款遊戲,個人應用代表有《番茄工作法》(Pomodoro Do)和《雲端記帳》(Our Money)。

提問:很多新手開發者會糾結於先學習Objective-C還是Swift,不過大家比較傾向於兩者都學,那麼在同時學習兩者的過程中,哪些內容需要重點關注呢?

王巍:其實不論是Objective-C還是Swift,現在的目的都是寫iOS和OS X的App,那麼其實對於絕大多是情況來說,語言本身並不是非常重要,使用語言去和Cocoa以及Cocoa Touch交互才是我們日常開發中最常用到的技能。Cocoa的編程思想並沒有隨著語言的變化發生什麼大改變,所以還是應該把對於框架的學習放在首位。當然在Swift中有些細節和做法會與Objective-C有所不同,對於開發者來說選擇其實變得更多了(舉個例子,Objective-C中總會使用NSError指針來獲取錯誤信息,而Swift中我們還可以有Tuple這樣的選項)。

現在可能在工作中使用Objective-C的開發者還是佔大多數,我的建議是在使用Objective-C的時候,也順便可以「想像」一下如何用Swift更好地實現同樣的事情。如果不是特別趕進度的話,甚至可以再用Swift真實地實現一遍。因為兩種語言最大的區別就是Swift擁有更強的類型檢查和安全性,所以如果能夠特別關注這點的話,之後快速切換到新的語言去就不會有什麼問題。

提問:對於學習Swift的開發者,入門以後應該如何進一步提高?

王巍:可以儘快開始動手實踐開發一些App。給自己定一個目標,比如花上幾天時間或者一周的時間用Swift做一個能上架的簡單App之類的。這個App不需要有特別複雜的功能,可能就是一個簡單的天氣查詢提醒,或者是展示附近好吃又便宜的餐飲店面。與簡單地寫個Demo相比,實際做一個真正的App對能力的提升所在的層次是完全不同的,後者需要更多的全局考慮和綜合能力。不少問題只有在實踐中才會遇到,才會被解決,而對應的能力也才能被提升。所以入門之後進一步提升的最好的路子就是實踐,然後在實踐中再去學習沒有掌握的剩下的東西。

另外要注意的是,因為現在Swift還很新,很多東西並沒有現成的方案或者所謂的最佳實踐。在遇到這樣的情況時,最好詢問下你身邊的資深iOS或者Objective-C的開發者。因為Swift和Objective-C其實是共通的,很多經驗是可以參照借鑑的。

提問:TIOBE曾預計Objective-C可能會失去其在移動開發方面的主導地位,而Swift將會給該領域帶來新的發展。您是怎麼看待iOS語言的趨勢呢?有沒有可能說將來只學習Swift呢?如果有,那麼您預計大概需要多久?

王巍:Swift作為去年才出現的新星,已經取得了很好的成績,而現在開發社區對於Swift的態度和預期也都十分積極友好的。可以預想到在可見的未來,Swift的使用和普及必定將更近一步。Swift相對於 Objective-C的優勢十分明顯,在進一步成熟後(最主要是的將運行時集成到系統中以及標準庫的完善),在iOS開發上逐漸替代Objective-C的地位可以說只是時間問題。當然這確實是需要花上一定時間來完成遷移,主要是社區的第三方工具和項目的支持程度是需要積累的。將來只需要學習Swift是完全有可能的(甚至我自己認為就算現在也可以考慮只學習Swift,相對於Swift來說Objective-C顯得更簡單和容易,如果學會Swift的話,Objective-C自然也不成問題)。整個Swift社區的成熟可能需要花上兩三年時間吧。

提問:我們知道您現在在維護swifter.tips這個站點,其內容來自於您的《Swifter - 100 個Swift必備tips》電子書,能否給我們介紹一下這本書,以及其後期計劃。

王巍:這本書是在我從WWDC回來以後就籌劃打算寫的,其實主要是作為自己學習Swift時候的一些補充和記錄。因為正好趕上從上一家公司離職的節點上,有一段比較空閒的時間,所以集中地實踐很多Swift的東西。這本書是給已經入門Swift,但是卻在實際使用中遇到困難的開發者準備的一本小冊子。裡面總結了100條可能會用到的小tip,基本是對一些重要概念以及它們的不太被人注意到的特性的討論。另外也有一些自己總結的比較好的實踐的推薦。因為寫這本書的時候Swift語言還非常新,所以很多地方都是帶著探索的心理去做的,之後的話會根據Swift的發展進行一些必要的修訂。另外現在我正在把這本書翻譯成英文版,雖然可能有點妄想,但是自己內心確實是希望能讓世界知道中國也是有開發者活躍在這個舞臺上的。順便要告訴喜歡紙質版那種閱讀實感的朋友一個好消息,現在已經在和出版社合作準備出版,應該會在不久的將來就能見到實體書。

提問:Apple Watch即將發售,針對有計劃為該設備開發軟體的開發者,可以跟我們聊聊Apple Watch的開發模式、目前的局限、以後發展方向嗎?

王巍:Apple Watch現在對於第三方開發者來說更多的還是一塊額外的屏幕。WatchKit現在能提供的API也比較簡單。對於Apple沒有提供錶盤上的旋鈕以及表面觸感的API這一點,很多開發者也比較失望的。因為新的交互才能帶來全新的想法和創意,但是暫時WatchKit沒有能給出足夠的接口。不過我們也應該看到這只是WatchKit的第一個版本,之後Apple也承諾會有原生的手錶App,可能等一段時間到Apple Watch和WatchKit的完全版面世的時候局面才會很不一樣吧。

提問:目前Apple Watch上適合開發什麼樣的應用,目前Apple Watch會不會只是iPhone應用的延伸,有沒有可能出現一些革新性的應用。

王巍:利用Apple Watch隨時抬手可看的特性,一些比較注重通知提醒類的App應該會很有空間。比如朋友圈或者微博裡被@了一下,或者是待辦事項到期之類。由於屏幕大小和交互方式限制還是比較多,另外Apple本身對Watch App也有一些限制,所以可以預見在一段時間內Apple Watch只會是iPhone應用的延伸,為iPhone應用提供另一種可能的呈現方式,或者都是一些輕交互的App。但是也並不好說,Apple的開發者帶著鐐銬跳舞的能力從來都是不可小覷的。如果之後Apple能進一步開放API的話,可以肯定會爆發出無數的革命性的App,到時候我們的日常生活很可能會被再一次改變。

提問:您個人博客OneV's Den中的文章可以說篇篇都是精華,風格淡然,技術嚴謹,能跟大家分享下您在寫技術博客方面的經驗嗎?

王巍:見笑了。我寫博客也有幾年時間了,其實能有現在的積累,還是得益于堅持和定位明確。堅持的話,經常關注我的博客的朋友會發現我的更新周期還是比較穩定能在一個月至少一篇這樣。並不是很頻繁,但這也算是我給自己定的一個目標。因為如果太久不寫確實就會惰性發作很可能就荒廢了,所以保持一定的更新頻率是很有必要的。另外就是找準目標:我在博客上寫的東西一般都屬於比較淺的內容,也希望能儘量面向更多的讀者,而我自己也把我的博客定位在一個開發知識普及的層次上。這個層次的內容我比較能夠把握,同時也能有比較多的讀者能看完,對自己也算是能堅持寫下去的一種動力和理由。

在選題上基本還是實際工作和學習裡接觸到的內容,我會儘量試圖以新的角度在解讀或者梳理一下。這樣做可以鞏固自己的知識,另外我也堅信如果我能以傳播者和教授者的身份把一件事情講明白的話,才能代表我自己真的明白了這件事。所以寫博客對於我來說就是一個提高和鞏固的過程,是學習中重要的一環。

提問:您現在是在日本做開發,那麼日本的iOS開發是怎樣一種情況呢?有哪些值得借鑑的地方呢?

王巍:可以說日本的iOS開發者和國內很多開發者不同的一點是對資訊的接觸和掌握感覺要更前沿一些,也就是視野要開闊一些。不過可能是由於我接觸到的日本開發者正好都比較喜歡新鮮事物吧。這邊的話,團隊合作和規範確實很厲害,每個項目基本無論大小,都會有很正式的文檔和Wiki,另外像測試和CI這些方面也都很注意,對程式設計師來說開發起來特別舒服,基本可以專注於開發的內容。日本開發者另一個優點是做事認真,每一個特性都要反覆確認;QA那邊過來的Bug報告也十分詳盡,對於定位問題很有幫助。但是另一方面,他們的基礎可能比國內的CS出身的開發者同行們要差一些,開發效率也低不少。所以兩國開發者其實互相都有需要學習和借鑑的地方。

提問:您欣賞的國內外iOS開發者有哪些?

王巍:國外的話像Mattt Thompson和Mike Ash都是很厲害的Cocoa開發者,我也一直受益於他們的貢獻和分享才能逐漸成長。

國內低調有內涵的高手實在太多了..要寫名字的話估計版面不夠,在此就容我略過吧.. XD

提問:新年新氣象,您在2015年有什麼樣的規劃呢?

王巍:其實暫時沒有什麼特別遠大的目標。

之前定過每年學習一門新語言的目標,今年的話對Go比較感興趣,應該會花一定時間學習。另外就是繼續腳踏實地不斷進步和提高,在對現在自己的幾個項目繼續維護的同時,看看能不能走出舒適區一兩次,在專業領域裡走得更遠一些吧。

第一時間關注最新移動開發相關信息和技術,請關注mobilehub公眾微信號(ID: mobilehub)。


本文為CSDN編譯整理,點擊「閱讀原文」可查看全文並參與討論。

如果您喜歡這篇文章,請點擊右上角「…」將本文分享給你的朋友。

相關焦點

  • 使用Apple Watch
    解鎖 App 和 Mac 當你有了 Apple Watch 之後,你的 Mac 「安全性與隱私」裡面會多了一個 「使用您的 Apple Watch 解鎖 App 和 Mac」選項,勾上之後你就可以使用此功能了。當然是要此功能需要你的 Mac 一直開著藍牙。
  • Apple Watch的5個缺點
    我使用apple watch的終極目標,就是在我運動的時候可以不用帶手機,並且可以聽音樂,記錄我的運動那你可能就會想說,LTE版就最快,但是,偏偏我又不是一個很常用apple watch的人,加上LTE其實它就是加網絡每個月都要多付一筆錢,我覺得好像也沒有這個必要
  • [譯]用 LLDB 調試 Swift 代碼
    假設我們有一個叫 logger 的對象,這個對象有一些字符串和結構體類型的屬性。如果你想了解多一點的話,我建議你看 WWDC14 的這個分享會 —  「Advanced Swift Debugging in LLDB」。refcount 同樣也是一個相當直觀的命令,能獲得指定對象的引用數量。
  • Apple Watch您的iPhone 規則要求設置新的密碼
    今天接收了家人不用的 apple watch,於是我抹掉 apple watch 連接我自己的 iphone xs。遇到一個比較奇怪的問題,就是要求我必須設置密碼。這樣每次使用 watch 都要輸入密碼,想想就很煩。
  • Apple Watch 3代用戶抱怨watchOS 7系統升級後多次重啟
    新浪數字新聞9月27日早間新聞,蘋果智能手錶7系統於上周向公眾發布,它帶來了新的撥號功能、睡眠監控和功能。然而,一些外國蘋果公司的3用戶在升級新系統後出現了一些問題,比如隨機重啟。據9to5mac報導,在蘋果公司支持論壇上,有一篇專門針對apple watch Series 3所有者的帖子,提出了安裝新系統的問題。最常見的抱怨之一是applewatch 3每天重新啟動幾次。
  • Apple Watch上用App是一種怎樣的奇葩體驗......
    (姐普通話18級~看來有必要建議國家重新制定99級漢語普通話考試,以符合各種牛(S)逼(B)的語音識別system) 想換打字?擦!沒有鍵盤啊尼瑪!再回復一遍好啊好啊,出來的依然是哈哈哈哈…. 說不清楚,聽語音總可以吧?!老公發來一條語音點擊聽取結果。。。你的功能就是提醒我掏手機對吧!?
  • 國行Apple Watch Series4/5開通ECG(心電圖)的方法
    蘋果的Apple Watch Series 4自2018年9月13日發布以來,其ECG(心電圖)功能就受到人們的關注和喜愛,但是國行暫時還是無法直接開通,那麼今天就給大家帶來國行開通ECG的方法。首先你得有一塊Apple Watch Series 4/5,然後你的iPhone 和apple watch 的系統版本必須是最新的測試版本,升級到watch OS 6.2 Developer beta。一旦升級,不管手錶還是手機,都不能進行降級操作(手機降級就不能配對了),繼續之前請三思而行!
  • apple watch5和4的區別
    處理器:watch5為S5處理器,4為S4理器;||表身材質:watch5比4多了陶瓷和鈦合金成分;||內存和功能:watch5為32G,4為16G,前者增加常顯模式、指南針和藍牙通話功能。  apple watch5和4的區別主要體現在處理器、表身材質、內存大小以及功能四個方面。  1.處理器的區別  apple watch5搭載64位S5雙核心處理器;  apple watch4則為64位S4雙核心處理器。
  • 蘋果watch和華為watch GT2有什麼區別?好文(華為手環備選)
    導讀:apple watch有點小貴,huawei watch看起來不錯,價格也合適,就怕不夠用,這兩款手錶到底有什麼差別呢?請跟小編從配置、功能、口碑、注意事項方面,來看看兩個差別到底多大!錶盤 46mm;AMOLED曲面屏幕;內存/硬碟 4G快閃記憶體;系統軟體 華為終端智能手環控制軟體V6.0通信功能 可選wifi版本、藍牙;電池 455mAH;iwatch series 5的配置:錶盤 40-44mm;LTPO OLED;內存/硬碟 32G快閃記憶體;系統軟體 watchOS系統;通信功能 可選wifi版本,有藍牙;電池 296mAH;不難看出,蘋果的配置,內存和晶片方面比華為發達
  • Apple Watch Series 6開箱,為什麼有了四代我還買六代?
    apple watch series 6新功能|蘋果手錶6健康功能顯著提升,此功能不一定是每個人都會使用的功能,而只是另一個重要的傳感器,它將對徒步旅行者,騎自行車的人和其他健身愛好者產生很大的影響。您可以可以將其直接添加到錶盤上。
  • Apple Watch5才戴三天,Vivo Watch月底就出?
    看了一下價格,手裡的apple watch5瞬間不香了。Vivo Watch報價1k+,有42mm和46mm兩款,AMOLLED圓形錶盤,全系精鋼表體氟橡膠/Nappa真皮錶帶。支持5ATM防水,卡路裡檢測,獨立音樂播放,連續心率血氧檢測,Jovi語音,多功能NFC,行動支付,18天續航。
  • Apple Watch Series 7直角邊設計欣賞
    如果真是這樣的話,明年的 apple Watch 應該會有很大的改動了。多年來,Apple watch 幫助挽救了無數生命,包括不規則心律通知、SOS 救援、跌倒檢測等等。
  • Apple Watch火爆因為手錶而不是Smartwatch
    點擊圖片上方「老杳」,關注主打原創和重大事件分析的老杳微信公共號:laoyaoshowApple watch終於開賣了,與預期相同,一如既往的火爆。一位做智能手錶的朋友第一時間多花四千元搶購到手,拿Apple watch使用免提功能打電話給老杳顯擺,效果不錯,不過這個功能三星Gear第一代就已經實現,老杳從Gear、Gear Fit、Gear S一路買過來,沒有一個能夠佩戴超過一個月,原因很簡單:不好看也沒用,戴著更丟人。
  • 有种放學別走——看智能手錶們如何圍毆apple watch~
    去年9月蘋果放出幾張apple watch照片之後,立刻就有有十幾款智能手錶隨之發布。這些手錶來自於其他的一些公司,他們竭盡全力搶在蘋果瓜分全部市場之前,圍毆apple watch。它可以同步數據到Android和 iOS設備。售價150美元(約合939.3人民幣),目前有售,各種顏色應有盡有。
  • 我復活了 5 年前的初代 Apple Watch
    手柄上的小屏幕可以做些簡單的設置和勉強取下景,但尺寸實在太小,觸控起來是極為不友好,經常會出現誤觸的情況。同樣的問題也會出現在Apple watch 上,手上的可穿戴形態決定屏幕不會大,也沒必要做大,畢竟這是一款短暫使用的產品。回顧下:在功能機時代屏幕還不能觸控我們是通過導航鍵完成操作,上下左右加中間確定鍵,就是這個簡單的導航健組合幾乎滿足了屏幕內的所有操作。
  • 蘋果將從12月1日起在 Apple Stor 推出「一小時代碼」活動
    站長之家(ChinaZ.com) 11月27日 消息:蘋果近日宣布,其年度的[一小時代碼]活動將在 12 月 1 日到 12 月 14 日在全球的apple store開展,從今天開始蘋果用戶可以申請註冊參與活動,活動適用於全年齡段,並且將為 6 至 12 歲的孩子提供專門的編程課程
  • [掌設]APPLE Watch Series5 44MM AL&蜂窩版開箱
    事實上,購置Apple watch是4代的時候就想買,但總覺得少一個給自己的藉口。
  • 蘋果為開發人員發布了第九個watchOS5beta
    近期涉及蘋果為開發人員發布了第九個watchOS5beta內容備受矚目,很多讀者對此也很有興趣,現在給大家羅列關於蘋果為開發人員發布了第九個watchOS5beta最新消息。上周五,蘋果為開發人員推出了第九個watchOS 5 beta。該更新是在該公司向開發人員發布第十個iOS 12 Beta和向其Apple Beta軟體計劃的成員發布了第八個iOS 12公共Beta 之後的 一天。
  • 凌晨1點,看智能手錶們如何圍毆apple watch~刷爆朋友圈
    去年9月蘋果放出幾張apple watch照片之後,立刻就有有十幾款智能手錶隨之發布。
  • 西安app控制類軟體開發,安卓APP和蘋果iosAPP軟體開發公司
    現在隨著手機智能化的不斷普及,絕大多數人用的手機都是智慧型手機,現在市面上比較多的智慧型手機是安卓和ios的,這兩個作業系統在本質上有很大的區別,不論是開發還是維護都是要分開來說的,那麼iops平臺開發的APP和安卓平臺開發的APP究竟都有哪些區別呢?