APP應(yīng)用程序開(kāi)發(fā)都需要哪些方面的知識(shí)和技能?下面是以為來(lái)自ios app開(kāi)發(fā)人員的經(jīng)驗(yàn)分享:
本人經(jīng)歷:
剛好我就是一名iOS開(kāi)發(fā)者,就以我自己的經(jīng)驗(yàn)聊一聊吧。app開(kāi)發(fā),目前也主要是兩大方向,蘋果和
安卓app開(kāi)發(fā),安卓應(yīng)該也類似。我在做iOS開(kāi)發(fā)之前學(xué)過(guò)Java、C語(yǔ)言相關(guān)的開(kāi)發(fā)語(yǔ)言,并且在公司做過(guò)一些項(xiàng)目,都是服務(wù)的的項(xiàng)目,后來(lái)因?yàn)樽约航佑|了蘋果產(chǎn)品,成為了“果粉”,對(duì)iOS開(kāi)發(fā)也產(chǎn)生了興趣,所以就從服務(wù)端的開(kāi)發(fā)轉(zhuǎn)到了“前端”的app開(kāi)發(fā),做了iOS開(kāi)發(fā)者,目前也做了多年了。
Ps:以下內(nèi)容涉及的會(huì)比較多,針對(duì)不同的定位(團(tuán)隊(duì)協(xié)作還是獨(dú)立開(kāi)發(fā)者),所需要的也不同。另外不同的app類型,所需的知識(shí)也不同。比如游戲類的和工具類的就不同。一些專業(yè)型的和非專業(yè)型的也不同,我下面整理的也不是很全,是比較泛的。
根據(jù)我自己的理解和經(jīng)歷,粗略的總結(jié)了一部分:
一、了解蘋果硬件、軟件的知識(shí)
1、比如蘋果電腦的操作使用;
2、iPhone的硬件信息(例如屏幕分辨率、內(nèi)存等硬件信息)。
3、macOS和iOS 的軟件信息(UI 組件、特性等)。
4、App Store 的審核機(jī)制,這些都是需要知道的。 從開(kāi)發(fā)到提交上架,這些都是會(huì)涉及到的。
Objective-c 和 swift 語(yǔ)言的基礎(chǔ)知識(shí);雖然現(xiàn)在蘋果也在推廣swift,包括很多公司的項(xiàng)目已經(jīng)使用swift開(kāi)發(fā),但是老的項(xiàng)目依然是OC語(yǔ)言開(kāi)發(fā)的,還是需要掌握OC的。
1、Xcode 是蘋果應(yīng)該開(kāi)發(fā)的基礎(chǔ)工具,包括iOS、macOS、watchOS、tvOS都需要使用,也有第三方的工具可以coding,但怎么都離不開(kāi)Xcode。 除了開(kāi)發(fā)工具,還有性能調(diào)試工具 instruments 也是需要使用和了解的。
2、除了上面的基本開(kāi)發(fā)工具外,還有很多第三方的工具,例如命令行工具、文本編輯、圖片壓縮、設(shè)計(jì)稿查看、icon及市場(chǎng)截圖生成工具;協(xié)作共享工具(例如有道、印象筆記等等);
四、App開(kāi)發(fā)技能
1、常用 UI 組件特性;
2、項(xiàng)目的架構(gòu)/框架設(shè)計(jì)、SDK 設(shè)計(jì)開(kāi)發(fā);
3、性能調(diào)優(yōu);
4、Bug 排查、調(diào)試工具及方法;
5、app 提交流出、審核被拒處理如何處理等等;
五、其他工具
1、團(tuán)隊(duì)協(xié)作的工具;
2、提高效率的工具;
3、
原型設(shè)計(jì)工具;
4、代碼提交工具;
5、其他很多工具
六、協(xié)作能力
這個(gè)是針對(duì)公司團(tuán)隊(duì)的,常見(jiàn)的協(xié)作工具,提高協(xié)作的方式等,也是需要知道的。這個(gè)也是可以邊做邊學(xué)的,不同的團(tuán)隊(duì),協(xié)作工具也不一樣。但基本都是差不多的。
例如:設(shè)計(jì)師設(shè)計(jì)好的原型圖或者UI設(shè)計(jì)稿如何給到開(kāi)發(fā)?
切圖的命名規(guī)則怎么做才能讓開(kāi)發(fā)更高效?和測(cè)試同學(xué)如何協(xié)作能保證效率,同時(shí)也能保證質(zhì)量?
例如:開(kāi)發(fā)可以在開(kāi)發(fā)階段集成測(cè)試功能的代碼,方便自己開(kāi)發(fā)調(diào)試,也可以在提交測(cè)試后,測(cè)試同學(xué)也能方便的使用和反饋問(wèn)題給開(kāi)發(fā)。
例如:通過(guò)持續(xù)集成高效的開(kāi)發(fā)和測(cè)試,等等。這些也可以算到協(xié)作能力里面。
七、產(chǎn)品需求能力
如果是獨(dú)立開(kāi)發(fā)者這項(xiàng)也是必須的。
即便是一個(gè)很簡(jiǎn)單的 app,也算是一個(gè)產(chǎn)品,只是可以簡(jiǎn)單到不用冗余的需求文檔而已。 但如果是在公司團(tuán)隊(duì)協(xié)作,
作為一名開(kāi)發(fā)人員,也是要有分析需求,并且給予合理建議的。
八、設(shè)計(jì)能力(交互設(shè)計(jì))
1、獨(dú)立開(kāi)發(fā)者:這項(xiàng)是必須的。能夠通過(guò)原型工具進(jìn)行交互設(shè)計(jì)。當(dāng)然可以很簡(jiǎn)單或者這個(gè)原型是在你腦海里的,然后用代碼實(shí)現(xiàn)。
2、團(tuán)隊(duì):一般會(huì)有專門的設(shè)計(jì)師進(jìn)行 app的交互、體驗(yàn)、UI設(shè)計(jì),然后給到開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)。 提交審核也可能有專門的人員負(fù)責(zé)。但如果是作為app的獨(dú)立開(kāi)發(fā)者進(jìn)行開(kāi)發(fā),這些也是需要掌握的。
常見(jiàn)的設(shè)計(jì)工具也可以了解一些。
Ps:關(guān)于設(shè)計(jì),蘋果官方有 《人機(jī)交互指南》文檔,這個(gè)一定要看一遍,無(wú)論是獨(dú)立開(kāi)發(fā)還是團(tuán)隊(duì)協(xié)作,都是有好處的。
還有一點(diǎn)比較重要,就是提高“審美”。無(wú)論是代碼還是UI,都需要更“美”(代碼簡(jiǎn)潔易懂、易擴(kuò)展;UI 符合蘋果或者安卓的設(shè)計(jì)原則,同時(shí)有“設(shè)計(jì)感”)。
九、問(wèn)題排查的能力
1、開(kāi)發(fā)過(guò)程中:開(kāi)發(fā)中的問(wèn)題,要善于使用Xcode的bug調(diào)試工具及常見(jiàn)的調(diào)試命令;
2、線上事故:當(dāng)線上出現(xiàn)嚴(yán)重或者疑難問(wèn)題時(shí),需要快速響應(yīng)、止損、排查和修復(fù)問(wèn)題,除了常用的開(kāi)發(fā)、調(diào)試工具以外,還需要有一定的抗壓能力和除代碼層面以外的解決問(wèn)題能力。例如通過(guò)分析崩潰日志,定位問(wèn)題。 當(dāng)出現(xiàn)不能復(fù)現(xiàn)的問(wèn)題時(shí),需要多維度分析用戶數(shù)據(jù),便于定位問(wèn)題。
十、運(yùn)營(yíng)能力
這個(gè)也是獨(dú)立開(kāi)發(fā)者應(yīng)該具備的。因?yàn)闊o(wú)論是什么軟件,都是需要“運(yùn)營(yíng)”的。
公司一般有運(yùn)營(yíng)團(tuán)隊(duì)去做,而個(gè)人開(kāi)發(fā)者也要掌握這方面的知識(shí),例如常用的第三方運(yùn)營(yíng)工具/網(wǎng)站,知道UV、IP、PV 這些都代表什么意思,如何去推廣自己的app等等。