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
CA.apk #7 運用5年以上のAmebaアプリで取り組んでいること
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
bowyer-app
March 26, 2019
Technology
0
270
CA.apk #7 運用5年以上のAmebaアプリで取り組んでいること
bowyer-app
March 26, 2019
Tweet
Share
More Decks by bowyer-app
See All by bowyer-app
How to make App Shortcuts
bowyer
0
43
sqlbrite with AutoValue
bowyer
1
440
Other Decks in Technology
See All in Technology
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
120
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
190
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
230
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
Tebiki Engineering Team Deck
tebiki
0
24k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
22nd ACRi Webinar - 1Finity Tamura-san's slide
nao_sumikawa
0
110
Greatest Disaster Hits in Web Performance
guaca
0
300
AI駆動開発を事業のコアに置く
tasukuonizawa
1
400
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Docker and Python
trallard
47
3.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Producing Creativity
orderedlist
PRO
348
40k
Faster Mobile Websites
deanohume
310
31k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
The Limits of Empathy - UXLibs8
cassininazir
1
220
Building Adaptive Systems
keathley
44
2.9k
Transcript
CA.apk #7 運用5年以上のAmebaア プリで取り組んでいること Takaya Shono
About me Takaya Shono @Amebaアプリ 2 bowyer-app BowyerApp
• Amebaアプリと僕 • 今のAmebaアプリはこんな感じ • Bitriseに移行した話←ここ本編 アジェンダ 3
Amebaアプリと僕 4 ・今のAmebaアプリは約5年ほど運用されて いる ・僕は2年ほどAndroidのブランクがある
突然ですが 5年運用しているアプリで使っ てる技術は 古いと思いませんか? 5
1. Kotlin化 71.2% 2. マルチモジュール 3. AndroidX導入済み 4. kotlinx-coroutines導入済み 5.
Android4.4切りました 6. レビューちょっと良くなりました 今のAmebaアプリはこんな感じ 6
1.Kotlin化 71.2% 2019/03/13 現在、 71.2% Kotlin化してます
2.マルチモジュール化してる マルチモジュール化してます。 2019/03/13 現在、ライブラリモジュール を含めて約30個のモジュールで構成され ています。
2019/01/10 にAndroid X導入済み 3.AndroidX導入済み
2018/08/28 に kotlinx-coroutines導入済み 4.kotlinx-coroutines 導入済み
2019/02/27 のリリースで Android4.4以下のサポートを切りました ※どうやって説得して切ることになったかなど 興味ある方は話しかけて下さい。 5.Android 4.4以下の サポート切りました https://ameblo.jp/staff/entry-12437766012.html
6.レビューちょっとよくなりました 不具合を出さないのはもちろんのこと、レビュー返信や CS連携強化によってレビュー回復してます 心の声 約4年前、「平均3.0は無謀だ」 と言われましたが、もうすぐ届きそうです ☺
5年運用している Amebaアプリですが それなりに新しいです。 13
さてここから本題 Bitriseを導入した話 14
1. Bitriseとは? 2. なぜ入れようと思ったのか? 3. 導入で何が出来るようになった? 4. 導入で困ったことは? 5. こんな工夫してます
Bitriseを導入した話 15
1. Bitriseとは? アプリに特化したCIサービス
2. なぜ入れようとしたのか?
環境移行の流れがあった • GitHub Enterprise→GitHubに移行予定があった • iOSもbitriseに移行予定があった →プロダクト全体で環境を統一しようという流れに乗っかった
ymlファイルが複雑 300行に渡るymlファイルはとても複雑で、初見ではメンテしづ らかった
3. 導入で何が出来るようになっ た?
初見でもメンテしやすくなった BitriseのWorkflowはGUIで直感的に操作できるの で、初見でもメンテしやすくなった
テスターへの配布がラク Slack通知のインストール動線からapkをインストール できるので、テスターへの配布がラクになりました。
4. 導入で困ったことは?
社内libraryが解決出来ない Bitriseから社内のmavenが解決出 来ず、ビルド出来なくなった
社内libraryを内部に持ち解決 各libraryのaarもしくはjarファイルをlibrary moduleとして内部に持たせることで、依存解 決しました
急にビルド出来なくなった 誰かが運用中のWorkflowを 直接編集したことにより、 ビルド出来なくなった → 直接編集ではなく、コピーで試してから導 入してもらうようにしました。 ただ、レビューの仕組みとか無いからつらいよ。。。
5. こんな工夫してます
Workflowの共通化 ・他のWorkflowでも使うような処理は共通処理として 定義し、再利用可能に ・prefixに「 _ 」をつけることで単体実行出来ない Workflowとして定義
並列実行 Bitrise Start Buildを使って、 Workflowを並列実行してま す。 ※本当は5つくらい実行したいのですが、iOSと 共通リソースなので2つで我慢してます。
まとめ Amebaアプリは古くない Kotlin化、マルチモジュール化、 AndroidX導入など、新しい技術いれ てます 社内libraryはlibrary moduleに 社内maven使っている場合は、aar やjarをlibrary moduleとして使いま
しょう 初見でもメンテしやすい Workflow操作はGUIなので、初見 でもメンテしやすいです 30