同じアプリを2回ビルドする

Swift + Kotlinでのアプリの設計とテストの概要

( Eric Silverberg)(2020年12月23日)

(CleanMVVM)に関するシリーズでは、10年以上にわたって、複数のプラットフォームで主要なモバイルクライアントを出荷する実際のレッスンを共有してきました。 Clean MVVMは、SwiftとKotlinで一貫性のあるアプリを構築し、アーキテクチャとコードデザインの再利用を最大化するためのアーキテクチャアプローチです。最高の状態で、Clean MVVMを使用すると、SwiftをコピーしてKotlinに貼り付けるか、KotlinをSwiftに貼り付けて、構文をいじるだけで済みます。

はい、これはテスト中です

以下は、このシリーズのすべての記事の要点です。要約:

アーキテクチャ

  • 制御フローは次のとおりです。表示➡ViewModel➡ロジック➡リポジトリ➡API/ストア
  • レイヤー間で状態変化を通信するときにリアクティブストリームを使用する
  • ロジッククラスはステートレスであり、構成できます
  • リポジトリクラスには状態があり、DIシステムを介して注入されるグローバルシングルトンである必要があります
  • li>

  • モデルは、プリミティブ型のみを使用する構造体または封印されたクラスである必要があります
  • BehaviorSubject / LiveData / Property / は、画面の期間中利用可能である必要があり、予測できない間隔で変化するデータの主要なプリミティブです
  • PublishSubject / Observable / SignalProducer / Publisherは、通常はユーザー入力の結果としてのイベント用です
  • Single / Completable / SignalProducer / AnyPublisherはAPIとローカルストレージへの呼び出し用です

テスト

  • テストでのオブジェクト構築に依存関係の挿入を使用します
  • モックの外層クラスのみ—主にネットワークAPI
  • BDDを使用してテストをナラティブに構成し、テストごとのアサーションの数を最小限に抑えます(理想的には1つのみ)
  • TestObserverクラスを使用します(または同等のもの)非同期ストリームを評価する

もう1つ…

アプリアーキテクチャを楽しんでいるモバイル開発者の場合は、 values-fir奇妙なコミュニティにサービスを提供しているst アプリ会社、私たちに話してください! Perry Street Softwareでの仕事については、 https://www.scruff.com/en/careers にアクセスしてください。 。

シリーズの詳細

  • (クリーンMVVMイントロ)
  • (SwiftのViewModels & Kotlin)
  • (Swiftのロジッククラス& Kotlin)
  • (Swiftのリポジトリとドメインモデル& Kotlin)
  • (SwiftのAPIクラス& Kotlin)
  • (Swiftのビュー& Kotlin)
  • (SwiftでのMVVMのテスト& Kotlin)
  • (Swiftでの非同期性のテスト& Kotlin)
  • (クリーンなMVVMの概要)←ここにいます

作成者について

Eric Silverbergは、 Perry Street Software 、iOSとAndroidで世界最大の2つのLGBTQ +デートアプリのパブリッシャー。彼は2010年からモバイルアプリを出荷し、1995年のHypertalkでの英語のクラスブックレポートからコードを書いています。