Daniel Steinbergさん「文化を調和させる」
Swiftでアプリケーションを書くということはObjective-Cで書かれたアプリケーションをただSwiftに書き換えるだけでなく,
まずはいつものMVCから
例として取り上げたのは,
- Hand
(Model) - TableView
(View) - HandVC
(ViewController)
をUITableViewDelegateとUITableViewDataSourceを用いて,
FPとPOPを取り入れる
ここからのアプローチとして重要なことは細かく役割を分けていくことで,
徐々にFunctional Programming
private func insertCard(card: Card, atIndex index: Int) -> Hand {
var mutableCards = cards
mutableCards.insert(card, atIndex: index)
return Hand(deck: deck, cards: mutableCards)
}
また,
protocol DataType {
var numberOfItems: Int{get}
func addNewItemAtIndex(index: Int) -> Self
func deleteItemAtIndex(index: Int) -> Self
func moveItem(fromIndex: Int, toIndex: Int) -> Self
}
DataSourceに関しても共通化できる処理をSourceTypeというProtocolにまとめて,
こうして順を追って処理を切り出していくと,
- DataSource
- SourceType
- DataType
その結果,
- Hand
- HandDataSource
- View
ができあがります。
HandやHandDataSourceで定義していったProtocolに応じてトランプゲームの実装をするだけなので,
OOP, FP, POPの融合について
最後にDanielさんは,
このセッションでは,
終わりに
今回この記事では一日目の3つのセッションを取り上げましたが,
海外から参加された方も多くいらっしゃったので,
最後にイベントを運営してくださったスタッフの方々,
(2日目のレポートに続きます。)