The Composable Architecture(TCA)で簡単なサンプルを作れるようになるまでに辿ったステップ

f:id:bamboohero:20210526185759p:plain

2日ほどかけてTCA(The Composable Architecture)を使った簡単なサンプルアプリを作りました。

ログインしてホーム画面に遷移するだけの超簡単なサンプルですが、TCAのサンプルコードをずっと眺めているよりも実際にアプリを実装してみたほうが理解もずっと早く進むと思い、まずは手を動かしました。

TCAの理解度としてはまだ5、6割(もっと低いかも)といったところだと思いますが、簡単なサンプルを作れるようになるまでに辿ったステップを紹介します。



まずは解説記事から

本家にアクセスする前に、とりあえず解説記事にさらっと目を通すのが私のやり方です。

私はこちらの記事を最初に読んで、ざっと概要を把握しました(目次と概要を読んだくらいです)。

qiita.com

「Reduxっぽい感じかあ」、「そういうコンポーネントがあるのか」、「図があってわかりやすい」程度で次に進みました。

※自分でサンプルを実装するときに概要以降の細かい解説を参照させていただきました


本家のサンプルを見る

ざーっと概要を把握したところで、本家のリポジトリにアクセスしました。

github.com

Point Freeというサイトがあり、TCAはそこの動画コンテンツで詳細に解説されていることを知りました。

www.pointfree.co

動画を全て見るとなると約18時間もかかることがわかり、かつ日本語字幕もないので動画で学ぶのは断念しました。。内容の書き起こしも用意されていますが、それを読むとなるともっと時間がかかります。Point FreeはTCAをある程度理解したあと、知識を補うためにあとで参照する使い方をしようと思いました。


リポジトリに戻り、そこでサンプルコードが用意されていることを知り、さっそくリポジトリをクローンしてシミュレーターで動かしてみました。

このサンプルが非常に充実していて、読み応えがあります。このサンプルを順に読んでいけば理解できそうです。個人的にはRxSwiftのサンプルを読んだときのような感動がありました。

サンプルにはいくつか種類があるのですが、その中でもCaseStudiesは単純なカウンター機能から始まり、非同期処理、ナビゲーションと順を追って徐々に複雑になっていくような構成になっていて、TCAに入門するには最適だと思います。

私はとりあえずGetting Started、Effects、Navigationのサンプルを3つ4つずつくらいを一生懸命読んで、動かして、理解するようにしました。

f:id:bamboohero:20210526184247p:plain


ゼロからサンプルを作ってみる

サンプルを読んではみたものの、やはり自分で実装してみないことには理解が進まないと途中で気づき、プロジェクトを新規に作って自分でサンプルアプリを実装することにしました。

サンプルアプリ実装の際には、ほとんど上記で紹介した解説記事とサンプルだけを参照しました。

TCAはソースコードのドキュメントも充実してるので、リポジトリだけあれば十分サンプルアプリを作ることができると思います。

たまに具体的な問題にぶつかってそのときはググってみましたが、あまり有用な情報は得られなかったのでなんとか自分で解決しました。


おわりに

参考になるかわかりませんが、私がTCAを学んだステップをご紹介しました。

私はSOFT SKILLSのこの言葉を信じていて、今回もその教えに従って行動しました。

何をやっているのかさえわからないうちに行動を起こすことが、何かを学ぶための方法としてはもっともいいのではないかと感じている


合わせて読みたい

TCAについての解説記事を少しずつ書いているので、興味がある方は是非ご覧ください。

bamboo-hero.com

bamboo-hero.com

bamboo-hero.com

bamboo-hero.com

bamboo-hero.com

bamboo-hero.com

bamboo-hero.com