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

日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20...

日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20250423

2025年4月23日開催、【Androidエンジニア特集】Androidアプリ開発 開発組織が向き合う課題と戦略 という技術イベントに日本経済新聞社のAndroidチーム 尾形さんが登壇。発表スライドです。タイトルは「日経電子版 for Android の技術的課題と取り組み」です

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. 会社紹介 • 日本経済新聞社 • 創刊: 1876年 • 社員数: 3,042人(2024年12月末) •

    事業内容: 新聞を中核とする事業持株会社。雑誌、書籍、電子メ ディア、データベースサービス、速報、電波、映像、経済・文化事 業などを展開 5
  2. アプリ機能紹介 • 最新の記事配信・通知 • フォロー・保存 • 検索 • 法人向け機能 •

    Think!(専門家によるニュース解説) • For You(パーソナライズ) • 🆕 Ask! NIKKEI (生成AIを使った回答サービス、開発中) 7
  3. Androidチーム紹介 • 10人(社員7,業務委託3) • 直近の登壇タイトル例 ◦ 分析に裏打ちされたアプリウィジェット開発 - Jetpack Glanceとともに

    - (2024) ◦ iOSとAndroidで定期購入の意図しない解約を防ぐ (2023) ◦ 作って学ぶadbプロトコル (2023) ◦ 通知許諾率向上のアプローチ (2023) ◦ できる!アクセシビリティ向上 (2023) ◦ Jetpack Composeを活用した強力なUI表現の実装実例 (2023) 8
  4. エンジニア主導の企画立案(例) データドリブンな文化なので大企業ながらエンジニアも立案できる • 通知許諾率の向上施策 ◦ →数値計測の結果、大幅改善! • Wear OS対応 ◦

    →Google Playで大賞に! • アクセシビリティ対応 ◦ →多くの人に届けられるように! • ウィジェット(Glance)対応 ◦ →タッチポイントを増やしてエンゲージUP! 10
  5. 日経電子版サービスの面白み紹介③ • 歴史の重みがデカい ◦ 約150年の歴史ある事業 ◦ 社会的に信頼されるメディアに ▪ 信頼されるアプリを作りたい …

    ◦ Androidアプリの初回リリースは2011年 ▪ 2015年にリニューアル ◦ Android黎明期から様々な技術スタックの変遷 14
  6. 技術スタックの紹介 • 言語: Kotlin • 設計: アプリアーキテクチャガイドのパターン • UI: Jetpack

    Compose • 画像: Coil • DB: Room • 非同期: Kotlin Coroutine • イベント通知: Kotlin Flow • バックグラウンド: WorkManager • マッパー: Kotlin Serialization • アサーション: kotlin-test • モック: MockK • DI: Hilt • クラッシュレポート: Firebase Crashlytics • CI: GitHub Actions 15
  7. 技術スタックの変遷 (2025←2015) • 言語: Kotlin ← Java • 設計: アプリアーキテクチャガイドのパターン

    ← Model-View-Presenter • UI: Jetpack Compose ← ViewBinding ← Butter Knife • 画像: Coil ← Glide ← Picasso • DB: Room ← OrmLite • 非同期: Kotlin Coroutine ← RxJava ← AsyncTaskLoader • イベント通知: Kotlin Flow ← LiveData ← Otto • バックグラウンド: WorkManager ← Service • マッパー: Kotlin Serialization ← Gson • アサーション: kotlin-test ← AssertJ ← JUnit 4 • モック: MockK ← Mockito-Kotlin ← Mockito • DI: Hilt ← Dagger 2 ← Dagger • クラッシュレポート: Firebase Crashlytics ← Fabric Crashlytics ← ACRA • CI: GitHub Actions ← Circle CI 16
  8. レガシーコードの影響 • レガシーコードが多いと… ◦ 機能の追加・変更に時間がかかる ◦ デグレの配慮が大変 ◦ バグ修正時の根本対応が難しい ◦

    既存画面をCompose化する上での事前リファクタが多い →レガシーコードがさらに積み重なり開発速度が低下する恐れ 21
  9. 改善チームのやること • 目標に沿って消すべきレガシーコードを整理 ◦ 改善チームが集中して消すもの ◦ 全員で日常的に消していくもの • ひたすらリファクタしてレガシーコード削減 ◦

    あくまでCompose化の障壁になるものに絞る • レガシーコードの削減状況が分かるよう可視化 ◦ 定期的に全員でチェックし全体での改善も促す 27