回覆列表
  • 1 # Tech喵

    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 等等。

  • 中秋節和大豐收的關聯?
  • 古代因糧食滅國的國家?