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