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

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

Avatar for Tatsumi0000 Tatsumi0000
January 25, 2023

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

Avatar for Tatsumi0000

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に選ばれる人数 各項目の意味