方格精選

vocus tech|iOS 工程師前進東京!參加 try! Swift Tokyo 研討會的學習與啟發(下)

更新於 發佈於 閱讀時間約 11 分鐘

在上週發布的文章 vocus tech|iOS 工程師前進東京!參加 try! Swift Tokyo 研討會的學習與啟發(上) 當中,我們分享了 try! Swift Tokyo 的幾個精彩議程以及學習,本篇文章接續著研討會的技術話題,將從壓軸議程開始,與格友們分享我們對於 app 模組化以及架構的理解與學習,同時,我們也想分享幾個研討會的幕後花絮,一起來看看主辦方在活動規劃上有什麼值得學習的小巧思吧!

透過模組化資料流,建立更好測試與維護的架構

最後一天的壓軸講者是 Krzysztof Zablocki,他是一位非常資深的工程師,曾開發許多開源專案,也是輔導過各大企業的 iOS 資深顧問,特別著重 app 架構、模組化、可測試性的技術主題。先前在社群上讀過幾篇這位講者發表的相關內容,這次非常榮幸也非常幸運能見到本人進行壓軸分享。

這次的議程著重在分享「模組化」以及「可組合」帶來的好處,最後講者分享了一個新的開源工具,可以幫助非技術人員快速透過抽換資料源來測試當前的畫面。

在講者的範例中,可以看見一個頁面的 View Model 被注入一個 Data Provider,而這個 Data Provider 由「提供資料的 Data Source」、以及「轉換資料的 Transformer」 組合而成,這種被組合的模式帶來幾個好處:

  1. 容易抽換,確保可測試性
  2. 達成「單一職責原則」,使業務邏輯更乾淨地被拆分
  3. 維持「開放/封閉原則」,讓未來新的更動可以輕易擴展
講者分享 Composed Pipeline 帶來的好處

講者分享 Composed Pipeline 帶來的好處


iOS 近年興起的架構 TCA(The Composable Architecture)也是著重於「模組化」、以及「可組合性」,並且透過 Dependencies 來實現介面隔離以及資料抽換,在模組化的架構、以及 State-driven 的原則之下,搭配 SwiftUI 的 Preview 功能,開發者可以非常輕易的 mock 出各個畫面,並且串起頁面之間的跳轉邏輯,在開發效率、擴展彈性、以及可測試性上,都有十足的提升。

vocus iOS app 目前即採用 TCA + SwiftUI 的模組化架構,在這個議程的前半段,我非常喜歡也認同講者提出的模組化 Best Practice,更讓人驚艷的是,議程的後半段,講者實作了一個即時測試工具,讓開發者或者是非技術人員,能透過更改模擬的 JSON 回傳值檔案,即時看見畫面上的渲染結果,這能減少設計定稿的時間,也能提升產品協作的效率。

最後,我很喜歡講者結語中的其中一個提醒:「架構不必為了易用而過度複雜,有些時候你只需要花一點點心力,就能重新 empower 你的團隊」。

好的軟體架構不光只考量到工程面的最佳解,「團隊」也是非常重要的一環,也因此,在技術選型的路上沒有絕對的標準答案,讓架構保持可測試性以及可擴展性,留意團隊開發與協作的效率,就能更容易找到適合你的團隊的解決方案。

研討會亮點:語言不是問題,主辦方提供的 AI 逐字稿功能

作為以 iOS 開發者為主角的研討會,活動本身有一款官方的 app 也是很合理的事情。在活動開始前,與會者就能先在 App Store 上下載這款研討會官方 app,在上面可以看見每一天的議程安排、講者介紹、交通位置等資訊,在三天的研討會當中,扮演了很重要的角色。

在 try! Swift Tokyo 研討會當中,有超過一半的議程都是純英文進行,其餘議程則是以日文進行,為了照顧到各國開發者的聽講體驗,大多研討會都會提供即時翻譯的耳機,搭配現場的專業口譯員進行即時口譯,使得所有與會者都能吸收演講的內容。

今年的研討會有一個新嘗試,主辦方在官方 app 當中與 Flitto 合作,加入了「AI 逐字稿」功能,各國的與會者都能在 app 上選用自己習慣的語言,在議程進行的當下,就能看見講者的即時逐字稿,對於需要日文翻譯成英文/中文的非本地開發者,或者是需要英文翻譯成日文的當地開發者而言,是一個非常貼心的功能。

AI 即時翻譯讓與會者都能輕鬆參與議程進行

AI 即時翻譯讓與會者都能輕鬆參與議程進行


對了,也想分享一個有趣的小故事:

這個功能在使用者將 app 退出前景並重新回到 app 時,即時翻譯的功能就會被暫停,必須重新切換 tab 才會重啟,正當台灣的開發者們發現這個小小 bug 想要嘗試修復的時候,就發現這個 app 的 GitHub Repository 上已有人發了 PR,已經找到問題、也修復好準備被 Review 了,這就是 iOS 工程師社群的魔力吧!

研討會亮點:促進交流的互動設計

在第一天入場的時候,與會者除了拿到名牌,還會拿到一份貼紙,主辦方鼓勵開發者可以在名牌上貼上關於自己的標籤,例如「English OK」、或者是「我寫 SwiftUI」這樣的個性化設計,來讓開發者們可以透過名牌更快與人建立連結。

在會場中,甚至看到有位開發者自己帶了電子顯示器,在名牌上外掛了自己的個人資訊與 QR code,真是太酷了!

開發者可以客製化裝飾自己的研討會名牌

開發者可以客製化裝飾自己的研討會名牌


在每一場精彩的演講之後,就會接著一段講者的 Office Hour,主辦方安排了一個座位區,讓對於講者分享的內容有興趣交流的開發者們,可以聚在這個地方向講者提問,可以看到各國開發者們在此交流聊天,甚至也有開發者直接拿出電腦請教講者問題,是一個很棒的交流機會。

開發者們專注地聽講者的會後分享

開發者們專注地聽講者的會後分享


在會場的二樓空間,是贊助商的攤位區,為了促進開發者與贊助商攤位的互動,主辦方提供了一個集章卡,只要造訪每一個攤位,集滿所有的贊助商貼紙,就能玩一次研討會專屬的「一番賞」,很喜歡這個精心的設計。

開發者可以透過與贊助商攤位互動來完成集章

開發者可以透過與贊助商攤位互動來完成集章


每個贊助商攤位都有不同的互動任務,例如快問快答、填問卷抽獎、扭蛋機、甚至還有贊助商的攤位直接擺了一台電腦,提供一些題目,讓經過的開發者可以隨意坐下開始解題,就像是 Street Piano 一樣,就算只是旁觀的觀眾,也很有滿滿的參與感。

在第一天還沒習慣研討會的氛圍,也不太敢跟人互動的時候,這些活動讓與會者可以更容易跨出第一步,先跟攤位聊天互動,一邊破冰、一邊也能讓贊助商傳達他們想宣傳的內容,是讓人印象深刻的研討會體驗之一。

攤位上正在透過投票調查開發者的開發習慣

攤位上正在透過投票調查開發者的開發習慣


研討會亮點:超迅速上架的議程影片

研討會精彩的議程實在太多了,總有那麼幾個議程,會想讓人重新再看一次。

過往的研討會通常會在活動結束後數週,才會完成影片的編輯以及上傳。今年的研討會幾乎是在活動結束後的隔一天,就完成第一天議程影片的上架,緊接著所有影片都完成公開發布,這樣的速度讓眾多參與研討會的開發者都十分讚嘆!

如果你是今年沒辦法到場參與 try! Swift Tokyo 的開發者,別忘了到官方頻道回顧當天精彩的議程!

官方頻道可以看到歷屆研討會的議程影片

官方頻道可以看到歷屆研討會的議程影片


關於研討會的三個關鍵學習

在這場國際研討會中,可以看見在不同的技術子領域,都有開發者默默地耕耘,也正在閃閃發光,在他們身上,也能看見他們對世界的好奇,還有對技術的熱情。回顧這趟旅程的經驗,給了我們三個很大的學習,也是給團隊很好的提醒:

Embracing new technologies

新的技術背後可能代表新的使用情境、或者是新的典範轉移,團隊不一定會導入所有的新技術,但要時時刻刻保持著敏銳的嗅覺,去擁抱、探索甚至嘗試新技術帶給產品的全新可能性。

Dive into topics

在開發產品的同時,也在擴展團隊對於各個子領域的知識邊界,從研討會的講者身上,可以看見每個子議題都是一個新的世界,當你試著走近一步,就能以更接近問題本質的角度,讓團隊遭遇的問題有全新的解決方法。

Show your work

很多時候,團隊會因為太多考量或者包袱,而延後了獲得回饋的時機,在這個做出原型(prototype)或是 POC 愈來愈容易的時代,用「成果」溝通也逐漸變成有效率的方式。提前秀出你的成果,將更有機會獲得有價值的回饋,透過展示的過程,開發者也能重訪這個問題的技術解法,將實作過程的學習深化到團隊以及自己身上,讓每一次的嘗試都有意義。

帶回研討會的學習與能量繼續前進

研討會最讓人興奮的,不只是議程中講者的精彩分享,更多的是在會場內外與各國開發者的交流,從這些交流與聊天裡面,可以更認識 iOS 不同領域的專業技術、可以更認識不同國家的文化、也能對外分享我們的產品以及台灣的文化(這次帶了綠色乖乖成功與外國朋友分享台灣的神秘力量),對我來說,都是非常難得而寶貴的經驗。

這次在會場中的交流時間,認識了來自日本、西班牙、義大利、俄羅斯、宏都拉斯、南非、美國、紐西蘭等等不同國家的開發者,有些開發者正在日本工作,從他們身上可以更認識日本的軟體團隊文化,有些開發者是後端工程師,利用下班後的時間自學 iOS 開發打造自己想做的個人產品、也有開發者的本業甚至是牙醫,看見市面上的軟體無法滿足自己工作的需求,於是自己跳下來開發產品,讓人非常佩服,也讓人印象深刻。

今年也有至少 20 位台灣的開發者一起參加,很開心能在 try! Swift Tokyo 研討會裡面,與許多推特上的網友相見歡,在台灣滿少有機會跟這麼多 iOS 開發者一起交流學習,反而是這次研討會讓大家團聚了。

除了這些開發者之外,這次也認識了日本當地優秀的大學生,他們同樣熱愛 iOS 開發這個領域。這次 try! Swift Tokyo 研討會也有提供學生贊助的方案,若學生提前申請,即可獲得免費門票,甚至是機票與住宿的補助。如果你也是投入 iOS 開發的學生,非常推薦可以參加這場研討會,除了可以更認識 iOS 的最新開發生態之外,也能與各國開發者建立起人脈與連結。

很高興有機會參與在這場開發者盛會之中,也很榮幸在研討會中認識了來自各國的開發者。帶著這些滿滿的學習與能量,我們會繼續努力,期待很快能跟各位見面!

研討會最後一天的大合照,真的好多人啊!

研討會最後一天的大合照,真的好多人啊!



加入我們!在創作者經濟的前沿一起探索吧!

vocus 不斷在拓展創作者經濟的無限可能,我們的 app team 也正在擴大招募中!

在我們的想像裡,app 將能拉近創作者與粉絲之間的距離,讓好的內容更容易被看見,也讓互動更容易發生,為了達到這個里程碑,我們正在尋找合適的 app team 隊員,希望能夠找到這樣的你:

  1. 認同「內容有價」,相信好的內容值得被看見,也值得被支持
  2. 相信「使用者中心」的價值,以目標使用者做價值判斷
  3. 總是擁抱更好的可能,永遠帶著發亮的眼睛在打造產品

app team 的核心文化是「Stay Sharp, Stay Fun」,如果你是身懷絕技的 iOS / Android Developer,跟我們一樣喜歡跟著新技術持續學習,也喜歡帶著玩心一起打造產品,歡迎你準備好萬無一失的履歷,和我們一起在創作者經濟的前沿探索吧!

加入我們:


留言
avatar-img
留言分享你的想法!
格編⭐桑桑-avatar-img
2025/04/28
看完都想學寫 code 了
Mercteria-avatar-img
2025/04/28
那個電子紙名牌應該是 Badger 2040,原來真的有人會帶出去 XDD
Hokila Jan-avatar-img
2025/05/06
想延續你的感動嗎,台灣的 iPlayground 正在徵稿中,6/30 截止。
格編⭐桑桑-avatar-img
2025/04/30
🙌 格編來發問:格友們念的大學&科系大調查🕺提及了這篇文章,趕快過去看看吧!
閒人|Kuiza-avatar-img
2025/04/29
在分享中看到一些平時會被延遲反應的狀況(或問題),都被立即解決了,好讚嘆工程師。(不懂這個領域但覺得厲害的 me)
avatar-img
方格子 vocus 官方沙龍
365.2K會員
3.3K內容數
哈囉,歡迎來到方格子 vocus 的官方沙龍! 在這裡你可以參與方格子 vocus 的發展旅程,接受到所有關於 vocus 的最新動態,包含平台重大功能更新、活動消息、各房間發佈的最新內容,甚至是徵才資訊等等,現在就按下「加入」,與 vocus 一起展開精彩的創作冒險吧!
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
在上一篇文章當中,我們分享了 try! Swift Tokyo 的幾個精彩議程以及學習,本篇文章接續著研討會的技術話題,將從壓軸議程開始,與格友們分享我們對於 app 模組化以及架構的理解與學習,同時,我們也想分享幾個研討會的幕後花絮,一起來看看主辦方在活動規劃上有什麼值得學習的小巧思吧!
Thumbnail
在上一篇文章當中,我們分享了 try! Swift Tokyo 的幾個精彩議程以及學習,本篇文章接續著研討會的技術話題,將從壓軸議程開始,與格友們分享我們對於 app 模組化以及架構的理解與學習,同時,我們也想分享幾個研討會的幕後花絮,一起來看看主辦方在活動規劃上有什麼值得學習的小巧思吧!
Thumbnail
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
本文介紹瞭如何在SwiftUI中調整元件的對齊方式,包括置中、向左/向右/向上/向下對齊的方法。透過調整HStack、VStack以及frame的maxWidth、maxHeight和alignment屬性,可以達到想要的對齊效果。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
這個章節主要介紹了Swift程式語言中物件導向程式設計的基本概念,包括類別、建構子、公開、私有、受保護等等的概念。同時,也介紹了繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射等進階特性。
Thumbnail
此章節旨在解釋Swift語言中函數的基本結構和操作方式,包括函數的聲明、呼叫、參數和返回值。閱讀這個章節可以幫助你理解並掌握如何在Swift編程中有效地使用和管理函數。
Thumbnail
此章節旨在解釋Swift語言中函數的基本結構和操作方式,包括函數的聲明、呼叫、參數和返回值。閱讀這個章節可以幫助你理解並掌握如何在Swift編程中有效地使用和管理函數。
Thumbnail
本章節介紹了如何建立並設置Swift項目以及如何選擇和設置Swift代碼編輯器。這包括在Xcode和命令行中建立Swift項目,選擇Xcode、Visual Studio Code或AppCode作為編輯器,以及如何使用SPM安裝插件。
Thumbnail
本章節介紹了如何建立並設置Swift項目以及如何選擇和設置Swift代碼編輯器。這包括在Xcode和命令行中建立Swift項目,選擇Xcode、Visual Studio Code或AppCode作為編輯器,以及如何使用SPM安裝插件。
Thumbnail
本章節旨在為讀者提供Swift程式語言的基礎知識,包括其基本語法、註解方法和變數使用方式,並通過具體的程式碼示例來說明這些概念。這將幫助讀者理解Swift的基本結構,並學會如何在Swift中定義變數並使用註解。
Thumbnail
本章節旨在為讀者提供Swift程式語言的基礎知識,包括其基本語法、註解方法和變數使用方式,並通過具體的程式碼示例來說明這些概念。這將幫助讀者理解Swift的基本結構,並學會如何在Swift中定義變數並使用註解。
Thumbnail
這份文件的目的是介紹Swift語言,包括它的特性、應用範疇,以及誰在使用它。它也提供了一些學習Swift的資源和工具,以及一些常見的Swift庫和框架。
Thumbnail
這份文件的目的是介紹Swift語言,包括它的特性、應用範疇,以及誰在使用它。它也提供了一些學習Swift的資源和工具,以及一些常見的Swift庫和框架。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
Part.1 搞定基本的 UI 開始開發 iOS App。 首先準備一台 Mac,然後安裝 Xcode,新增專案,系統即刻生成基本的專案結構。coding 的起點在檔案 ContentView.swift: import SwiftUI struct ContentView: View {  
Thumbnail
Part.1 搞定基本的 UI 開始開發 iOS App。 首先準備一台 Mac,然後安裝 Xcode,新增專案,系統即刻生成基本的專案結構。coding 的起點在檔案 ContentView.swift: import SwiftUI struct ContentView: View {  
Thumbnail
本篇文章將分享手機App設計教學,並往後介紹使用Flutter開發App的相關知識和技巧。透過這系列的分享,讀者將能夠學習如何利用設計和程式開發技能來製作一個App。文章中也提供了一些靈感來源和教學資源,幫助讀者進行設計和開發的思考和學習。
Thumbnail
本篇文章將分享手機App設計教學,並往後介紹使用Flutter開發App的相關知識和技巧。透過這系列的分享,讀者將能夠學習如何利用設計和程式開發技能來製作一個App。文章中也提供了一些靈感來源和教學資源,幫助讀者進行設計和開發的思考和學習。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News