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

Swift的問號與驚嘆號:可有可無的 Optional

$
0
0
optional-featured

可有可無的 Optional 是 Swift 裡一個非常特別的角色。你看它號稱可有可無,我們卻還要認識他,就知道他多特別了。有了它,不管何種型別的變數或常數,都可以沒有任何內容,也就是無值的狀態。至於這有什麼好呢? 這故事得回到很久很久以前,從沒有 Optional 的程式世界說起。 Optional 發明的緣由 有了變數和常數,我們可以輕易儲存任何型別的資料。但在某些特別的情境,我們希望變數和常數能處於一個沒有內容的狀態。比方我們開發一個處理學生考試分數的程式,宣告變數 peterGrade 儲存班上最聰明學生 Peter 考試的分數。 但是 Peter 很有正義感,很可能為了英雄救美或拯救 […]

你可以到 Swift的問號與驚嘆號:可有可無的 Optional 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


Push Notification教學:如何使用Firebase在iOS實現推播功能

$
0
0
push-notification-featured-2

推播(Push Notification)對一個App而言,是來連結使用者相當重要的一個環節,吸引使用者的目光停留在你的App,讓他們想要使用你的App,產生對App的聯結感。所以我們要通知使用者讓他們知道有些重要的事情發生,像是:喜歡的球隊比賽即將開始了,即時收到西瓜限時30分鐘內特價拍賣,或是這周末後在沙漠有個重要會議。以上的情境想像,我想這些都可能是使用者想要被提醒的。 其中一個可以實現在iOS app的推播功能,就是應用Firebase Notification來執行。 在此教學中,我們會了解如何應用Firebase推播通知,懂得如何一步一步在Xcode介面實現,此份教學將會分成7大部 […]

你可以到 Push Notification教學:如何使用Firebase在iOS實現推播功能 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Swift 程式庫系列之四:Realm, SnapKit, AnimatedCollectionViewLayout, Whisper 以及 YNDropDownMenu

$
0
0
jamie-street-121598

各位 iOS 開發者們,不曉得這幾篇以來的程式庫如何呢?希望我們所介紹的程式庫能對你有所幫助。這週也將繼續介紹我們所挑選的幾個 Swift 程式庫,希望能幫助你在 iOS App 開發的道路上昂首向前。 1. Realm 說到要在 iOS App 裡儲存資料,相信開發者們想到最簡易的方式是使用 UserDefault,而如果是要存取有一定數量且略微複雜的資料,CoreData 想必會出現在選項之中。但 CoreData 在使用上卻不是那麼容易上手,因此現在向你介紹 Realm,這套類似於 CoreData 卻更容易使用的資料庫套件。 Realm 的資料庫設計概念是以 Model(模型)為主,我 […]

你可以到 Swift 程式庫系列之四:Realm, SnapKit, AnimatedCollectionViewLayout, Whisper 以及 YNDropDownMenu 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

ARKit 教學:2D 圖像識別功能

$
0
0

歡迎來到第六回 ARKit 教學系列的文章!本週,我們將談談關於擴增實境 (Augmented Reality, AR) 中的圖像識別功能。自 iOS 11.3 起,ARKit 就能識別 2D 圖像。如果你有興趣學習製作 ARKit 圖像識別 App,這篇教學文章就很適合你了。 Many AR experiences can be enhanced by using known features of the user’s environment to trigger the appearance of virtual content. For example, a museum app mi […]

你可以到 ARKit 教學:2D 圖像識別功能 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

程式碼時光機:應用 Git 版本控制,即使犯錯也不怕

$
0
0

每個人都會犯錯,這是人性的一部分。我肯定每個人都曾在編寫程式碼時犯過嚴重錯誤,嚴重到希望有一部時光機,讓時間倒流回犯錯之前。正因為這種錯誤,每個程式工程師都應該在開發專案中使用版本控制;不使用版本控制的後果,就等於電腦不備份一樣,一個突然的意外或資料遺失就會讓整個專案受到極大影響。 版本控制能讓你回溯之前的專案版本,可以回復遺失的資料,或是查看程式碼的進程。另外,使用版本控制後,與其他人合作同一個專案就容易得多。相信許多人都會同意 Git 是最佳的版本控制系統,而非常幸運地,現在 Xcode 已經將 Git 整合在開發平台內了! 很多人都錯誤以為 GitHub 和 Git 是同一樣東西,但這是 […]

你可以到 程式碼時光機:應用 Git 版本控制,即使犯錯也不怕 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

如何利用 Swift 協定導向撰寫網路層應用

$
0
0

本次教學將講述如何不使用第三方套件,只用 Pure Swift 來實作網路層。那我們就直接開始吧!閱讀完這篇教學內容後,我們的程式碼應該會是: 協定導向 易於使用 易於實作 型別安全 使用列舉 (Enum) 來配置 endPoints 以下是我們最終完成的範例: 只需要使用列舉來輸入 router.request(.,我們就可看到所有可用的 endPoints、以及所需的參數。 首先,來點架構 在創作任何東西時,最重要的是要有架構,這樣以後要找出問題所在就很容易了。我十分相信,資料夾結構是整個軟體架構的關鍵。為了讓檔案井然有序,我們先建立檔案群組,我亦會指示每個檔案應該放的地方。這是專案架構的 […]

你可以到 如何利用 Swift 協定導向撰寫網路層應用 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

開發者指南:如何利用 Core Bluetooth 製作一個監控心率 App

$
0
0

作為 iOS 開發人員,我們非常清楚人類喜歡可連接的應用程式。人類喜歡透過無線設備與其他人相互聯繫,我們期望可以與設備溝通,我們亦開始喜歡、並期望這些無線設備 (通常是「可穿戴設備」) 可以收集和分析關於自己的數據。很多設備已經成為生活中不可缺少的一部分,我們以一個常用短語來形容它們 ── “Internet of Things” 或 “IoT” (物聯網)。目前全球有數十億無線通信設備,在本教程中,我們將專注於其中一部分:Bluetooth®. 我將解釋 Bluetooth® 背後的基本概念與技術,以及: 解釋為何精通 Blue […]

你可以到 開發者指南:如何利用 Core Bluetooth 製作一個監控心率 App 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

如何在你的 iOS App 加入 Drag and Drop 功能

$
0
0

歡迎來到拖放 (Drag and Drop) 操作系列教程的第一部分。在這篇教學中,你將會學習到如何將拖放功能實作到 UIViewController。而下一部教學中,就會學習如何使用帶有 UITableViewControllers 和 UICollectionViewControllers 的拖放 API。 iOS 11 推出時最令人期待的,就是公佈了幾個新拖放 API。如果你不太了解拖放功能,讓我來解釋一下吧。拖放功能是一種方式,讓你將數據從一個 App 移動或複製到另一個 App、或是在同一個 App 中進行移動或複製。 要將拖放操作實作到 App 中可以有很多範例,亦有許多 API […]

你可以到 如何在你的 iOS App 加入 Drag and Drop 功能 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


好想工作室:免費的 Backend / iOS / Android 學習機會

$
0
0

我是好想工作室的 camp host,可以叫我 Don。這次同時開放 iOS / Android / Backend 三個 camp 的學習機會。不論你是曾經或是當下想要學習寫程式,只要你有心,我們都歡迎你。而因為這三個 camp 都是由我來帶領的,所以在你決定加入以前,我覺得你需要先了解我有什麼樣的經歷,側面了解 camp 會有什麼樣的風格。 我是這樣拼過的 在高三的時候,我沒有很認真準備高考,而我的父母認為我已經是可以獨立的年紀了,所以他們在我高三下學期的時候給了我一箱琉璃飾品,讓我開始面對現實生活,生活費要靠自己。 曾經因為在淮海路(上海)擺地攤,被城管抓走過,所幸沒什麼事情。但因為很不 […]

你可以到 好想工作室:免費的 Backend / iOS / Android 學習機會 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

如何用 Swift 打造你的第一個區塊鏈 App

$
0
0

區塊鏈 (Blockchain) 是一種突破性技術 (Disruptive Technologies),近年漸獲關注。為什麼呢?因為區塊鏈是許多加密貨幣 (Cryptocurrencies) 如比特幣 (Bitcoin)、以太坊 (Ethereum)、萊特幣 (Litecoin) 的創始技術。那區塊鏈是如何運作的呢?在本次的教學裡,我將會談到所有關於區塊鏈技術的知識,以及如何用 Swift 來製作自己的「區塊鏈」。那麼,讓我們開始吧! 區塊鏈的運作 顧名思義,區塊鏈就是一個由不同的區塊串連在一起的「鏈」,每個區塊包含三則資訊:資料 (Data)、雜湊值 (Hash)、和前一個區塊的雜湊值。 資 […]

你可以到 如何用 Swift 打造你的第一個區塊鏈 App 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

在 iOS 整合 Google ML Kit,讓你輕鬆為 App 導入機器學習功能

$
0
0

Apple 為開發者社群做了很多事情的同時,亦有另一間公司費盡苦心創造好的工具和服務給開發者,這間公司就是 Google。近年,Google 致力推出並不斷改進他們的服務,像是 Google Cloud、Firebase、TensorFlow 等等,讓 iOS 與 Android 開發者的力量更強大。 在今年的 Google I/O 2018 開發者大會上,Google 發表了一款全新的開發工具 ML Kit 給開發者。Google 在人工智能競爭上一直領先,這次讓開發者獲取 ML Kit 的模型,也代表著 Google 給予開發者很強大的力量。 有了 ML Kit,你只需要很少程式碼就可以執 […]

你可以到 在 iOS 整合 Google ML Kit,讓你輕鬆為 App 導入機器學習功能 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Core ML 2.0 新功能總覽:讓你的開發過程更流暢

$
0
0

Core ML 是 Apple 在開發機器學習上的一種框架。這工具在一年前發表,為開發者提供一個方法,只需要寫幾行程式碼,就可以將第三方強大與機敏的機器學習功能整合到自己開發的 App。今年在 2018 WWDC 的大會上,Apple 又發表了 Core ML 2.0。這最新的版本強調開發過程的流暢性,包括最佳化機器學習模型大小,改善執行的效能,並提供開發者客製化自己的 Core ML 模型。 在這次教學中我將教你所有 Core ML 2.0 新增加的功能,並且告訴你如何在你的 App 上運用它。若你對 Core ML 完全陌生,我建議你先參考本篇教學。若你已熟悉 Core ML,讓我們就此開 […]

你可以到 Core ML 2.0 新功能總覽:讓你的開發過程更流暢 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

還在猶豫應該用哪種導航形式?教你實作連 Apple 都喜歡用的 UITabBar!

$
0
0

導航 (navigation) 是所有應用程式中最重要的一個部分,選擇如何將用戶導向不同頁面,正正就決定了你的應用程式能否成功。 從 AppStore 觀察使用者資訊,我們很清楚哪種導航方式最多人使用,你可以叫它們做漢堡選單 (Hamburger menus)、或是滑動選單 (Sliding menus)、又或是側邊欄 (Sidebars),這種導航形式幾乎成為各種應用程式的首選。就我個人而言,就發現 Sidebar 有很多缺陷,但我不是 UX 設計師,因此你在本文中會讀到更多設計面向 (design-oriented) 的評論。 你可能已經從文章的標題中看出,我最喜歡的應用程式導航方式是 U […]

你可以到 還在猶豫應該用哪種導航形式?教你實作連 Apple 都喜歡用的 UITabBar! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Turi Create 機器學習模型實戰:你也能輕鬆做出 Prisma 風格的圖片!

$
0
0

如果你一直有關注 Apple 去年所發佈的消息,就會知道他們在機器學習上投入了大量心力。自他們去年在 WWDC 2017 上推出 Core ML 以來,已經有大量結合機器學習技術的應用程式湧現。 但是,開發人員經常遇到的其中一個挑戰是:如何創建模型?幸運的是,Apple 在去年冬天宣布從 GraphLab 收購了 Turi Create,正正解決了我們的問題。Turi Create 是 Apple 的工具,可以幫助開發人員簡化創建客製化模型的步驟。使用 Turi Create,你可以建立自己的客製化機器學習模型。 Turi Create 快速入門 如果你有關注其他機器學習教學文章,你可能會覺得 […]

你可以到 Turi Create 機器學習模型實戰:你也能輕鬆做出 Prisma 風格的圖片! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Playground 驅動開發 :助你加快編譯過程 大大提高開發效率

$
0
0

需要快速調整 UI 的需求 流動程式開發者的使命,就是為用戶提供最佳用戶體驗,透過應用程式讓他們的生活更愉快、更輕鬆。其中一項任務就是確保 UI(用戶操作介面)好看而正確。大多數時候,我們可以說應用程式是將數據美化呈現,我們主要從後端獲取 JSON 數據,將其解析為模型,然後使用 UIView(主要是 UITableView 或 UICollectionView)進行渲染。 進行 iOS 開發時,開發人員需要根據設計不斷調整 UI,以切合小型手持設備。這個過程牽涉更改程式碼、編譯、等待、檢查,然後再次更改程式碼等…… 像 Flawless App 這樣的工具有助我們輕鬆比較 iOS app 和 […]

你可以到 Playground 驅動開發 :助你加快編譯過程 大大提高開發效率 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。


生產力再提升:利用 Swift Package Manager 製作自動化開發者工具

$
0
0

Command Line Tool,通常指的就是能在 terminal 下指令執行的程式,身為一個利用 mac 做開發的工程師,一定非常熟悉,像是原始碼管理工具 git、自動化工具 fastlane、或是套件管理工具 homebrew,都可以算是 Command Line Tool 的一種。雖然現在有非常多 open source 的第三方工具可供使用,但並不是所有工具都能夠滿足我們在開發上的需求。舉例來說,如果我希望在建置我的 iOS 專案之前,都先連上內部 server 下載 logo 更新;或者我想要在每次建置成功後,把 log 複製一份上傳到內部 server 存放,這些都可能沒有對應 […]

你可以到 生產力再提升:利用 Swift Package Manager 製作自動化開發者工具 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

iOS 12 新功能: AR Quick Look 讓你在 App 或網頁中展示 3D 模型

$
0
0

Apple 在 2018 全球開發者大會上發表了 ARKit 2.0 框架 (Framework),它包含了新的 API 與開發虛擬實境 (Augmented Reality, AR) 的功能,其中一項功能就是在開發中提供 Quick Look API。若你不熟悉 Quick Look,它基本上只是一種框架,讓你預覽如 PDF、影像等不同格式的檔案,例如:在 iOS 的 Mail App 會利用 Quick Look 來預覽附件。 在 App 使用 Quick Look 的好處,就是你只需要列明哪種檔案格式你想用 Quick Look 來預覽即可。這框架處理 UI 與 UX 的顯示,所以做整合 […]

你可以到 iOS 12 新功能: AR Quick Look 讓你在 App 或網頁中展示 3D 模型 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Memory Leaks (記憶體洩漏)可以導致 App 閃退?用單元測試就可輕鬆減少洩漏!

$
0
0

本篇文章將討論記憶體洩漏 (Memory Leak),並學習如何利用單元測試 (Unit Testing) 來偵測記憶體洩漏。讓我們先看看程式碼: [crayon-5b9ad61b376ad453517767/] 記憶體洩漏 實際上,記憶體洩漏是開發者最常遇到的問題。我們一直寫程式碼來增加新功能,當 App 越來越大的時候,我們就需要了解甚麼是記憶體洩漏了。 記憶體洩漏就是記憶體的某一部分被永久佔用、而無法再使用的情況;就等同一個會佔用空間、並引致問題的垃圾。 當記憶體被配置在某一位址上,但沒被釋放、亦不再被 App 引用時,我們就稱之為記憶體洩漏。因為沒有被引用,所以沒有辦法釋放記憶體,而且 […]

你可以到 Memory Leaks (記憶體洩漏)可以導致 App 閃退?用單元測試就可輕鬆減少洩漏! 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Swift Design Pattern 系列教程 #1:工廠方法模式 (Factory Method) 與單例模式 (Singleton)

$
0
0

人稱「四人幫」(Gang of Four, GoF)的 Erich Gamma、Richard Helm、 Ralph Johnson 及 John Vlissides 所著的 “Design Patterns: Elements of Reusable Object-Oriented Software”,開創、收集、並解釋了目前常見的 23 種經典軟體開發設計模式 (design pattern)。本教學將會重點介紹其中兩個四人幫稱為「創建」的模式:工廠方法模式 (factory method) 以及單例模式 (singleton)。 軟體開發是一種致力將現實世界情境 […]

你可以到 Swift Design Pattern 系列教程 #1:工廠方法模式 (Factory Method) 與單例模式 (Singleton) 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Swift Design Pattern 系列教程 #2:觀察者模式 (Observer) 與備忘錄模式 (Memento)

$
0
0

本教程是上週設計模式 (Design Patterns) 系列教程的第二部分。人稱「四人幫」(Gang of Four, GoF)的 Erich Gamma、Richard Helm、 Ralph Johnson 及 John Vlissides 所著的 “Design Patterns: Elements of Reusable Object-Oriented Software”,開創、收集、並解釋了目前常見的 23 種經典軟體開發設計模式。今天,我們將集中討論「行為 (Behavioral)」類別中的兩種模式:觀察者模式 (Observer) 和備忘錄模式 (Mem […]

你可以到 Swift Design Pattern 系列教程 #2:觀察者模式 (Observer) 與備忘錄模式 (Memento) 閱讀完整文章。如果你對其他iOS教程有興趣,歡迎到 AppCoda 繼續瀏覽。

Viewing all 172 articles
Browse latest View live