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