Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Androidアプリをリアーキテクチャした話/Android-rearchitecture
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
morizooo
September 17, 2021
Technology
220
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidアプリをリアーキテクチャした話/Android-rearchitecture
morizooo
September 17, 2021
More Decks by morizooo
See All by morizooo
Flipperを活用した デバッグ効率化について/flipper
morizooo
0
820
Mirrativ-android-efforts
morizooo
1
7.7k
Android上でUnityを動かすためのノウハウ / Android with Unity
morizooo
2
860
消費型課金を導入する / Introduction to consumable In-App Billing
morizooo
0
540
カンファレンスアプリを作ったぞ!! / builderscon tokyo 2017 LT
morizooo
0
3.4k
Other Decks in Technology
See All in Technology
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
320
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
220
AI・ロボティクスと自動化社会 / AI, Robotics, and the Automated Society
ks91
PRO
0
130
product engineering with qa
nealle
0
130
組織における AI-DLC 実践
askul
0
260
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
320
NDIAS CTF 2026 問題解説会資料
bata_24
0
160
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
160
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.6k
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
120
MySQL & MySQL HeatWave Report - June 2026
freshdaz
0
260
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
390
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
290
A designer walks into a library…
pauljervisheath
211
24k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
30 Presentation Tips
portentint
PRO
1
330
Agile that works and the tools we love
rasmusluckow
331
22k
A better future with KSS
kneath
240
18k
Design in an AI World
tapps
1
250
Transcript
Androidアプリを リアーキテクチャした話 2021.09.16 morizooo Tech Night © 2021 Mirrativ, Inc.
•Profile •morizooo(@morizo_999) •ミラティブAndroid担当(2018/2〜) •マイブーム:高級食パン,APEX
99 • リアーキテクチャをした理由 • リアーキテクチャを実施した流れ • 現在取り組んでいること 今日話すこと
目次 99 リアーキテクチャを した理由
99 • 副業メンバーからのフィードバック ◦ 既存のコードのキャッチアップがつらい ◦ ルールがないのでどのように書けばいか迷う • 既存コードが原因で離脱してしまうことも → チームとしてスケールするために見直しが必要
理由
99 • 厳密なルールがないのでActivityに処理が集中 ◦ 6000行のActivityが存在😇 • 最凶のBaseクラス ◦ すべてのActivityが1000行のクラスを継承 ◦
状態の変更が意図せず起こってしまう • EventBusでたらい回しにされる ◦ たらい回しの途中で状態が更新されていることもある • 度重なるパッチコード対応で意図がわからない • Android Annotationsの学習コスト 既存コードの問題の例
目次 99 リアーキテクチャを 実施した流れ
99 • Baseクラスを解体 • ライブラリへの依存(Android Annotationsなど)をなくす • パッケージ構造の整理 • Kotlin化する
詳細はTech Blogへ!! https://tech.mirrativ.stream/entry/android-dx 既存コードの問題を整理(2019/04 - 2019/10)
99 • Fluxアーキテクチャを選定 ◦ 状態管理の問題を解消できそうだった ◦ iOSもFluxを選定していた • Fluxでのリファレンス実装を作成 ◦
12月時点のPRで新規画面ではFlux実装を必須にした ◦ 現在でも都度都度議論して随時更新している 理想形の作成と周知(2019/10 - 2019/12)
99 FLUXアーキテクチャについて ActionCreator Dispatcher Store View User Interaction ActionEvent EventBus
State (BindModel)
99 • コードはTech Blogに詳細を書いたので見てください!! https://tech.mirrativ.stream/entry/2021/06/01/102044 FLUXアーキテクチャについて
99 • 触ったところをFluxに書き換えていくようにした ◦ プロダクト開発が最優先 ◦ 既存コードの変更はnice to have ◦
追加開発に時間がかかるようになってきたものは、長めに 開発期間をもらう等の交渉はした ◦ QA時に影響がありそうな部分は伝えて見てもらう ▪ targetSDKのバージョンアップはフルチェック → お祭りとして強気に変更していた FLUXアーキテクチャに置き換え(2020/01 -)
99 • 画面リニューアルの場合はまるっと書き換えた ◦ 既存のコードは引きづられるので見ないほうがいい • 更新がない画面はそのまま残っている ◦ リーアキテクチャするメリットが無い 現在では普段触る部分はFluxになっている
FLUXアーキテクチャに置き換え(2020/01 -)
目次 99 現在 取り組んでいること
99 • Multi Module化 ◦ ビルド速度早くしたい ◦ 機能単位のモジュールは作ったので移行中 • Jetpack
Composeの導入 ◦ 状態が以前の状態に左右されず処理がわかりやすい ◦ リファレンス実装作って導入済み ▪ 今は各々実装しながら議論しているところ 現在の取り組み
99 • 今QのOKR 現在の取り組み
99 • 段階的にリアーキテクチャをすすめた ◦ まずは既存コードの見通しをよくする ◦ 理想系を決めて周知し、プロダクト開発と一緒に書き換え ていく • リアーキテクチャの効果
◦ 副業時にコードが辛いと離脱した人も今では社員に! ◦ 最近Joinしたメンバーからも好評 • 更に一緒に改善していく仲間を探しています!!! まとめ