# Web 轉職 App 工程師心路歷程

- 作者：林鼎淵（Dean Lin）
- 網址：https://deanlin.net/blog/202012/from-web-to-app-engineer/
- 發布：2020-12-08
- 主題：職涯成長
- 標籤：Web 轉職 App、Kotlin、心路歷程、轉職、面對問題
- 摘要：當公司突然要你放下手上 Web 的工作全心全力開發完全陌生的 App 時你願意嗎？開發 App 對以後回到 Web 的工作會有幫助嗎？Web 轉換到 App 會遇到什麼困難？

當公司突然要你放下手上 Web 的工作全心全力開發完全陌生的 App 時你願意嗎？開發 App 對以後回到 Web 的工作會有幫助嗎？Web 轉換到 App 會遇到什麼困難？

  from:[https://habr.com/en/post/475768/](https://habr.com/en/post/475768/)

## 如果公司希望你的專業轉型，你怎麼面對？

大約在今年的8月底，公司毫無預警的讓我放下手上 Web 的工作改為開發原生 Android App，收到這個訊息的當下真的非常錯愕，因為我過去沒有任何開發原生 Android App 的經驗，一切對我而言都是從零開始；甚至我當下就有提離職的衝動，因為我認為再多學習這個技術對我未來的求職基本上是沒有太多幫助的。

但思考了以下幾點後我就決定接下了這份任務：

1. 以往我是提供 Api 給撰寫 App 的人去做串接，如果換成我是 App 開發者，串接這些 Api 是怎樣的一個體驗
2. 因為我過去毫無開發原生 App 的經驗，所以公司願意給我相對長的時間去做練習，並對產品的 bug 容忍度較高
3. 想了解過去撰寫網頁前端的經驗是否能夠套用在撰寫 App 的 UI 上面
4. 可以了解當自己學習一個全新技能所需要模索的時間

## 開發 App 的經驗會對開發 Web 有幫助嗎？

我想這個問題需要從兩個角度來看：

**只想單純做一個 Web 工程師，以後也是**

如果以這個角度而言，學習開發 App 對你而言真的是浪費時間，因為你需要花費大量的時間去適應一個全新的語言，而且要面臨各式各樣無法借用過去經驗的詭異 bug，以時間成本跟能得到的收穫來說真的完全不划算，如果公司給你這個任務良心建議你可以直接辭職。

**想要了解不同開發者所需要面對的問題、及解決問題的方式**

在我開發 App 時因為也需要串接過去自己寫的 Api ，這個時候我就會去思考我當時這樣的規劃是合理的嗎？我有哪些地方是需要改進的？以下我就整理了幾項我認為以後撰寫 Api 需要注意的點：

1. **一隻 Api 回傳的結構要穩定**，這樣會使開發 App 的人員需要做很多判斷式
2. **回傳的 status code 要詳細**，過去有很多錯誤我都是直接回傳 400 ，但實際上應該要回傳 401、402、403 這些更有意義的 status code，因為有些 App 的套件就是吃 Api 回傳的 status code，如果正確回傳可以節省更多開發時間

在撰寫 App UI 時我也同時與網頁的 UI 去做印證，因為 App UI 相對網頁而言他能閱讀的空間更小，所以畫面上的功能規劃與操作體驗顯得更為重要，資訊傳遞以及頁面層次需要考慮的更多(過去網頁可以在一頁顯示的，換到App可能需要兩層)

## Web 轉換到 App 會遇到的坑

1. **光是語法就能搞死你**

過去我撰寫 javascript 居多，但是轉換到 Kotlin 你就能體驗語法地獄了， Kotlin 是 Java 的進化版語言，儘管他在撰寫上已經親民很多，但是很多變數型別上的限制，傳遞資訊的限制會讓你感受到各種綁手綁腳；更別提各式各樣的 class 需要定義、繼承…

**2. 遇到錯誤一臉茫然**

跑一跑就莫名其妙的 crash 基本上是每天的日常，如果是執行到特定動作 crash 那還好辦，如果這個 crash 是機率發生的就真的倒大楣了；而且 App 與 Web 在搜尋如何解決 bug 時是完全不同的，一開始你連關鍵字都不知道怎麼下手

**3. 各式各樣不同大小的手機**

Android 的自由市場造就了他的手機有無數種的尺寸，這也讓你開發的 App 非常容易破版，所以在 UI 的設計上要考慮的事情真的非常多…

## 結語

從開始學習到現在大約花了三個半月的時間，現在開發的 App 下週就要向領導們 Demo 了，如果有任何的回饋或感想應該會再寫一篇網誌來記錄吧，希望這篇的胡言亂語能幫助接收到同樣任務的小夥伴們。

---

關於作者：林鼎淵（Dean Lin），台灣的生成式 AI 企業內訓講師、外商資安公司軟體專家，也是生成式 AI 創新學院發起人。出版 7 本書（包含全台第一本 ChatGPT 應用專書），兩度獲得 iThome 鐵人賽佳作，累積上百場授課與顧問經驗。（https://deanlin.net/about/）
引用時請附上原文網址：https://deanlin.net/blog/202012/from-web-to-app-engineer/
