老公老公~你以前不是也有寫過APP嗎,有碰過哪些挑戰呀?有沒有什麼建議可以給想轉職APP的人呢?
哦~~這個問題問的好,想要趁這機會也提醒有打算轉職寫APP的讀者,千萬別抱著"因為APP很簡單,可以輕鬆就轉職當工程師”的想法轉職過來,因為寫APP其實比你想像的難多了~!
讓我舉幾個以前聽過的玩笑梗"如何一句話惹怒APP工程師":
APP不就是寫前端的嗎!
或許在一些相對單純的應用裡面,的確是跟前端工程師有點像,都需要處理與使用者互動有關的UI或功能。這樣的題材對於初學APP的人而言,或許是個不錯的練習標的,搞不好還真的能獲得轉職機會,但若不小心在公司裡都只寫這樣難度的APP,那麼你被更新鮮的後輩替代的可能性將會非常高。
寫APP這麼簡單~
上面這些話聽在APP工程師耳裡會很不舒服,不舒服的點,是因為這過度簡化了APP的複雜度及低估了難易度,以下舉一些例子可以給還在評估是否轉職APP的人參考,寫APP遠比你想的難多了!
你需要實作的功能 | 可能涵蓋的技術 | 說明 |
---|---|---|
類似拖拉式的書櫃 | UI排版策略、動畫(ex:如何用手拖曳移動書本到新位置上) | 要寫的好很難,有沒有想過當拖曳書本到某特定位置時把其他書本”擠開”的動畫要怎麼做? |
同時下載多本書籍 | 多線程管理、下載斷點續傳、背景處理解壓縮檔案、即時更新每本書的下載進度條、暫停下載,接續下載 | 沒寫好的話APP很容易Crash,使用者好不容易下載到一半的檔案會消失 |
書籍檔案處理 | ePub, mobi, pdf格式處理 | 總會有各式各樣的格式要想辦法支援 |
閱讀器 | 圖檔、文字排版、影音嵌入、快取處理 | 直的橫的,不同尺寸的螢幕都要能順利顯示。為了提供更好的操作體驗,使用者在瀏覽前面幾頁的時候,後面的頁面就要先預載好 |
你需要實作的功能 | 可能涵蓋的技術 | 說明 |
---|---|---|
會議室管理(使用者加入/離開/顯示與會者等…) | XMPP實作 | 要花時間看懂人家的Protocol並實作,還要分割腦袋,一會是主辦者一會是參與者視角來寫程式 |
使用者在會議畫面上進行手繪 | Socket連線 | 當有人在畫面上畫畫,其他與會者也要即時看得到 |
與會者進行視訊會議 | WebRTC實作 | 為了減少Server頻寬的佔用,有聽過點對點傳輸嗎? |
你需要實作的功能 | 可能涵蓋的技術 | 說明 |
---|---|---|
與硬體設備間的通訊 | 藍芽, MQTT,第三方library | 可能還要考慮第三方library是否兼容行動裝置的硬體架構 |
手機靠近設備自動填入WiFi帳密給設備 | 網路路由知識 | 追求卓越使用者體驗的話,要跟韌體工程師協作,進一步多了解底層通訊知識 |
其實轉職任何工程師都一樣,並不是只學會程式語言就可以的,其實還有很多周邊知識要學。想像你今天是在一間接案公司上班,什麼種類的APP都可能會碰到,每次只要一個新類型的專案進來,又是一個新的學習輪迴。如果你很能理解這樣的輪迴會不斷出現,且樂於學習新知識,不畏懼這些聽起來嚇人的技術名詞,也能靠自己力量摸索找出答案,那恭喜你,你可能很適合挑戰轉職APP工程師。
但若你並不是這樣的人,那麼這很有可能會是一條到處充滿挫折的路途,你的技能很可能會在成長到某個階段的時候就無法繼續往前,換工作的選擇也開始受限,職涯很容易就這麼卡住了。因此建議在轉職前可以多做一些功課唷。