自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

王巍訪談:關(guān)于Swift學(xué)習(xí)和AppleWatch開發(fā)的一些建議

移動開發(fā) iOS
本期采訪對象王巍,微博ID“onevcat”,圈兒內(nèi)人稱喵神,知名iOS/Unity 開發(fā)者,現(xiàn)居日本,就職于LINE。喵神是objc中國項目發(fā)起人,開源過廣受開發(fā)者喜愛的Xcode插件VVDocumenter,主創(chuàng)或參與開發(fā)《姬騎士和最后的百龍戰(zhàn)爭》、《英雄 Slash》、《冒險謎題王國》以及《小熊推金幣》等多款游戲,個人應(yīng)用代表有《番茄工作法》(Pomodoro Do)和《云端記賬》(Our Money)。

[[126738]]

via:cocoachina

本期采訪對象王巍,微博ID“onevcat”,圈兒內(nèi)人稱喵神,知名iOS/Unity 開發(fā)者,現(xiàn)居日本,就職于LINE。喵神是objc中國項目發(fā)起人,開源過廣受開發(fā)者喜愛的Xcode插件VVDocumenter,主創(chuàng)或參與開發(fā)《姬騎士和***的百龍戰(zhàn)爭》、《英雄 Slash》、《冒險謎題王國》以及《小熊推金幣》等多款游戲,個人應(yīng)用代表有《番茄工作法》(Pomodoro Do)和《云端記賬》(Our Money)。

CocoaChina:很多新手開發(fā)者會糾結(jié)于先學(xué)習(xí)Objective-C還是Swift,不過大家比較傾向于兩者都學(xué),那么在同時學(xué)習(xí)兩者的過程中,哪些內(nèi)容需要重點關(guān)注呢?

王巍:其 實不論是 Objective-C 還是 Swift,現(xiàn)在的目的都是寫 iOS 和 OSX 的 app,那么其實對于絕大多是情況來說,語言本身并不是非常重要,使用語言去和 Cocoa 以及 CocoaTouch 交互才是我們?nèi)粘i_發(fā)中最常用到的技能。Cocoa 的編程思想并沒有隨著語言的變化發(fā)生什么大改變,所以還是應(yīng)該把對于框架的學(xué)習(xí)放在首位。當(dāng)然在 Swift 中有些細節(jié)和做法會與 Objective-C 有所不同,對于開發(fā)者來說選擇其實變得更多了 (舉個例子,Objective-C 中總會使用 NSError 指針來獲取錯誤信息,而 Swift 中我們還可以有 Tuple 這樣的選項)。

現(xiàn)在可能在工作中使用 Objective-C 的開發(fā)者還是占大多數(shù),我的建議是在使用 Objective-C 的時候,也順便可以“想象”一下如何用 Swift 更好地實現(xiàn)同樣的事情。如果不是特別趕進度的話,甚至可以再用 Swift 真實地實現(xiàn)一遍。因為兩種語言***的區(qū)別就是 Swift 擁有更強的類型檢查和安全性,所以如果能夠特別關(guān)注這點的話,之后快速切換到新的語言去就不會有什么問題。

CocoaChina:對于學(xué)習(xí)Swift的開發(fā)者,入門以后應(yīng)該如何進一步提高?

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

另外要注意的是,因為現(xiàn)在 Swift 還很新,很多東西并沒有現(xiàn)成的方案或者所謂的***實踐。在遇到這樣的情況時,***詢問下你身邊的資深 iOS 或者 Objective-C 的開發(fā)者。因為 Swift 和 Objective-C 其實是共通的,很多經(jīng)驗是可以參照借鑒的。

CocoaChina:TIOBE曾預(yù)計Objective-C可能會失去其在移動開發(fā)方面的主導(dǎo)地位,而Swift將會給該領(lǐng)域帶來新的發(fā)展。您是怎么看待iOS語言的趨勢呢?有沒有可能說將來只學(xué)習(xí)Swift呢?如果有,那么您預(yù)計大概需要多久?

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

CocoaChina:我們知道您現(xiàn)在在維護swifter.tips這個站點,其內(nèi)容來自于您的《Swifter - 100 個 Swift 必備 tips》電子書,能否給我們介紹一下這本書,以及其后期計劃。

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

CocoaChina:Apple Watch即將發(fā)售,針對有計劃為該設(shè)備開發(fā)軟件的開發(fā)者,可以跟我們聊聊Apple Watch的開發(fā)模式、目前的局限、以后發(fā)展方向嗎?

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

CocoaChina:目前Apple Watch上適合開發(fā)什么樣的應(yīng)用,目前Apple Watch會不會只是iPhone應(yīng)用的延伸,有沒有可能出現(xiàn)一些革新性的應(yīng)用。

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

CocoaChina:您個人博客中的文章可以說篇篇都是精華,風(fēng)格淡然,技術(shù)嚴謹,能跟大家分享下您在寫技術(shù)博客方面的經(jīng)驗嗎?

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

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

CocoaChina:您現(xiàn)在是在日本做開發(fā),那么日本的iOS開發(fā)是怎樣一種情況呢?有哪些值得借鑒的地方呢?

王?。?/strong>可 以說日本的 iOS 開發(fā)者和國內(nèi)很多開發(fā)者不同的一點是對資訊的接觸和掌握感覺要更前沿一些,也就是視野要開闊一些。不過可能是由于我接觸到的日本開發(fā)者正好都比較喜歡新鮮 事物吧。這邊的話,團隊合作和規(guī)范確實很厲害,每個項目基本無論大小,都會有很正式的文檔和 wiki,另外像測試和 CI 這些方面也都很注意,對程序員來說開發(fā)起來特別舒服,基本可以專注于開發(fā)的內(nèi)容。日本開發(fā)者另一個優(yōu)點是做事認真,每一個特性都要反復(fù)確認;QA 那邊過來的 bug 報告也十分詳盡,對于定位問題很有幫助。但是另一方面,他們的基礎(chǔ)可能比國內(nèi)的 CS 出身的開發(fā)者同行們要差一些,開發(fā)效率也低不少。所以兩國開發(fā)者其實互相都有需要學(xué)習(xí)和借鑒的地方。

CocoaChina:您欣賞的國內(nèi)外iOS開發(fā)者有哪些?

王?。?/strong>國外的話像 Mattt ThompsonMike Ash都是很厲害的 Cocoa 開發(fā)者,我也一直受益于他們的貢獻和分享才能逐漸成長。

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

CocoaChina:新年新氣象,您在2015年有什么樣的規(guī)劃呢?

王巍:其實暫時沒有什么特別遠大的目標(biāo)。

之前定過每年學(xué)習(xí)一門新語言的目標(biāo),今年的話對 Go 比較感興趣,應(yīng)該會花一定時間學(xué)習(xí)。另外就是繼續(xù)腳踏實地不斷進步和提高,在對現(xiàn)在自己的幾個項目繼續(xù)維護的同時,看看能不能走出舒適區(qū)一兩次,在專業(yè)領(lǐng)域里走得更遠一些吧。

責(zé)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2013-07-18 16:16:51

2013-08-21 13:47:29

PhoneUDIDUUID

2012-11-09 10:46:24

Canonical

2021-09-27 10:04:03

Go程序處理

2021-09-27 15:33:48

Go 開發(fā)技術(shù)

2018-07-30 08:41:48

VueReact區(qū)別

2018-07-27 18:20:31

數(shù)據(jù)庫MySQL 數(shù)據(jù)庫建表

2013-12-03 10:30:28

iOS開發(fā)程序員自我提升

2017-05-02 21:08:35

開發(fā)架構(gòu)工程師

2011-07-13 09:13:56

Android設(shè)計

2011-07-13 10:12:56

SQL語句優(yōu)化操作符優(yōu)化

2009-11-26 15:10:08

VS2005資源

2011-07-27 10:52:02

Oracleredolog

2020-09-21 06:58:56

TS 代碼建議

2017-11-29 18:52:13

Python新手編碼建議

2018-11-20 14:24:46

數(shù)據(jù)分析數(shù)據(jù)庫統(tǒng)計

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2009-09-17 10:10:10

Oracle學(xué)習(xí)

2017-07-12 15:48:44

AndroidJavaEffective J
點贊
收藏

51CTO技術(shù)棧公眾號