RxSwift ファーストインプレッション
RxSwift ファーストインプレッション
はじめに
以前触ったことがあったObjective-C製のReactiveなライブラリとしてReactiveCocoa(RAC)がありますがObjective-Cで書かれてることもあって、マクロごりごりで組まれていてSwiftで書くとあまり書きやすいイメージがありませんでした。
なので今回は、よりSwiftの世界に歩み寄ったReactiveなライブラリということでRxSwiftを体験してみました。
そもそもRxSwiftとは?
RxSwiftとはReactiveX (Reactive Extensions)のSwift実装のライブラリで、よく名前を耳にするReactiveProgramming(RP)をSwiftの世界で実現してくれるものです。
ReactiveXはSwiftだけでなく様々なプログラミング言語でライブラリが存在しており、他のプラットフォームでもその概念を持ち込むことが可能です。
各プログラミング言語ごとのRxライブラリ一覧
Language | Library |
---|---|
Java | RxJava |
JavaScript | RxJS |
C# | Rx.NET |
C#(Unity) | UniRx |
Scala | RxScala |
Clojure | RxClojure |
C++ | RxCpp |
Ruby | Rx.rb |
Python | RxPY |
Groovy | RxGroovy |
JRuby | RxJRuby |
Kotlin | RxKotlin |
Swift | RxSwift |
開発環境
- iOS 8.4
- Xcode 6.4
Cocoapods
今回はサクッとRxSwiftを入れたかったのでCocoapodsを利用していきます。
なので以下のようなPodfileを作成しました、RxSwiftはdynamic libraryなのでuse_frameworks!
を忘れないようにします。
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'RxCocoa'
pod 'RxSwift'
Podfileの作成が済んだら、作成したディレクトリで以下インストール用のコマンドをターミナルで叩きます
pod install
Playground
動かすのもサクッといきたいのでPlaygroundでRxSwiftを利用できるように環境を作っていきます
Cocoapodsの準備が終わっているならば以下のようなファイル構成になっているはずなのでxcworkspaceを開きます
Xcodeが起動したらメニューから、File > New > File...
の順で項目を選択
Playgroundを選択してファイル名を入力して追加します
ファイルの追加まで完了したならば追加したPlaygroundにRxSwiftとRxCocoaをimportします
import RxSwift
import RxCocoa
この段階でエラーが出てなければ開発環境の導入は完了です
RxSwiftを体験
var a = 1
var b = a + 1
a = 10 // aを書き換える
println(b) // => 11
Reactive Programmingの説明でよく使われる上記の例を実際にそうなるのかRxSwiftで書いてみます。
let a = Variable(1)
let b = combineLatest(a, Variable(1), +)
var ret: Int = 0
b >- subscribeNext { next in
ret = next
}
println(ret) // => 2
a.next(10) // aを書き換える
println(ret) // => 11
aに対して加えた変更が計算結果に影響を与えていることが分かるので、Reactiveに動いてると言えますね。
今回動かしたサンプルをGitHubに挙げてます、リンクはこちら
(サンプルの方で確認したいときはCloneしてきて、ディレクトリ内でpod install
すれば確認できます)
おわりに
ReactiveX、RxSwiftともにまだまだ初学者ですが、RPを使いこなしてコードが組めるようになるとプログラマとして次のステップに行けるような気がしています。
あと単純に触っていて面白いので試しに遊ぶ分でも十分楽しめると思います、是非体験してみてください。
Reactive Programmingについての参考リンク一覧
Author And Source
この問題について(RxSwift ファーストインプレッション), 我々は、より多くの情報をここで見つけました https://qiita.com/moaible/items/80dd1d3b3fc7c8b3bd0f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .