Chapter 05無料公開

まとめ

Yasuhiro Inami
Yasuhiro Inami
2020.09.22に更新
このチャプターの目次

というわけで、話があちこちに飛んでしまいましたが、最後に全体のまとめです。


今日は主に、Swiftの3つのライブラリに加え、
そこで使われている OpticsComonadic UI の話をしました。

これらを使うと、UIアーキテクチャを疎結合に分解して合成できる ほか、
アーキテクチャそのものについて深く考える ツールになり得るということがわかりました。

そして、これらの概念の根底にあるのが、やはり 関数型プログラミングと圏論 です。
普段のiOSアプリ開発で使うにはどう考えてもオーバーキルではありますが、
そもそも プログラミングとは何か、その本質情報にリーチするための
これ以上ない強力な武器になることは間違いないでしょう。
ぜひ今日の発表の中で、皆様にとって何か持ち帰ってもらえるものがあれば、幸いに思います。


最後になりますが、今日ご紹介したSwiftの各ライブラリの比較表と・・・


ライブラリ+Opticsの参考文献になります。ぜひこれらの資料もチェックしてみてください。


こちらは、Comonadic UI関連の参考文献です。


  1. Reactive State Machine (Japanese) - Speaker Deck
    • すべての沼の始まり
  2. SwiftでElmを作る (Japanese) - Speaker Deck
    • UIKit上で仮想Viewと差分更新を実装する話
  3. Algebraic Data Type in Swift - Speaker Deck
    • 型の掛け算 (struct) と 足し算 (enum) の話
  4. Swiftで高カインド多相 - Speaker Deck
    • Swift でモナド・コモナドを扱いたい人用
  5. 圏論とSwiftへの応用 / iOSDC Japan 2018 - Speaker Deck
    • 米田の補題、随伴(カリー化)、モナド・コモナド
  6. プログラマのためのモナド(圏論) - Speaker Deck
    • 気分はモナディック
  7. Making your own Code Formatter in Swift - Speaker Deck
    • ソースコード AST を分析するために Optics を使う話
  8. Swiftプログラミングと論理 〜そして帰ってきた圏論〜 / Swift and Logic, and Category Theory - Speaker Deck
    • 論理とプログラミングの1:1対応、struct / enum の圏論的な見方など
  9. 圏論とプログラミング - Speaker Deck
    • 「圏論とSwiftへの応用」強化版。Kan拡張、アプリカティブ(Day合成)、圏論的Opticsなど。

なお、今日の発表は、過去の私の登壇の 総集編 になっています。
伏線回収のリンクを貼っておきますので、もし「何も分からん」場合は、
上記リンクを時系列順に追っていくと、もう少し理解しやすくなるかもしれません。


というわけで、私からの発表は以上になります。
ご清聴、ありがとうございました。


[Appendix] Ask the Speaker コーナー

Q. 圏論はどこで勉強されましたか?

こちらのリンクにまとまっています。

お手元の圏論の本は、そっと閉じましょう。