在如今IT行業(yè)競爭異常激烈的形勢下,一個程序員不學(xué)個幾門語言感覺都沒底,這不經(jīng)過一年的Android自學(xué)開發(fā),已經(jīng)將iOS端的整體功能完成70%左右拄丰,主要是時間問題和自學(xué)成本問題給耽誤了。但是在這段時間敲Android代碼俐末,能夠體會到iOS和Android開發(fā)之前的相同點和區(qū)別⊙傧溃回歸主題卓箫,我列出自己對他們之間的一些看法。
1垄潮、目錄結(jié)構(gòu)大不相同
以上兩個項目都是剛創(chuàng)建的項目烹卒,所以看起來好像區(qū)別不是很大,那你看看下面這張圖
其實我還沒有截完呢弯洗,這點遭到無數(shù)Android開發(fā)的吐槽旅急,在來看看iOS的目錄,瞬間清爽多了
其實Android還需要定義很多資源文件牡整,比如drawable藐吮、xml、values、mipmap等等谣辞,這是我在iOS開發(fā)多年后再寫Android的一大痛點......
所以在目錄結(jié)構(gòu)這塊我認(rèn)為iOS完勝Android
2迫摔、UI布局方式
iOS和android的UI控件區(qū)別不大,主要是Android有很多布局控件泥从,有點css布局的思想句占,布局控件用的最多的有,LinearLayout
,RelativeLayout
,ConstraintLayout
,FrameLayout
等躯嫉,其他的就不列舉了纱烘。
從iOS轉(zhuǎn)到Android后要轉(zhuǎn)變這個布局思想可能要花個幾天時間才能適應(yīng)哈。祈餐。凹炸。
iOS開發(fā)在布局UI的時候一般就用代碼方式和XIB布局(故事版其實也叫XIB布局),但是我一般用純代碼昼弟,因為XIB布局雖然方便啤它,但是在性能方面不如代碼寫。
一般在頁面布局復(fù)雜且改動不大的情況下最好用
Android布局的方式很多情況都是用的xml文件布局舱痘,我第一次接觸的時候有點不知所措呢变骡,后來慢慢的也就習(xí)慣了。
還有就是純代碼布局了芭逝,下面給個樣例
LinearLayout centerView = new LinearLayout(context);
RelativeLayout.LayoutParams centerLayout = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
centerView.setGravity(CENTER_IN_PARENT);///里面的內(nèi)容居中
centerLayout.addRule(RelativeLayout.CENTER_IN_PARENT);///相對于父控件的位置居中
addView(centerView,centerLayout);
iOS的XIB底層最終會轉(zhuǎn)成xml布局塌碌,所以性能上應(yīng)該不如Android的直接xml布局。
個人說句公道話旬盯,比較喜歡安卓的布局方式台妆,應(yīng)該系統(tǒng)幫忙解決了很多事情,開發(fā)的時候更爽胖翰。iOS中的UITableView 中的cell都要給高度接剩,但是Android都是自動布局,尤其是在item中有加載網(wǎng)絡(luò)圖片的時候更勝一籌萨咳。
3懊缺、頁面的比對介紹
頁面的概念中iOS一般用UIViewController表示,對應(yīng)到Android中就是Activity了培他,
但是在Android開發(fā)過程中鹃两,一個Activity到另外一個Activity 就是用startActivity(Intent)進(jìn)行跳轉(zhuǎn)操作,跳轉(zhuǎn)的動效與手機(jī)系統(tǒng)有關(guān)系舀凛,比如華為手機(jī)和vivo手機(jī)展現(xiàn)的方式就不一樣俊扳。而在iOS中,有通過導(dǎo)航控制器的方式push猛遍,而且還可以自定義跳轉(zhuǎn)的動效馋记,另外還有present的跳轉(zhuǎn)方式号坡,且系統(tǒng)有提供幾種炫酷的動效。
所以我經(jīng)常在寫一個動畫的時候會聽到安卓同事說 真羨慕我們抗果,畢竟系統(tǒng)各有差異筋帖,或許真的在動畫制作這塊Android確實不如iOS呢。
4冤馏、手機(jī)適配的比對介紹
作為Android開發(fā)來說日麸,適配應(yīng)該也算一個痛點了,不光是各種雜七雜八的手機(jī)尺寸逮光,還有個大手機(jī)廠商代箭,他們每個廠商都恨不得給自己的手機(jī)內(nèi)置不一樣的系統(tǒng),導(dǎo)致有些效果或者布局在各種手機(jī)都是不一樣的涕刚,這就要花費(fèi)時間適配了嗡综,這點真心吐槽哈。相比于iOS來說 簡直很幸福杜漠,就蘋果一家极景,所以不太可能出現(xiàn)安卓那種情況,頂多就是在每次出現(xiàn)新系統(tǒng)的時候 需要適配一下了驾茴,比如iOS11導(dǎo)航問題盼樟,iOS13的安徽模式適配,iOS15的UINavigationBarAppearance等等锈至。
一種事物存在則有他存在的理由晨缴,出現(xiàn)這些問題說明時代在進(jìn)步,所以咱要坦然以對峡捡。
5击碗、app發(fā)布
app開發(fā)完成后 肯定要發(fā)布到應(yīng)用商店的,這個是階段性的最終過程们拙。
蘋果審核是出了名的嚴(yán)格稍途,而且周期很長(現(xiàn)在相當(dāng)友善),記得在17年的時候睛竣,上線一款app花了2個月的時間晰房,簡直人都要逼瘋了,那個時候第一次審核要一周時間內(nèi)才回復(fù)射沟,再次很審核后時間可能會更長,所以整體周期就會非常的不可控与境。哪怕是現(xiàn)在也會經(jīng)常碰釘子验夯,可以看看我之前記錄的app審核的悲催經(jīng)歷。
安卓發(fā)布應(yīng)用是出了名的快摔刁,當(dāng)然主要針對國內(nèi)應(yīng)用市場挥转,經(jīng)常聽到同事上午提交,上午就上線的通告,N多次被震驚绑谣,很是羨慕啊党窜。