[心得] 工作一年半的一些心得分享

前陣子在 Ptt MacDev 版上寫了一篇心得:

各位好,這篇文章主要是給新手一些方向和想法~

純屬個人的經歷和看法,可以一起以輕鬆的態度聊聊~

我個人是在 2015 年中開始接觸 iOS 的開發,以 Objective-C 為一開始自學方向。 從簡單遊戲開始下手,像是猜數字、圈圈叉叉之類的, 練練基本的拉拉 UI、認識Storyboard、.h 的宣告、.m 的實作等。

接著剛好 Xcode 7 開始讓免費的開發者可以裝 App 至實體裝置上, 發現自己原本都用 4.7 吋的模擬器執行,而到了 5.7 吋的裝置上時, 會有跑版的問題,於是花了一些時間學習 AutoLayout。

而基本上 AutoLayout 有個概念熟悉即可, 除非是比較特別的效果需要思考一下彼此之間的 priority, 不然一般 App 都還蠻輕易解決這方面的問題; 而比較有趣的是,像在 ScrollView 裏頭做 AutoLayout 時, 要有 contentSize 的概念,而不要輕易的點「讓系統補完 constraints」的按鈕。

接著,在我準備面試前的一兩個月,加入了一些 iOS 的開發社群 (e.g iOS @ Taipei、Cocoaheads Taipei等) 厚著臉皮加了版上比較活躍的幾位前輩,並詢問他們一些問題和方向, 於是開始練習其他實作:

練習接 Api,當時我是寫了一個去接目前各雨量觀測站的 App, 篩選 10 分鐘內有偵測到雨量的, 並在 MapView 上放上大頭針,顯示當區目前雨量。 (AFNetworking、MapKit)

  • QR Code 掃瞄器

當初瘋狂失敗的原因在於模擬器無法執行打開相機的功能, 一開就會報 Crash,而後來在裝到手機上才發覺當初懊惱的自己有多傻XD 不過這也學到了要好好 Google 的一課, 畢竟後來想想這明明是很簡單下的關鍵字,且網路上很多人會告訴你這件事…

  • 縣市的各學校地址清單

而因為當時有這需求,便寫了一個可以讀特定格式的資料, 然後畫面簡單地透過 UINavigationController 控制前後頁, 跳轉到縣市 -> 鄉鎮 -> 學校 -> 資訊等, 練習一下 ViewController 間的切換和流程安排。

  • 午餐電話簿

結合上述所學(不包含 QR Code), 便寫了一個會先判斷離自己最近的雨量偵測站是否有偵測到 10 分鐘內下雨, 來作為篩選依據(下雨的話就只隨機挑選有外送的), 隨機挑選後並可以決定是否今天要吃XD 再透過 FMDB 的方式記錄下來成清單,告訴自己這幾天都吃什麼… (很無聊的功能,就只是想練習 FMDB)

而上述都有使用到一些第三方套件,也選擇了 Cocoapods 來做管理。 於是我便拿著這些沒什麼商業價值的小工具上台北面試了… 很幸運的是,在面了兩間之後,就拿到其中一間的 Offer, 便開始了以 iOS 作為工作的生活。

接著在這一年半左右的時間,開始寫 Swift(報到的第一天被告知要寫 Swift XDDDDD) 學習 ViewController 的生命週期,也體會到 Storyboard 和 Xib 之間的優缺點, 甚至用 Code 直接刻 View 的好處等。

很多事情都要等你真的遇到了,才會很深刻地體會到, 為什麼當初有些前輩會這樣建議你… 而自己在這段時間又玩了 Parse、Firebase、Fastlane、Fabric、Carthage, 以及和 Android 之間透過 Bonjour 聯繫之類的一些不是太重要的技能XDD

看似沒什麼重點的文章,想告訴新人們的是一句我從 iOS @ Taipei 聚會中聽來的觀念: 「在這領域的知識累積,並非是線性的成長,而是一個一個的點; 你平常能觸及的東西越多,點越多,才能構成一個知識的平面。

而社群的意義就在這,它幫你集結了在 iOS 各領域開發的人, 分享他們花了數個、或數十個晚上所得到的經驗,讓你了解其中的運作原理和設計想法。

產品和想法多數都是在互相碰撞的時候,產生而來的, 像是會使用 Firebase 的 real-time database, 和藍芽裝配的配對的話,那是不是能做一個即時的數據報告, 再加入類似 AWS 的 Cloud watch 的功能,送推播到另一個裝置幹嘛幹嘛(還沒想到XD)

對自己自學程式還沒有想法的人,不如先放下手機看看你周遭的生活, 你想透過手機 App 幫你解決什麼問題? 然而你便會找到方向,並找到一份適合你的工作,讓你接觸到更多 🙂

https://www.ptt.cc/bbs/MacDev/M.1493048535.A.E98.html

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s