Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ECテックカンファレンス2023 EC事業部のモバイル開発2023

ECテックカンファレンス2023 EC事業部のモバイル開発2023

Tatsumi0000

January 25, 2023
Tweet

More Decks by Tatsumi0000

Other Decks in Technology

Transcript

  1. カラーミーiOS 2022年やってきたこと • Firebase A/B Testing • App StoreのProduct page

    optimization • CocoaPods → Swift Package Manager • マルチモジュール化 • 一部画面のSwiftUI化、Combineの導入
  2. 2022年やってきたこと • お問い合わせ機能の改良 • Kotlin Coroutines、AAC ViewModel、Dagger Hilt、Data Store、Version Catalog、Renovateの導入

    • fastlaneとBitriseを使ったリリースフローの自動化 • マルチモジュール化、アプリアーキテクチャガイドの実践 カラーミーAndroid
  3. 2022年やってきたこと アプリアーキテクチャガイド • Googleが公式で提供している品質の高い堅牢なアプリを作成するための おすすめの方法と推奨アーキテクチャを紹介 • アーキテクチャガイドに変更した理由 ◦ Activity/Fragmentにビジネスロジックが入って巨大化 ▪

    Javaで書かれているためこれ以上Javaのコードは増やしたくない ◦ カラーミーAndroidは歴史があるのでJavaのコードが多め ▪ Javaだとより生産性の高いライブラリやフレームワークの導入が難しい
  4. 2022年やってきたこと • アプリ推奨のアーキテクチャ ◦ 少なくとも2つのレイヤが必要 ▪ 画面にアプリデータを表示するUIレイヤ ▪ アプリのビジネスロジックを含み、 アプリデータを公開するデータレイヤ

    ◦ さらにドメインレイヤを追加することで UIレイヤとデータレイヤの間のやり取りを 簡素化し、再利用可能 * アプリの推奨アーキテクチャより (2023/01/20アクセス) https://developer.android.com/jetpack/guide?hl=ja#recommended-app-arch アプリアーキテクチャガイド
  5. 2022年やってきたこと • UIレイヤ ◦ 2つのもので構成されている ▪ データを画面にレンダリングするUI要素 • ViewやCompose ▪

    データを保持してUIに公開し、ロジックを 管理する状態ホルダー (ViewModelなど) アプリアーキテクチャガイド * UIレイヤより  (2023/01/20アクセス) https://developer.android.com/jetpack/guide?hl=ja#ui-layer
  6. 2022年やってきたこと • データレイヤ ◦ 2つのレイヤで構成されている ▪ リポジトリクラス • データ変更の一元管理や、ビジネス ロジックなどを管理

    ▪ データソース • ファイル、ネットワークソース、ローカル データベースなど1つのデータソースのみ 処理する役割 アプリアーキテクチャガイド * データレイヤより https://developer.android.com/jetpack/guide?hl=ja#data-layer (2023/01/20アクセス)
  7. 2022年やってきたこと • お問い合わせ機能の改良 • Kotlin Coroutines、AAC ViewModel、Dagger Hilt、Data Store、Version Catalog、Renovateの導入

    • fastlaneとBitriseを使ったリリースフローの自動化 • マルチモジュール化、アプリアーキテクチャガイドの実践 カラーミーAndroid
  8. 2022年やってきたこと Version Catalog • Gradle7.0から導入されたライブラリ管理方法 ◦ プロジェクト間のライブラリを一元管理可能 ◦ TOMLファイルで定義 •

    管理方法を変更した理由 ◦ マルチモジュール化にあたってライブラリのバージョンを一元管理したい
  9. 2022年やってきたこと カラーミーAndroidで実践して • 困ったこと ◦ BuildConfigを各モジュールから参照できない… ◦ Version Catalogに移行してAndroid Studio上でライブラリのアップ

    デートを警告してくれなくなった… • 解決策 ◦ どこも参照しないモジュールにラッパークラスを作って 各モジュールがそこから参照 ▪ MultiModuleとBuildConfigという記事を参考 ◦ Renovateを導入
  10. 2022年やってきたこと • お問い合わせ機能の改良 • Kotlin Coroutines、AAC ViewModel、Dagger Hilt、Data Store、Version Catalog、Renovateの導入

    • fastlaneとBitriseを使ったリリースフローの自動化 • マルチモジュール化、アプリアーキテクチャガイドの実践 カラーミーAndroid
  11. 2022年やってきたこと Renovate • 依存関係を自動更新してくれるツール ◦ 様々なプラットフォームに対応 ◦ GradleのVersion Catalogにも対応していたのでDependabotでは なくこちらを採用

    • 自動更新したい理由 ◦ Version Catalogに移行したのでAndroid Studio上で ライブラリアップデートを教えてくれなくなった ◦ ライブラリアップデートを自動化したい
  12. 2022年やってきたこと timezone(Asia/Tokyo) タイムゾーンを東京 prHourlyLimitNone 1時間に作成するPRの上限を撤廃 automergePatch パッチレベルのPRは自動マージ schedule 営業時間外の平日に作成 enabledManagers

    更新したいパッケージマネージャの設定 ここに設定されていないマネージャは無視 prConcurrentLimit Renovateが作成するPRの上限 assigneesSampleSize Assingeesに選ばれる人数 各項目の意味