iOS開發和Android開發的相似之處

    最近比較閒,以前也有相對安卓瞭解的想法,所以最近看了點關於安卓的東西,發現只要iOS以後,安卓開發學的也會比較快。

                                         wKioL1X_snnz2TS9AAEgKn54niA020.jpg

    安卓開發教程比較多,開發環境在mac上配置也比較簡單,所以無論安裝eclipse搞開發還是Android studio都比較容易,無非是JDK+ADT,建議安裝個GM安卓模擬器,速度比自帶模擬器快多了。

        

wKiom1X_tjDgVjU-AAI6kZV3yZE273.jpg

                        拖控件跟storyboard一樣一樣的


    接下來就是第一步,hello world,使用Android studio後,系統會自動創建一個activity,類似iOS的根視圖控制器。如果想迅速看到界面效果,就來學習相當於UIKit框架的控件吧:andriod.widget(包含Button,TextView,EditView,ImageView,ScrollView)。

                


    安卓的佈局大部分都在xml文件裏,要是在代碼裏面適配,感覺很麻煩,不像iOS一樣,安卓一般不使用絕對座標,所以安卓開發需要先學佈局(LinearLayout,RelativeLayout等),感覺跟iOS的xib一樣一樣的,而且都可以拖控件。xib也是xml的結構,難道靈感都來自HTML,安卓的最像。


<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView" />


<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/newbutton"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginRight="43dp"
    android:layout_marginEnd="43dp"
    android:layout_marginBottom="41dp"
    android:onClick="onClick"/>

    上面xml代碼是安卓的佈局,感覺一看就會明白乾啥的,所以搞iOS的搞安卓真的很容易。


    做iOS項目時感覺iOS最重要的控件沒有之一就是tableview,安卓和它對應的是ListView,很有意思的是初學者都會經常出現重用(當然重用的也比較類似,就是如果爲空了創建一個)的問題。與UIKit框架中的UICollectionView相似的控件是GirdView。可能是GirdView不太熟悉,感覺collectionView比GirdView強大太多了,簡直能各種佈局。


        

wKioL1X_wUqgwPG8AAFbqktDWHc964.jpg

    

     語法方面的就是java和oc了,java是初學的可能理解上有些偏差。java中的接口interface和oc中的代理delegate比較類似,接口和代理都是寫在繼承後面,而且需要實現接口和代理中的方法。主要都是用於事件或者參數傳遞的。java中的匿名類結構和oc中的blcok比較類似,但是感覺差別有點大,有點像一個匿名類包含多個blcok一樣。但是至今不知道類似oc的單個blcok如何實現,以後肯定要補習的。


    開發工具來講都差不多,斷點調試等都比較類似。吐槽一下安卓:Android控制檯輸出太多跟本程序無關的東西了,還得過濾來解決。就模擬器來說,安卓簡直慢的要死,不過下載其他的比如GM模擬器就可以解決。在開發方面例如給view等添加手勢,安卓簡直麻煩的要死,iOS可以秒它幾條街。還有java的數組使用太麻煩,Array、ArrayList、Vector都不知道用哪個了,oc一個NSArray全搞定。(以上吐槽可能是沒有用對方法或者沒用習慣,只是使用中感覺有些彆扭的)。


    還有好多比較類似的東西,比如Activity和UIViewController都是用棧管理的都有生命週期、字符串提供的各種方法比較類等,因爲都屬於前端所以比較類似的東西多也正常。目前Android開發只看了一小部分(數據持久化、網絡請求、webview等),還沒進行實戰,所以知道的不多,以後學習了還會來分享。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章