[iOSDC Japan 2019 リポート] 取り入れてみたいスナップショットのお話と、モバイル決済サービスの基本を学んできた!

はじめに

CX事業本部の中安です。

東京・早稲田大学構内で行われている「iOSDC Japan 2019」に参加をさせていただいています。

3日間に渡るこのイベントを、弊社iOSアプリ開発メンバーと一緒に色々とレポートしていければと思います。 さてさて最終日ですね

ここまでのおさらい

エンジニアとテスターを幸せにする方法! 「スナップショットテスト実戦投入」

マッチングアプリPoyboyの今泉さんによる 「スナップショットテスト実戦投入」を聞いてきました。

SnapshotTestingやiOSSnapshotTestCaseなど、 スクリーンショットによる差分検知フレームワークが近年注目されています。 これらは指定した画面のスクリーンショットを自動撮影し、 予期せぬ表示上のデグレを検知してくれる画期的なツールです。

一方私のプロダクトでは、状態再現の手間から来るQAコストの増加や 新しいUI作成時の仕様認識のズレなどが課題となっていました。

そこで改善のためSnapshotTestingを導入しQAコストの削減に取り組むことにました。

しかし当然ながら、単純にViewを渡すだけではうまくいきません。 なぜなら導入までに、下記のような下準備が必要なためです。

- API通信をモックする - 必要な状態をモックできるレスポンスを考える - アプリ内フラグやログインをモックする - UIのモックが可能な設計にする - 自動テストとの連携

なかなか一筋縄ではいかない導入でしたが、 結果として画面のカタログを作成しデグレ検知に成功しました。 本トークではスナップショットテストの導入にあたり、 注意すべき点や知っておくと良い点についてお話します。 導入のメリットに見合うかどうか、自身のプロダクトが抱えている課題を解決できそうか、 その参考となる情報を提供できればと思います。

内容と感想

スナップショットテストはUIにおいての正常系の画面表示と実装後の画面とをスクリーンショットベースで比較して、 差異がないかを確認・テストできるテスト方法です。

登壇された今泉さんの開発現場では、エンジニアとテスターの表示バグのためのテストに多くのループ多発のシーケンシャルフローが多かったようです。

その改善としてスナップショットテストを積極的に取り入れた結果と、導入方法などを聞かせていただきました。

自分はこういったスナップショットテストを導入したことがありませんが、 お話によるとCocoaPodsまたはCarthageですぐに導入できるということ(環境変数を少しいじる必要があるとのこと)、 細かなテスト指針もプログラムから書けそうということで、お試しに取り入れてみてもいいなと思いました。

iOSSnapshotTestCase

やたらめったらとこのテストをするのではなく、まずはテスターとカバーする画面(たとえば仕様変更が大きそうな画面は避けるなど)を相談する必要性など、 導入してからどういう戦略でテストしていくかも事前に考える必要がありそうです。

登壇者が最後のほうに話していましたが、 スクラムのスプリントの最後の2日間は改善のために時間を割くという話もありました。 非常に良い取り組みだと思いました。

今どき決済をアプリに導入するための基礎知識! 「モバイル決済アプリの作り方」

メルカリのkenmaz さんよる 「モバイル決済アプリの作り方」という発表を聞きました。

スライドは現時点で一部公開のようですね

iOSDC2019に登壇します

近年、モバイル決済アプリが非常に話題になっています。 このトークではそんなモバイル決済アプリの開発現場から、様々な技術的トピックについてiOSアプリ開発者視点からみなさんに共有します。 モバイル決済アプリ開発特有のトピック、例えば - Apple Pay In-App Provisionig を用いたiD決済の仕組み - QRコードによるコード決済の仕組み - 銀行口座接続や顔認証+公的証明書による本人確認手法技術について - 既存の巨大なアプリに対して、いかに安全・効率的にモバイル決済機能を追加するか - お金を扱うアプリとしてのセキュリティの重要性とその実現方法 - モバイル決済アプリ開発の今後 などについてお話します。

内容と感想

一言「内容が濃かった」。 というより、発表がすごくまとまっていてわかりやすかったです。

まずは何故日本でキャッシュレスの機運が高まっているのかという社会的な背景から導入されていました。 日本はキャッシュレス化が遅れていて、2015年には18%なのだそうです。 経済産業省はこの10年で40%まで推しあげて、社会の生産性を上げていきたい狙いなのだそうです。

また、現在の法律と、キャッシュレス化をすすめるために規制緩和&仕様統一されてきた経緯についても言及されていました。 KYC(本人確認)も2018年末ころにオンライン化ができるように規制緩和されてきたとのことです。 (従来は郵送や銀行確認が必要だった) これを「eKYC」と呼ぶのだそうです。

「eKYC」ってなんだ? メルペイやLINE Payも対応した“本人確認”の進歩

また、話はApplePayの仕組みとシーケンスフロー、そしてPayPayなどの店舗提示型のコード決済の規格と仕組み、利用者提示型とどのような差異があるのかなどの話もまとまっていてあまり知識のない自分でもすっと入ってきました。

フロー

最後にメルカリさんでは機能が多いため、機能ごとにembdedframeworkに分割して開発をしているという話もありました。 フレーワークごとにチーム分けして複数チームにより同時開発をされているようですね。 各サンドボックスアプリをで検証できるのでフルビルドの必要がなく、時間効率もよいとのことです。 参考になりました。

まとめ

さあ、最終日が始まりました。息切れしないように色々とインプットします

では、また