LINE 開發社群計畫: 20190703 iOS Taipei WWDC Recap @LINE

大家好,我是 LINE Taiwan Technical Writer – Claire Wang。「開發社群計畫」是今年 LINE 台灣開發者關係與技術推廣部門的一大重點,今年一整年,LINE 將致力於舉辦對內的技術交流、教育訓練,以及對外的社群聚會、校園演講、開發者徵才日與開發者大會等 30 場以上各式各樣的活動。我們希望創造更多技術分享與跨國交流的機會,同時持續招募優秀人才加入 LINE 台灣的開發工程團隊!

本次聚會邀請 iOS 社群的朋友們來到 LINE 台北辦公室,活動現場交流的氣氛非常熱絡,iOS 社群所展現的熱情令人印象深刻!而活動的內容也相當豐富,共包含三個講座:首先,分別由 LINE 台灣 iOS 工程師 JJ Lin 與 Kuan-Wei Lin 分享於今年六月份前往美國加州參加 WWDC 2019 (Apple Worldwide Developers Conference 2019) 的活動心得,以及和 Apple 工程師當面討論技術問題的難得經驗 ; 最後,則由 iOS Taipei 創辦人 Aki Yu 以有趣的情境對話開場,進而聚焦於如何解決網路連線造成 APP 連線速度慢的問題。

WWDC Thoughts and Takeaways / JJ Lin

投影片

本次活動的第一個講座是由 LINE 台灣 iOS Developer – JJ Lin 分享 WWDC 2019 與會心得。講座一開始,JJ 先說明 LINE 公司文化鼓勵員工參加外部活動,將所見所學帶回公司與團隊成員分享,激發新的創意。而這次便是接受公司的全額補助,前往美國加州舊金山參加 WWDC – Apple 一年一度的全球軟體開發者大會。接著,JJ 強調參加 WWDC 最值得的,是無法事後透過錄影重現的部分,包括與 Apple 工程師面對面交流,以及參觀最新應用的 demo。

在面對面交流的部分,WWDC Technology labs 讓開發者可與 Apple 工程師當面針對 iOS 相關開發交換想法,JJ 並觀察到 Lab 現場資深工程師的比例頗高,感受到 Apple 對於資深工程師的重視;而 App Store Labs 則給予獨立開發者和 Apple 人員討論 rejected apps 的好機會。這次 JJ 透過與 Apple 工程師當面討論,應證 CollectionView flow layout auto-sizing 的最佳解法與背後的原理。此外,也討論到在 SwiftUI 推出後,最多人想問的是 UIKit 是否就此被淘汰? 開發者是否應全面擁抱 SwiftUI?

對此,Apple 工程師表示,儘管 SwiftUI 備受矚目,但仍有其侷限。而 UIKit 雖然討論度不及 SwiftUI,但 Apple 內部仍有相當多 App 及 Framework 是使用 UIKit 實現,例如 SwiftUI 的 list 便是應用 UIKit table view。再加上 Compositional Layout 和 DiffableDataSource 等有效解決開發者痛點的新功能,因此並不需要擔心 UIKit 會被 deprecate 的問題。能夠當面聽到 Apple 工程師的說明,這麼難得的機會讓 JJ 感到非常振奮!而出於對 UIKit 的熱忱,JJ 也特別在分享中提醒,經過實驗之後,在設定 compositional layout 的 auto-sizing 時,仍需要特別注意 constraint conflict 的問題。

而在最新應用的 demo 部分,JJ 分享 WWDC Pro Studio 中所展示的各種 AR 應用,包括透過 AR 影像觀看 Mac Pro 內部的系統設計、運用 Reality Composer 於 iPad 上輕鬆地建立 AR 應用,使人機情境融為一體,互動更為流暢,同時也是開發者建立 side project 的好工具。還有展示藝術家取向、電影工作室等級的 Mac Pro,現場 demo 所呈現的視聽效果令人驚艷。JJ 建議未來參加 WWDC 的朋友務必撥時間給這類議程,將能得到更多的收穫!

WWDC19 CI & Automation and Beyond / Kuan-Wei Lin

投影片

Kuan-Wei Lin 同樣接受公司贊助參加 WWDC 2019,身為 LINE 台灣 Automation Developer,這次特別專注於 CI (Continuous Integration) 與測試自動化相關主題。在出發至 WWDC 之前,Kuan-Wei 做足功課,發現面對面向 Apple 工程師問問題,將得到最有價值的答案,也因此直接把 code 帶到 lab 現場,甚至得到在 Apple CI & Automation Developer – Honza Dvorsky 面前 demo 的機會,進行了一次高效率的討論,並得到相當明確的回應:針對 auto-test for app 不穩定的狀況,Honza Dvorsky 說明機器的容錯率小於人類,導致偶爾產生不穩定的狀況,建議開發者在收集問題後向 Apple 工程師反應。另外,在進行 App test 時,WebView 應作為輔助工具,而非主體,開發者仍應以 native approach 確實執行建置的步驟。

而從 WWDC Testing in XCode 的相關演講,Kuan-Wei 也帶回第一手訊息,分享最新功能 XCTESTPLAN 提供客製化環境,以及在地化 (localization) 功能,讓開發者可根據語言、地點、區域等條件進行設定,提高測試的效率與彈性。此外,也分享 Apple XCTest Engineer 針對 CI workflow 建立流程的說明,並與 LINE iOS CI 做比較,發現兩者的流程與作法都非常接近,也應證 LINE iOS test framework 與 Apple 的最新概念持續同步。

在這次的分享中,Kuan-Wei 還提到一個意料之外的亮點:WWDC 週邊的場外研討會 – AltConf。這場研討會提醒參加者在引進新的 library 或 machine 前,須思考成本效益,以及並非所有測試都能被自動化,必須做出適當的取捨。而當進行測試時,應盡量採用 unit test 以降低 UI test 容易中斷並阻礙 CI 的困擾。Kuan-Wei 認為,這類研討會不是由 Apple 主辦,更能客觀探討 iOS 與 macOS App 開發的相關議題,建議未來 WWDC 的參加者如有餘力可以考慮參加。

網路淺談- Cache, Local Storage, and Web / Aki Yu

投影片

今晚的第三位講者:iOS Taipei 創辦人 Aki Yu,在開場時模擬與老闆之間的對話,寫實又有趣的風格引起與會者的共鳴。接著,聚焦於 HttpGet 與 RTT 的異常反應,導致使用者難以直覺地找出 APP slow 的原因,這時候,講師便帶領與會者一步步觀察與拆解各項條件,並解釋 App 與 server 之間的運作、說明 cache、local storage 和 web 在其中的關聯性,以及 sample codes 與 error messages 所代表的狀況。講師也在過程中一再提醒與會者思考 cached by whom、Cache-Control value 的意義,以及 Cache 適用於哪些狀況等問題。

經由完整的流程分析,進而帶出 Http request 提高 APP 速度的一些基本原則,解決網路連線造成 APP 連線速度慢的問題。最後總結 combination solution,包含 local storage、HttpDNS、remote configuration 等。講者在結尾時也反問與會者,從講座中觀察到什麼? 產生哪些新的想法? 之後將採取什麼行動? 透過一連串的問題,讓與會者反芻今晚聽到的內容。講者生活化的表達方式、深入淺出的解說、適時的引導,幫助與會者提升解決問題的能力。

活動小結

本次聚會在三個小時當中,由 JJ 與 Kuan-Wei 分享參加 iOS 開發者年度盛會 – WWDC 2019 的難得經驗,並由 Aki Yu 分享改善 APP 連線速度的思路,最後在 iOS 社群充滿熱情的交流下結束。希望透過本活動與 iOS 開發社群分享全新視野、拓展解決問題的思維、激發更多的想法與行動!

立即加入「LINE 開發者官方社群」官方帳號,就能收到第一手 Meetup 活動,或與開發者計畫有關的最新消息的推播通知。▼

「LINE 開發者官方社群」官方帳號ID:@line_tw_dev

關於「LINE 開發社群計畫」

LINE 今年年初在台灣啟動「LINE 開發社群計畫」,將長期投入人力與資源在台灣舉辦對內對外、線上線下的開發者社群聚會、徵才日、開發者大會等,預計全年將舉辦 30 場以上的活動。歡迎讀者們能夠持續回來察看最新的狀況。詳情請看 2019 年 LINE 開發社群計畫活動時程表 (持續更新) https://engineering。linecorp。com/zh-hant/blog/line-taiwan-developer-relations-2019-plan/)

徵才訊息

《LINE 強力徵才中!》與我們一起 Close the Distance 串聯智慧新世界 >> 詳細職缺訊息