賢治(146)114114件のシェア(ちょっぴり話題の記事)この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにこんぬづは、今年は冬コミに初参加してみようかと企んでいる田中です。秋葉原に務めるからには、その文化を身をもって味わう必要があるかと思った次第で御座います。この記事はiOSでクリーンアーキテクチャに興味がある人が対象です。「やろうかな?」「そもそもどんなものなのかな?」と考えている人は参考にしてください。クリーンアーキテクチャを調べると、解説記事は数多く見つかります。私は「これだけ情報があれば理解できるだろう」と思っていましたが、いろいろな記事を読めど読めど、しっくりくる感覚がなかなか手に入らない状態に陥りました。そんな経験を元に、私がクリーンアーキテクチャによるアプリ開発を学習し、実際にコードを書いていく上でとても参考になった資料を紹介します。ArchitectureについてiOSにおけるクリーンアーキテクチャの概要と役割、書き方などの基本的なことから学びたい方にはこちらの記事がオススメです。「クリーンアーキテクチャ」というキーワードで、iOSに限定せずともGoogle検索上位に出てくる有名なこちらの記事。マネーフォワード社のkoutalouさんが執筆なさっています。クリーンアーキテクチャとはなにか、メリット/デメリット、他のアーキテクチャとの比較やiOSにおいて各役割がどういう関係性にあるかをわかりやすくまとめてあります。クリーンアーキテクチャで調べると「概要は書かれてはいるけれどイメージがつきにくい」と感じてしまう記事が多い中で、こちらの記事はサンプルコード付きで丁寧に解説されており、より理解しやすくなっています。一度この記事を参考にクリーンアーキテクチャのサンプルを書いてみて、各役割が担うべき仕事、書き方などを理解するとこのエントリーで紹介する他の記事も読みやすくなります。すすめiOSにおけるクリーンアーキテクチャのDIを学びたい方にはこちらの記事がオススメです。こちらも上の記事を書かれたkoutalouさんのスライドになります。上で紹介した記事の内容をより凝縮させた内容になっています。それに加えて、DIを行うBuilderと、VIPERパターンにおけるRoutingの役割を担うWireframeという役割の解説も追加されています。クリーンアーキテクチャのメリットであり、要件でもある「テスタビリティの高さ」を満たすためにDIは欠かせないものです。クリーンアーキテクチャにおいてDIを導入するとどういった作りになるのかという紹介がサンプルコードを交えて解説されています。iOSのUIViewControllerクラスの画面遷移を行うpresentメソッドの作りには「UIViewControllerがUIViewControllerについて知っている(=依存する)状態が発生してしまう」という問題がありますが、これを解決するためにWireframeという役割が登場します。FRPクリーンアーキテクチャの「依存の方向性を単一方向に揃える」要件について理解したい方にはこちらの記事がオススメです。規模の大きなアプリケーション開発ではデータと処理の流れが追いづらいという問題が発生しがちです。それに対して、クリーンアーキテクチャでは依存の方向性を単一方向にするという解決が得られますが、その意味について図を交えて解説してくれている良い資料です。LightiOSでクリーンアーキテクチャを書くことに慣れ、人に布教したり説明する必要がある方にはこちらの記事がオススメです。先にあげた三つの資料を読んで理解が進み、クリーンアーキテクチャによるiOSアプリを書くことにも慣れてくるとその素晴らしさを周りに布教したいという気持ちが抑えられなくなってくるでしょう。実際に手を動かしてみるとしっくりこないポイントがよりはっきりしてくるかもしれません。そのようなときにどの理解が正しく、どういう単語選び・基準をもってして議論すればよいかを把握しておく必要が出てきます。そんな時は原点であるこの記事に立ち返るのが一番でしょう。クリーンアーキテクチャの同心円に描かれた図と、層・役割の本質はどこなのか、それを言葉で説明する必要が出た時、必ず役に立つ資料です。日本語に翻訳したバージョンもありますので、日本語が良いという方はこちらを参照してください。まとめiOSにおけるクリーンアーキテクチャとは?iOSにおけるクリーンアーキテクチャのDIを取り入れるには?依存の方向性が単一方向とは?そもそもクリーンアーキテクチャってなんだっけ?これらの理解に役立つ資料をご紹介しました。「設計に正解はない」とはよく言われますが、この記事が読者のみなさまにとっていくつかの「決まった形」を手に入れ、より良いアプリ開発をしていくための一助となれば幸いです。Presenter)部分のサンプルを紹介した記事もあります。クリーンアーキテクチャを実装する上でVP部分の実装はわかりやすいので、こちらも参考になるようでしたらお使いください。1,468,822ダンボールの人。最近はJavaScriptやってます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。