蘇健豪

喜歡打羽球、橋牌、會一點高爾夫,看美日劇。


iOS Developer
Taipei,TW
[email protected]

0970-595-053

技能


iOS

  • Objective-C、Swift 都會,Swift 較為精通
  • UIKit、SwiftUI 都會
  • POP:有在使用,並且了解 POP 要解決的問題
  • 使用過的架構:
    • MVVM:使用 KVO 的方式監聽 ViewModel
    • Clean Swift:這是後來我修改使用的 template
  • 套件管理:CocoaPods、Carthage、SPM 都會用,有用CocoaPods、SPM 製作過 Library
  • 有買 iOS Essential Developer 學習 TDD、System Design
  • Swift Script:研究 App Clip 時,使用 Swift Script 來批次產生 App Clip Code。
  • Vapor:工作需要簡單的 Server 時拿來架在 Heroku 上,Leaf、Fluent 都有用過


CI / CD

  • 熟練 fastlane 各項操作
  • 把通用的 fastlane 整理成可以復用的 Fastfile,透過 improt 給不同的專案使用
  • 架過的的 CI Server:Bitrise、Github Action
  • 把通用的 Github Workflow 整理成可以復用的檔案,透過 git subtree 的方式給不同專案使用


Design

  • 喜歡學習各種 UI/UX 相關的知識,從 UI Flow、Flow Chart、Wireframe 到 Persona、User Story、Customer Journey Map 都有所了解
  • 會看 HIG 及 WWDC 裡 Design 相關的 Session  
  • 目前有在參加一個 UX 的讀書會


MDM

  • 熟練 MDM 各項操作 
  • 蘋果原生的 Profile Manager、Jamf 都會 
  • 在綠夾克時針對公司使用情境設計適合的架構 
  • DEP、VPP 都會用

其它

  • 熟練 git 各項指令操作,使用 tig 加速操作 
  • 喜歡使用研究各種 command line 加速工作流程,使用 fish shell,這是我的 dotfile
  • 有能力設計關聯式資料表,了解正規化




工作經歷

光禾感知, 軟體工程師, 2020.3 ~ Now

  • 兄厲害
    • 兄弟象的 App,舊的程式是 Obj-C,新的功能都用 Swift 開發。
    • 九宮格功能:用 Socket 接收從球場偵測到棒球進壘點的位置。
    • 競猜功能開發:使用者在每個半局開始之前,可以選擇猜測球會落在哪個象限最多,在賽季結束後,排行榜。
    • 後端轉移時,撰寫 E2E Test 以保證沒有缺漏。
  • 桃猿 5go 棒
    • 桃園棒球場的 App,主要功能有:球場導航、訂餐、賽程資料。
    • 自己獨立從零開發完成,用 Swift 撰寫,使用 Clean Swift 架構。
    • AR 導航:預先在球場的各個出入口放置不同的圖像,App 掃描時判斷出使用者在球場的位置,便可進行導航。
    • 2D 導航:根據需要控制 SVG 亮起部分的區塊。
    • 輸入球場座位資料:因為球場座位過於複雜沒有規律可循,使用 Python 讀取座位資料的 csv 檔,轉成 JSON 檔讓 iOS 專案讀取,如果以後座位有修改,只要簡單調整 csv 裡面的資料後,重新跑 Script 就有新且正確的座位資料了。
    • TensorFlowKit:將原本 TensorFlow 提供 Classification 的 API 再作一層封裝,只要要把訓練好的模型放進去,就可以直接呼叫 function 取得該圖片的辨識結果了。用 CocoaPods 製作的。
  • OSENSE 建模 App(截圖
    • 把蘋果 ObjectCapture 的功能移到雲端上,使用者只要繞著想要建模的物品拍照一圈,App 把圖片上傳到 Server 建模完之後再下載下來,就可以直接用 App 看建出來的模型。
    • 使用 SwiftUI 開發。
  • NFTxAR App
    • 使用 WalletConnect 連結 MataMask 取得錢包位址,讀取錢包裡的 NFT 裡的圖片,再作一些 AR 特效給予這個 NFT 賦能。
    • ARQuickLookKit:在 AR 效果裡因為我們需要用程式產生自己需要的 Node,但是這就沒辦法使用原生的 ARQuickLook,所以我們自己把 ARQuickLook 裡的拖曳、放大縮小、旋轉、CoachView 等功能都自己寫一遍,為了方便之後其他專案可以使用,我用 Swift Package Manager 打包成一個 Libaray 方便之後復用。
    • 用 SwiftUI 撰寫,主要功能都完成了。
  • 睡眠實驗 App 
    • 公司另一個專案用來收集睡眠資料的 App。在受測者睡覺的一個小時裡,用手錶每秒紀錄十次陀螺儀的角度,結束後把資料傳到手機,再輸出到電腦給同事分析。
  • 快速瀏覽 3D 模型 App
    • 公司內部使用的工具。
    • 發覺公司時常會有各種情況需要查看一個模型在 AR 投放下是否正常,但因為 .usdz 只能在 Mac 開啟,不是每位同事都有 Mac,而且有時真的用手機 AR 看出去效果還是有差。
    • 於是我寫了一個模型上傳網頁,把模型上傳到 Firebase Storage,然後再寫一個 App 把模型下載下來顯示在 ARQuickLook 上,讓公司裡任何人都可以快速將模型用 AR 投放出來,過程完全不需要經手工程師。

綠夾克, iOS 工程師, 2017.4 ~ 2019.8

  • 這是一家作高爾夫領域服務的公司,我負責的是給球場使用的產品,裡面包含:球車、球場管理、餐廳三個 iPad App。
  • 期間完成的大型功能有:
    • 讓洞玩法:一種台灣高爾夫球界很盛行的玩法,將四個人分成兩隊比賽,也可以一次設定多種比賽組合。
    • 通訊:讓管理者可以對桿弟做群發訊息,桿弟對管理者回報問題。
  • MDM:
    • 我們主要使用的功能有: 批次更新單一球場裝置、Single App Mode、設定 Wifi、Self Service、Layout Setting。
    • 原本公司是用自架的 file manager 管理 iPad,但是非常不穩定,時不時會失聯,後來說服公司導入 Jamf 管理 iPad,穩定度就大幅的提升了。
    • DEP、VPP 也都有在使用。 
  • 使用 GitLab CI、Code Review、daily stand-up meeting

柯思科技, 工程師, 2016.8 ~ 2016.11

  • 開發一個行動支付的專案,包括銀行帳戶綁定、信用卡綁定、儲值、支付、提領、餘額顯示......等功能。
  • iOS 裡面密鑰交換(Diffie–Hellman Key Exchange)的部分也是我寫的,因為我對密碼學很有興趣,大學時還去修電機系碩專班的密碼學。  
  • 除了 iOS,Server 也寫了 27 個 API 和另外 6 個與銀行串接的 API。 

學歷

中原大學, 學士, 資訊管理, 2011 ~ 2015

  • 大三做專題時開始自學 iOS,當時做了一個睡眠相關的 App,後來找商設系的人幫忙設計 icon 上架。