Swift 與 RxSwift 的100天 - Day 0

Day 0

這邊先簡單介紹一下我們會需要用到的三個第三方套件

關於 CocoaPods

CocoaPods 是一種支援 Swift 和 Objective-C 的 third-party 資源相依管理工具。

安裝 Cocoapod

1
sudo gem install cocoapods

在專案中使用 Cocoapod

首先在終端機中導覽至你的Xcode專案中,以此次專案為例,參照下圖

cmd

接著初始化 CocoaPods,會產生對應的 Podfile。

1
pod init

產生出來的 Podfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'TapCounter' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for TapCounter

target 'TapCounterTests' do
inherit! :search_paths
# Pods for testing
end

target 'TapCounterUITests' do
inherit! :search_paths
# Pods for testing
end

end

接著我們就要來安裝對應的第三方套件。

關於 RxSwift

Reactive Programming in Swift

  • 關於Reactive Programming

    Reactive Programming 是一種以 asynchronous data streams 為中心思想出發的程式撰寫方式,比較常聽到的是 asynchronous event,像是 user click event, mouse hover event 等等,而這邊特別的則是 data 與 stream,顧名思義,Reactive Extensions 將 event 延伸為 data,並且注重在 stream (串流)上,也就是 時間序列上的一連串資料事件,Rx讓你將任何事情都變化為 data streams : variables, user inputs, properties, caches, data structures 等等皆可,透過 Observe 這些 data streams,並依據其造成的 side effects 進行對應的動作。 - See more at: http://blog.techbridge.cc/2016/05/28/reactive-programming-intro-by-rxjs/#sthash.HxutfrUm.dpuf

這邊不會太多深入講 RxSwift 的細節,之後會再有其他的篇幅來專門針對 Rx。

使用 CocoaPods 安裝 RxSwift

根據 RxSwift 的 CocoaPods 安裝方式,下面會是我們編輯完成的Podfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'TapCounter' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!

# Pods for TapCounter

# Install RxSwift
pod 'RxSwift', '~> 3.0'
pod 'RxCocoa', '~> 3.0'

target 'TapCounterTests' do
inherit! :search_paths
# Pods for testing

# Install RxSwift for Test Target
pod 'RxBlocking', '~> 3.0'
pod 'RxTest', '~> 3.0'
end

target 'TapCounterUITests' do
inherit! :search_paths
# Pods for testing
end

end

接著我們在終端機中下輸入下列指令以完成最後步驟

1
pod install

CocoaPods 現在就會開始安裝 RxSwift pod,下載後它會建立一個名為 TapCounter.xcworkspace 的 workspace。這個檔案包含你的Xcode 專案、 RxSwift 資源庫和其他第三方你有在 Podfile 宣告需要安裝的第三方相依套件以及函式庫等。
cmd
接下來我們都將使用TapCounter.xcworkspace,而非原本的TapCounter.xcodeproj

關於 SwiftLint

SwiftLint是一個用於強制檢查 Swift Coding Style 和規定的一個工具。
SwiftLint的特點是可以透過 ATS 的方式展示代碼檢查的結果,就是說可以在安裝 SwiftLint 的 Xcode 專案上每次 Build Project,不符合 SwiftLint 的要求就會和 Xcode 自帶的錯誤警告相同。
swiftlint

安裝 SwiftLint

使用 CocoaPods 安裝 SwiftLint

SwiftLint 的設定我們也會跟 RxSwift 相同,會有其他的篇幅針對 SwiftLint 做介紹,這邊先一樣根據 SwiftLint 官方的 CocoaPods 安裝方式安裝 SwiftLint 相關設定至。

CocoaPods 安裝完之後,打開Xcode ,在 Xcode 中添加一個新的Run Script Phase 並包含下列代碼 :

1
2
3
4
5
if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

如下圖 :
xcode

配置規則

這邊先採用 gitrepo 中設定好的,在後面專門講解 SwiftLint 的章節再來對配置做詳細的說明。

這樣就完成我們的Day 0 設置,之後的專案都會有這樣的基本配置。