Quantcast
Channel: swift – AppCoda
Viewing all 172 articles
Browse latest View live

利用 Google Translation API 添加即時翻譯功能 讓你的 App 更加升級!

$
0
0

在 Google 為開發者提供的服務和 API 中,其中一個就是雲端翻譯 API,它能提供基於機器學習 (Machine Learning, ML) 的翻譯功能,將任何字串轉換成任何支援的語言形式。目前所支援的語言清單已經為數眾多,在未來也只會更完整。Google 提供了預先訓練的翻譯模型,但我們也可以訓練客製化的模型。在本次的教學中,我們馬上就會看到,翻譯是可以如此的快速、精準及高品質過程。 在本次文章中,我們會學習如何使用翻譯 API,讓我們可以在 app 中支援及提供即時翻譯功能。為了讓文章更清晰,我們不會訓練任何模型,因為這超出了本次教學的範疇。文章將會集中在 Google 翻譯 AP […]

你可以到 利用 Google Translation API 添加即時翻譯功能 讓你的 App 更加升級! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


給 Swift 工程師的後端指南:用 Kitura 來架設自己的 API 後台

$
0
0

身為一個 Swift 開發者,每天撰寫著 iOS/macOS/tvOS/watchOS 的程式,你的經驗讓你的效率高到破表,一天就可以輕易做出一個線上聊天室介面,兩天就可以做出塗鴉牆介面,你覺得自己的開發速度天下無敵;但不知道為甚麼,突然你覺得有點惆悵:啊,只有介面的程式,就像沒有加珍珠的奶茶,我怎麼樣都喝不下去啊!沒錯,再強的前端,都有可能需要一個後端來配合,才有辦法做出更多樣的應用,以往我們需要團隊作戰,但現在你可以全部都自己來,當個真正的一條龍工程師(不要哭,我知道領 22k 的我們都已經是了)!今天我們就要來介紹,如何用 Swift 來撰寫後端,並且讓後端程式上線服務。 雖然 Swif […]

你可以到 給 Swift 工程師的後端指南:用 Kitura 來架設自己的 API 後台 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

SwiftUI 初體驗: 建構一個簡單 App 讓你了解 SwiftUI 有多強大!

$
0
0

在今年 WWDC 2019 大會之中,最令人振奮的主題演講莫過於開發者工具的改善,而其中最大而最棒的消息就是 SwiftUI 的發佈。SwiftUI 是一個全新的框架,讓你用更少程式碼、並以宣告的方式,來設計及開發使用者介面。 SwiftUI 與 UIKit 不同,UIKit 通常要配合 storyboards 一起使用,而 SwiftUI 則完全建構在程式碼之上。不過,SwiftUI 的語法相當容易理解,而且可以透過 Automatic Preview 來快速預覽我們設計的介面。 因為 SwiftUI 是使用 Swift 所建構而成,讓你可以使用更少的程式碼來完成複雜的 App。更重要的是, […]

你可以到 SwiftUI 初體驗: 建構一個簡單 App 讓你了解 SwiftUI 有多強大! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Swift DSL 實作:利用 Swift UI 寫出簡單又明瞭的 Auto Layout DSL

$
0
0

今年可以說是 Swift DSL 元年,建造者函數 (Builder functions) 與 SwiftUI 讓開發者們看到在 Swift 內設計內嵌 DSL 的各種可能性。雖然這樣說,但 Swift 一直以來都提供了許多 DSL 實作的功能,只是還沒有出現在官方框架而已。舉例來說,我們可以利用自訂運算子 (Operators) 與下標 (Subscripts) 等功能,來寫出簡單又明瞭的 DSL。 DSL:領域專用語言 (Domain-specific Language),指針對某個問題領域特化的語言。比如說 HTML 就是針對網頁結構的語言,JSON 是針對資料結構的語言等等。相較於通用 […]

你可以到 Swift DSL 實作:利用 Swift UI 寫出簡單又明瞭的 Auto Layout DSL 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

利用 SwiftUI 建立表單 UI 體驗更互動的開發過程!

$
0
0

在上一篇教學中,我們簡單介紹了 SwiftUI 的基礎知識,並帶你建構了一個簡單的使用者介面。經濟一星期的探索,即使這個框架現階段還是有些 Bug,但我真的很喜歡利用這個框架來建構使用者介面!這個框架為開發者提供了一個新的方式來開發 UI,讓你以更少的程式碼建構出相同的 UI。 對一些開發者來說,宣告式語法 (Declarative Syntax) 可能還有點陌生,需要花點時間來習慣它。但這就像當初我們從 Objective-C 轉換到 Swift 一樣,一旦掌握到它,你就會喜歡上用宣告式語法來撰寫 UI 程式碼了,因為你可以更自然地描述所需的 App 佈局。結合新的預覽功能,你可以撰寫程式碼 […]

你可以到 利用 SwiftUI 建立表單 UI 體驗更互動的開發過程! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

IGListKit 的演化:一起來看 Instagram 如何逐步解決 App 問題!

$
0
0

IGListKit + MVVM 是 Instagram 對於 iOS UICollectionView UI 與數據解耦的解決方案,IGListKit 的設計理念是以數據驅動,來解決不同 Team 之間的需求,包含不同的數據與不一樣的 Layout。 有關於 Code 說明與範例,我建議你搭配原始碼參考閱讀 IGListKitArchetype。 原始 UICollectionView 再用戶日益增長的 Instagram 有甚麼問題 Instagram 是一款照片與影片的社交平台,目前月活躍使用者已超過 10 億。隨著 Instagram 的成長,因為越來越多的業務性質,Instagram […]

你可以到 IGListKit 的演化:一起來看 Instagram 如何逐步解決 App 問題! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

利用 Xcode 11 的預覽功能 輕鬆測試 App 在 Dark Mode 下的表現

$
0
0

前一陣子,Apple 公開了 iOS 13 第一個測試版本。對一般使用者而言,這個新版本最大的亮點一定是深色模式 (Dark mode)。在設定內滑動開啟此功能後,iOS 就會讓一切變成深色系模式。在深色模式下,電話操作系統會自動為系統內所有的 Apps 和螢幕套用深色主題。一些 Apple 內建的 App 像是 Mail 和日曆,在這個模式下看起來非常好。但是,對於其他開發者開發的 App 而言,就會需要一些工作來讓 App 支援深色模式。 本篇教學的重點,並不是要教你如何在你的 App 內採用深色模式,Federico Zanetello 已經寫了一篇很棒的文章,教你如何在 iOS 13 […]

你可以到 利用 Xcode 11 的預覽功能 輕鬆測試 App 在 Dark Mode 下的表現 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

製作物件池 (Object Pool) 重複利用物件 讓你大大提升開發效能!

$
0
0

建造物件是一件耗時耗力的事。除了需要配置記憶體給它之外,可能還會牽涉到排版、渲染或載入外部資源等耗費大的動作。WKWebView 與 MKMapView 就是這樣的例子,都需要大量的時間去啟動。如果只有一次兩次的話還好,但如果它們經常出現的話,使用者就要常常等它們載入,很影響體驗。 解決的辦法很簡單:重複利用這些物件,省去生成這些物件所需的時間。 說起來簡單,但要怎麼實作呢?如果確定一次只會用一個物件的話,或許可以把該物件宣告成單例,像是這樣: 也就是說,每一次 MapViewController 出現的時候,它都會去把 singletonMapView 抓取下來,然後加到自己的 view 階 […]

你可以到 製作物件池 (Object Pool) 重複利用物件 讓你大大提升開發效能! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


RESTful API 教學:用 Swift 建立屬於自己的輕量 REST 程式庫!

$
0
0

現今大部分的 App 都會與伺服器溝通來交換資料,為了達到這個目的,它們多採用 RESTful API,又稱為 RESTful 網路服務 (Web Serivce)。App 可以使用 REST 傳送請求 (Request) 到伺服器,然後伺服器會回傳回應 (Response) 給使用者端 App。整個通訊是基於 REST 架構所定義的標準規則。開發者能夠藉由整合第三方程式庫到專案、或是實作自己的解決方案,來使用 RESTful API。 在這次的教學中,我將會教大家建立自己的輕量類別 (lightweight class) 來處理網路請求。我會帶著你從基礎開始,一步一步完成一個完整的解決方案, […]

你可以到 RESTful API 教學:用 Swift 建立屬於自己的輕量 REST 程式庫! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

利用 UIViewPropertyAnimator 製作進階動畫 為 App 增強使用者體驗!

$
0
0

動畫很酷,它們是 iOS Human Interface Guidelines(介面設計指南)的重要組成部分。動畫可以幫助開發者吸引使用者注意重要的事情,或者替 App 添加一些樂趣。 在 iOS 中,有幾個方法可以實作動畫,最常見到的可能就是 UIView.animate(withDuration:animations:)。你亦可以使用 CABasicAnimation 為視圖的圖層設置動畫。此外,UIKit 允許你使用UIViewControllerTransitioningDelegate,來自定義視圖控制器呈現的動畫。 在本教程中,我想與讀者討論另一種為視圖製作動畫的方式,就是 UIV […]

你可以到 利用 UIViewPropertyAnimator 製作進階動畫 為 App 增強使用者體驗! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

讓 iPad App 支援 Apple Pencil 2 大大增強使用者體驗!

$
0
0

在 2018 年 10 月,Apple 推出了全新的 iPad Pro 和 Apple Pencil 2.0。不同於上一代的 Apple Pencil,這次官方還為開發者提供了一些有趣的 API 應用方式,以增強 App 的功能與使用者體驗 (User Experience)。在本篇教學中,我將讓你了解如何讓你的 App 支援 Apple Pencil。 來開始吧! 我們將會建立一個名為 Canvas 的 App,透過這個 App,使用者每次用 Apple Pencil 點擊兩下後,就可以從 Bored Elon Musk 這個模擬帳號看到有趣的創意想法。首先,打開 Xco […]

你可以到 讓 iPad App 支援 Apple Pencil 2 大大增強使用者體驗! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

使用 IBDesignable 與 IBInspectable 製作更美觀的 UI 元件

$
0
0

一些開發者不喜歡使用介面建構器 (Interface Builder) 來建構 App UI。一切都可以使用程式來撰寫,即使是 UI 也不例外。我個人比較喜歡混合 Storyboard 與程式來佈局 App。 不過如果要教導初學者使如何建構 App,介面建構器比較能夠無痛上手。使用介面建構器來設計 App UI 是非常直覺的,即使沒有任何 iOS 程式經驗的人也可以入門。最棒的是你不需要撰寫一行程式既可以客製化一個 UI 元件(例如,按鈕)。舉例來說,你可以在屬性檢閱器 (Attributes Inspector) 變更背景顏色或者字型大小。你可以很容易地將預設的按鈕透過屬性的客製化,將其外觀 […]

你可以到 使用 IBDesignable 與 IBInspectable 製作更美觀的 UI 元件 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

結構化 RESTful API 模組與功能 大大提升程式碼的易讀性!

$
0
0

日常工作中,常常需要與後端串接 RESTful API,然而 API 網址常常很難管理與統一路口,今天這篇文章,想與大家分享在公司的經驗,一起規範出一整套 RESTful API 串接的體系與模組。今天這篇文章需要大家搭配源碼閱讀。讓我們開始吧! 要點內容 統一 API 底層入口,利用泛型來解決所有 JSON Data to Model 轉換 規範 API Function 結構,不再讓 URL 散落一地 統一的錯誤獲取,讓 debug 不再頭大 結合 PromiseKit 與 Alamofire,製作屬於你的非同步 API 網路應用 準備工作 這邊我們需要快速建立一個 UI 程式碼。為了聚焦 […]

你可以到 結構化 RESTful API 模組與功能 大大提升程式碼的易讀性! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

SwiftUI 小技巧:利用 border 修飾符 輕鬆為按鈕或文本繪製邊框

$
0
0

有了 SwiftUI ,我們就可以使用 border 修飾符,輕鬆在按鈕 (button) 或文本 (text) 外圍繪製邊框,而且這方法更適用於所有視圖!比如說,你想要創建一個這樣的按鈕: 我們可以在按鈕物件上應用 border 修飾符,來創建有顏色邊框的按鈕: 但是,如果你的設計師想你創建一個像這樣的圓角邊框按鈕,你可以怎樣做呢? 在 Xcode 11 beta 6 版本推出之前,你可以使用 border 修飾符,設定邊框角落的半徑: 但是,Xcode 11 最新的 beta 版本已經棄用了函數調用 (function call)。要創建帶圓角的邊框,你可以如此繪製一個圓角矩形,並覆蓋在按 […]

你可以到 SwiftUI 小技巧:利用 border 修飾符 輕鬆為按鈕或文本繪製邊框 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

利用 Swift 5.1 新功能實作 Fluent Interface 讓程式碼更易讀流暢!

$
0
0

最近,SwiftUI 正如火如荼地在全世界進行公開測試。如果你也有經意或不經意地接觸到 SwiftUI,那你可能會發現,它在設定 View 性質的語法上,跟我們以前學過的很不一樣。 一般在設定物件的時候,我們通常是這樣寫的: 但是在 SwiftUI 裡,我們卻得這樣寫: 差別很大對不對?先不要管句型的細節,光就排版的美感來說,後者不只比前者簡潔許多,它的縮排也很清楚地告訴讀者:後面三行都是第一行的子句,重點還是在第一行。反之,前者的每一行縮排都一樣,看不出重點,而且每一句還都得重複寫一次 imageView 這個變數名,相當累贅。很明顯的,後者的可讀性比較高。 SwiftUI 所採用的這種寫法 […]

你可以到 利用 Swift 5.1 新功能實作 Fluent Interface 讓程式碼更易讀流暢! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


利用 ARKit 偵測與追蹤臉部動作 建立絢麗的使用者體驗

$
0
0

去年 Apple 推出的新功能中,其中一個最創新的功能就是原深感測鏡頭 (True Depth Camera)。原深感測鏡頭對軟硬體工程師來說,支援了 FaceID 這個安全的面部識別系統;而對於開發者,原深感測鏡頭就開創了許多可能性,尤其是在基於臉部互動 (face-base interactions) 這方面。 在開始這篇 ARKit 教學之前,讓我快速說明一下相機的不同部分。原深感測鏡頭和大部分的 iPhone/ iPad 的前置相機一樣,有內嵌麥克風、具七百萬像素的相機、環境光源偵測器 (ambient light sensor)、距離感應器 (proximity sensor)、與揚 […]

你可以到 利用 ARKit 偵測與追蹤臉部動作 建立絢麗的使用者體驗 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

SwiftUI 小技巧:在 iOS 13 實作 Context Menu 加強與設備的互動!

$
0
0

較早之前,Apple 正式發佈了 iOS 13。當中除了深色模式 (Dark mode) 和其他新功能外,最新版本的 iOS 還展示了一種與設備互動的新方法,就是 Context Menu 。 Context Menu 功能與 3D Touch 中的 Peek & Pop 類似。兩者其中一個最大的分別,就是此功能可在所有運行 iOS 13 及以上版本的設備上使用,即使該設備不支持 3D Touch 亦可。如果設備支援 3D Touch,大家就可以使用 Touch and Hold 手勢或 Force Touch,來顯示 Context Menu。 如果設備已升級到 iOS 13,你就可 […]

你可以到 SwiftUI 小技巧:在 iOS 13 實作 Context Menu 加強與設備的互動! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

從零打造基本版 Combine 認識 Functional Reactive Programming

$
0
0

這篇文章可搭配投影片版閱讀。 Apple 平台的開發者社群對於 FRP (Functional Reactive Programming ,函數式反應式程式設計) 的接受,相對於網頁開發者來說算是晚的。即使有了 RxSwift、ReactiveSwift 等開源的 FRP 框架流行,FRP 似乎還是被社群視為是一個艱深難學、不適合一般人的概念。不過,這樣的觀感正在改變中。隨著 Apple 在 WWDC 2019 推出了官方的 FRP 框架 Combine,大家終於發現到 FRP 是未來所趨,學習它好像變得不可避免。 不過,只接觸了命令式程式設計 (Imperative Programming) […]

你可以到 從零打造基本版 Combine 認識 Functional Reactive Programming 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

利用 SwiftUI 控件 讓你更彈性地設計專屬你的按鈕!

$
0
0

按鈕可以啟動 App 的特定動作,可以客製化背景,也可以加入標題或圖示。這個系統針對大部分使用狀況,提供了一些預先設計好的按鈕樣式。你也可以完全客製自己的按鈕。 - Apple 官方文件 我相信我不需要再解釋按鈕的用途,這是一個非常基本的 UI 控制元件,你在所有的 App 中都會看到按鈕的蹤影。按鈕可以處理使用者的觸控動作,以觸發一些動作。倘若你之前有學過 iOS 程式設計的話,SwiftUI 的 Button 與 UIKit 的 UIButton非常相似,不過前者更加彈性及可客製化,讀下去你就會了解我的意思了。我將在這篇文章中詳細介紹 SwiftUI 控件,而 […]

你可以到 利用 SwiftUI 控件 讓你更彈性地設計專屬你的按鈕! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

善用狀態機架構 大幅簡化 View Controller !

$
0
0

我們常常會碰到一個 View Controller 要處理不同狀態的情況,比如說,它本身就提供了編輯與非編輯狀態。如果資料是從網路 API 抓回來的話,那可能要處理載入與錯誤狀態;如果資料缺乏內容的話,也許還要加上空白狀態。這些狀態每一個在處理的事情可能很簡單,但如果全部都丟給同一個 UIViewController 物件去處理的話,那它一定馬上就成為所謂的 Massive View Controller。除了充滿各式各樣的控制流語句之外,它還得一次控管各式各樣的資料與物件,使得出現 bug 的機率大增。 於是,人們為了解決過於肥大的 View Controller,發明出一個又一個的架構,試 […]

你可以到 善用狀態機架構 大幅簡化 View Controller ! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Viewing all 172 articles
Browse latest View live