標籤: Swift

簡介 iOS Native 與 Web 的互動方式

有的時候一些跨平台共用的頁面會使用網頁的方式打造,在 iOS 的世界裡我們可以使用 WKWebView 呈現網頁內容,除了單純的呈現之外,彼此的互動也是不可或缺的一環。這篇文章將會簡單介紹該如何達成網頁與 iOS 原生程式碼之間的雙向溝通。

繼續閱讀 ➜

watchOS app 開發筆記:Complications

這一篇主要是要紀錄如何設定 Apple Watch 的 Complication。

Complications 是錶面上可讓使用者選擇的小元件,需要使用 ClockKit 開發 (有些畫面可以用 SwiftUI 開發),它的用途是在特定的時間,顯示相對應的資訊。

Apple Watch 內建數十種錶面,每種錶面支援的 complications 數量 / 位置 / 尺寸都不盡相同,根據不同的尺寸跟風格,定義了多種不同的 families,每個 familiy 支援不同的 templates,我們使用 template 來設定要顯示的文字、圖片、或儀表圖。各種不同 families 的長相可以參考這份文件

繼續閱讀 ➜

watchOS app 開發筆記:傳遞資料

這一篇筆記主要是要記錄如何在 iPhone app 跟 watchOS app 之間傳遞資料。

iPhone 跟 Apple Watch 的溝通方式

iPhone app 跟 Watch app 可以透過設定相同的 App Group 共享檔案,也可以透過 WatchConnectivity 溝通,App Group 的方式沒什麼好說的,所以來紀錄 WatchConnectivity 的作法。它主要分為兩種方式:

繼續閱讀 ➜

整合 Unity 到 SwiftUI App

最近剛好有機會要整合 Unity 到 SwiftUI 開發的 app 裡頭,整個過程不算難,但是蠻繁瑣的。網路上的資料絕大部分都是跟 Objective-C / UIKit 的整合,比較少 Swift / SwiftUi 相關資料,所以趁著記憶猶新的時候把它記錄下來,希望可以幫助到其他人以及未來的自己。

從 Unity 2019.4 的版本開始,它提供了 UaaL (Unity as a Library) 功能,可以把 Unity 專案匯出成 framework 讓其他程式使用,開啟了原生平台與 Unity 互動的更多可能性。你可以只用 Unity 開發遊戲或其他精美畫面的部分,剩下的則是使用原生平台(例如 iOS 或 Android)開發。

我使用的開發環境是 Xcode 12.5 + Unity 2020.3.15f2 LTS,預期達成以下目標:

  1. 在 SwiftUI 顯示 Unity 的畫面
  2. iOS 跟 Unity 可以雙向傳遞訊息

先附上 sample code。這篇文章會有大量程式碼,也會假設你對 Xcode 跟 Unity 的操作有基本的認知,廢話不多說,讓我們開始吧!

繼續閱讀 ➜

What Time: 一個寫給孩子的小玩具

我的小孩逐漸長大,到了需要看得懂時鐘的年紀了,但經過多次的嘗試,無論是看圖學習或是寫練習本,他就是記不住要怎麼看指針時鐘。

還好,我是一個工程師,而且是一個會開發 iOS App 的工程師。

既然小孩會被手機 app 吸引、研究報告又證實在遊戲中學習的效果好,那我就來開發一款 app 讓孩子可以不停的練習吧。所以趁著防疫期間,我就做了一個很簡單的 app,它會隨機顯示時間,只要正確輸入顯示的時間,就會再隨機顯示另一組時間。

就是這麼簡單樸實的一個小東西,卻可以讓小孩玩得不亦樂乎,而且效果驚人,不到一個星期他已經會看時鐘了!

有興趣的人可以來這裡下載原始碼,自己安裝到手機上玩。

iBeacon 的 Swift 開發筆記

最近因為工作上的需求,需要透過 app 與支援 iBeacon 的裝置溝通,所以整理了一些筆記。在 iOS 的世界,app 可以作為 iBeacon 的接收者,也可以讓裝置作為 iBeacon 的發送者,這裡我只紀錄前者(接收者)的開發。

繼續閱讀 ➜