Android碼農如何一個星期轉為iOS碼農(不忽悠)


WeTest 導讀

 作為一個android客戶端開發,如果你不懂點ios開發,怎么好意思說自己是客戶端開發呢,本文講解如何讓android開發碼農在一個星期上手IOS開發 --《記錄自己IOS開發經歷》。


 

一、開發工具對比

 

 

AndroidStudio作為android開發的御用編輯器,相信小伙伴不用我解釋太多,其中有太多好用到哭的功能不想過多解釋,相比之下,XCODE作為IOS開發的御用編輯器,大部分功能就比android studio要落后很多,我接觸過一段時間,有以下幾點感悟:

1、Version 8.2.1之后,直接導致之前的很多插件都沒法使用了。

2、swift代碼重構等功能遲遲沒有提供,相信這對於所有小伙伴來說,至少是1萬點傷害。

3、查找功能差Android一條街,double shift查找各種,而XCODE需要點擊到左下角,在選類型,在查找。

4、調試功能相對於AndroidStudio來說,有點類似於我國和美帝的差距

5、自動補全,代碼着色,注釋功能經常間歇性抽風,不知何故,嚴重需要重啟MAC才恢復,(注意,不是重啟XCODE),比如下面注釋不能使用的場景

 

 

6、等等,不想說太多。。

 

但是,你必須得接受一個事實XCODE畢竟是IOS開發的御用IDE,不用也不行啊,那么,有沒有什么辦法,使我們在開發ios app的時候,稍微爽點,答案,當然是有的,比如,我是這么解決的。

 

更加不忍直視的是,直接可以看部分代碼片段,恐怕xcode是不會出這么人性化的功能了。

 

呵呵,聰明的你已經明白了,同時開一個APPCode 來作為輔助,是一種不錯的選擇,而且這對於曾經是android開發的你來說,絕對是一種增強型體驗,快捷鍵就使用你之前的即可,查找,rename,等等功能爽的不要不要的。

 

二、干貨來了,如何入手

反正以上槽也吐了,那么,接下來總要說點好的吧。

1、感謝蘋果推出swift這種語言,使得android碼農可以非常迅速的搞起IOS開發,如今SWIFT已經3.1了,如果,你們打算從新擼一款APP,如果還是說,用OC,我建議你治療一下,swift已經很成熟了,不存在升級一個版本,面臨大量代碼改寫的悲劇了,而且,git上swift的開源庫,也是慢慢的夠用了,退一萬步講,即便沒有,引入OC的庫,也是能夠用的。那么,如果你打算搞起swift,我肯定是要推薦一些庫給你的:以下內容純屬干貨:

 

2、以上說了語言上的選擇,swift沒錯,那么,接下來你肯定是要熟悉swift語法的,我建議你看看

 

這邊書,如果你不太喜歡閱讀英文,沒有關系,社區已經有人翻譯了中文版本的,地址在這里;英文原本直接在官網下載即可。

我想,你一定會說,究竟怎么一個星期就可以搞起?

a、swift語法的熟悉,你可能要注意一下let,optional,guard,switch,tuple之類的,其他的,可以在一遍擼一遍學了,反正用幾次就熟悉了,可能語法我只能給你2天時間,不能再多了,ps(學習語法的時候,最好是拿你比較熟悉的語言去對比,個人覺得這種方式是最快的)

b、其實IOS開發的重點並不在語法,而在於蘋果為IOS開發者提供的一些UI層面的庫的熟悉,這個我只能給你4天時間,不能再多了,這部分的學習相對來說是比較痛苦的,不過,方法依然是對比學習,對照着android 的四大組件,相信你很快就可以從UIKIT中找到他們的影子,舉一個最基本的例子。

 

相信你看到這幅圖之后,腦海里面一定是出現了:

 

沒錯,就是這樣來的,其他的uitextview ,uitableview,uilabel,uiimageview不能說再多了,都是這個套路。

 

c、推薦工具機器書籍:

 

dash是一定需要裝的,這個查找資料實在不能方便太多,至於書籍,個人覺得沒有必要推薦,如果實在要推薦,那肯定是蘋果的開發者幫助文檔了,直接下載在dash里面看就好了。

至於工具,stackover ,和 google 才是你最需要的,我在爬坑的過程中,遇到的99%的問題都是在stackover上找到了解決方案,還有1%的是至今也沒有解決的,問同事,同事也是無解。。

 

d、swift的亮點有哪些?面向協議vs面向對象

沒錯,swfit是面向協議的編程語言,加上逆天的協議擴展,各種語法糖只有你想不到,想到了都驚呼,居然可以這么玩。

 

協議是可以有默認實現的,請在擼的過程中慢慢體會這個的好處,至少,可以為你省去不少的無用代碼《空實現》,當然,有人可能會說,這是你定的協議違背的單一職責原則吧,好吧。。

函數式,真的假的,還函數式?

 

是真的,千真萬確,swift是可以玩函數式的。

 

這不,有人出了一本書,而且,喵神還幫忙翻譯不是。

 

三、俗話說,會列表懂詳情,你就是一個“合格”的客戶端開發

那么,問題來了,IOS中,如何去做一個列表:實際上,接觸過之后,你會發現套路很簡單:

a、使用到的組件當然是UITableView,那么,和RecyclerView對比,有什么區別呢?

 

b、RecyclerView中的列表項的數據是有adapter的onCreateViewHolder和onBindViewHolder合力完成,onCreateViewHolder負責layout出cell的架子,onBindViewHolder負責給架子填充實際的數據,那么IOS中是如何做的呢?

同理,

 

UITableView的這些個方法可以給你創建cell的架子,然后數據的綁定就由DataSource的

 

這個方法提供。那么問題來了,UITableViewDelegate是干嘛的呢,相信你見過ios對於列表項的左滑出現刪除,乃至,長按拖動列表項的位置,其實都是由這個代理提供對應的接口去實現。

 

c、因此,細心的你會發現,兩個平台的在列表上的實現基本上原理是一致的,不同的是采用的設計模式不同,android顯然是使用的適配器模式,一股腦的所有的動作都在adapter中做好就可以了,兩者也均有CELL重用機制,也都會遇到列表常見的性能問題,這些也需要在開發的過程中細心的去體會。

 

d、詳情不必多說,只要你了解了UIViewController的生命周期,以及navigationController對於Controllers的管理棧,一切都是和android驚人的類似,但是似乎IOS又簡單了不少,至少在生命周期函數上,IOS沒有什么onstop,(onresume可以找到對應的viewWillAppear)等等,fragment的概念似乎在IOS中不存在,不過可以類比為一個UIVIEW吧(本人暫時這么理解)。

 

四、其實,IOS開發也是有很多坑在等待着你,不過別急,你踩過的,99%都可以在stackover和google上找到

a、比如,IOS開發中,代理的使用是非常常見的,但是稍稍不注意,就會造成循環引用,什么是循環引用,看圖

 

uiview作為子view加入到ViewController中,出於某種原因,uiview需要持有ViewController的引用,比如可能某些事件需要通過代理傳遞進去,因此,循環引用稍稍不注意就悄然發生了,那么,怎么解決

使用weak:

 

weak may only be applied to class-bound protocol types是個什么鬼,在java中,就是這么搞的啊,stackover一下咯,這里發現了答案

 

 

 

b、連續pushViewController,先pushA,在A的viewDidLoad中馬上pushB,結果B沒有出現,我的想法是讓A作為一個過渡的頁面,(因為經常有這種需求,主人態客人態的頁面結構差異很大,因此我習慣做兩個頁面。然后通過一個導航頁來跳轉)。

那么原因是什么,這次,我沒有搜索到答案,可能是我輸入的關鍵字不准,對於問題的描述不夠准確吧,但是我還是解決了,我猜想可能是因為,兩次,push的時間間隔不能太短,於是我這么做了

 

使用timer做一定的延時,結果,果然就解決了。所以有時候猜一猜,別怕,大膽嘗試,也許問題也能解決。

 

c、總結一下,在有android開發基礎上做到ios開發入門是比較簡單的,但是,要做到ios開發上游刃有余,還是需要一定的時間的,那么,如何加速這個過程,只有讓自己不斷的痛苦,比如,去github上學習開源的項目,在比如,直接熟悉你們現有的項目的ios版本。

 


 【騰訊WeTest iOS預審工具】

為了提高IEG蘋果審核通過率,騰訊專門成立了蘋果審核測試團隊,打造出iOS預審工具這款產品。經過1年半的內部運營,騰訊內部應用的iOS審核通過率從平均35%提升到90%+。

現將騰訊內部產品的過審經驗,以線上工具的形式共享給各位。

在WeTest騰訊質量開放平台上可以在線使用。點擊http://wetest.qq.com/product/ios即可立即體驗!

如果使用當中有任何疑問,歡迎聯系騰訊WeTest企業QQ:800024531


iOS預審工具分四步進行預審服務

【一鍵掃描】只需提供ipa包、審核圖片、審核視頻、應用描述,即可在4小時內拿到一份完整的檢測報告,定位問題的同時提供解決方案,助您成功通過審核。

【案例分享】集結iOS審核失敗常見原因,豐富案例為您提供參考依據。

【專家服務】騰訊專家團隊為您分析各種疑難雜症,提出最優解決方案。

【ASO優化】專業優化AppStore內關鍵字搜索結果,讓產品離用戶更近一步。希望App/手游在預審驗收保證下,都可以快快樂樂過審,開開心心賺錢。,開開心心賺錢。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM