Skip to main content

DroidKaigi2019 Day2の感想

Kotlinプログラミング

新品価格
¥3,672から
(2019/2/9 10:54時点)


DroidKaigi2019 Day1の感想
の続編

次は二日目のセッションについての感想


・中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略
https://speakerdeck.com/kazakago/zhong-gui-mo-yi-shang-falseahurikai-fa-niokeruciresihitoririsuhurozhan-lue
中規模とは2人以上
リリースは2週間に1回、週明け

CIはbitriseをオススメしてた
GUIが充実してるとのこと

段階リリースはgoogle console apiを使えば
自動で段階リリースの数字をあげることができる
ただし、Crashlyticsとの連携で段階リリースを止めるのは難しいとのこと
クラッシュが起きたときに引くAPIしかないのでDBが必要になるので

感想
google console apiだけ初見だった

 

・Code Review as a Collaborative Journey
https://speakerdeck.com/hkurokawa/code-review-as-a-collaborative-journey
Code Review Not For
・Find out bug
・lint
・Discussing the specification

Code Review is Collaboration
・Share knowledge
・Share skill
・Making good product through discussion

Required for rewview
Reviwee makes below
・Goal
What purpose
・background
ex. from user review
・Strategy
ex. make cusotomize view or use default view
・Changes made
・Verification step
how to confirm

How to review Code
1.Understand the Background and the goal
2.Go through the strategy
why to choose strategy
3.verify
build and check proguard and warning
4.look into every change
check UI not like iOS
Check offline mode
Check lifecycle behavior
5.look back on the chenge from the goal
6.communication

・I first know
git-worktree
https://sinsoku.hatenablog.com/entry/2018/01/05/115053

・Impression
It is good that the code review is visualized
It depends on things, if you receive a large Pull-Request, you can see the code after moving it

 

・Trash Talk
https://speakerdeck.com/romainguy/talking-trash-the-evolution-of-garbage-collection-on-android

・GC Concerns
allocation
collection
heap usage

・Dalvik
mark root set(pause)
reachable(concurrent)
mark reachabke(pause)
collect(concurrent)
And do allocation

If it is a lot of heap size, app is crashed

・ART
L+ is good collection
mark root set(concurrent) ← new
reachable(concurrent)
mark reachabke(pause)
collect(concurrent)

Collector move heap to one block
No more Fragment!

・ART in Oreo
Defragmentation in foreground
Heap is moved to new region, new region, new region!!!
In result it makes free pointer.

・Impression
I underestood the difference between Dalvik and ART’ GC.
It is good sesseion.
I skill up android GC!!!

 

・Android Studio設定見直してみませんか?
https://shiraji.hatenablog.com/entry/2019/02/08/131843

・感想
(´・ェ・)おー

 

・今日から始める依存性の注入
https://speakerdeck.com/kobakei/first-time-dependency-injection
Daggerを使わずに注入するなら
コンストラクタでnewしたのを渡すと依存が抜ける

Activityに渡したいならby lazyする
コンストラクタがないので

・初めて知ったこと
Koin
https://qiita.com/sudachi808/items/8e03503f52b4f11533a2

 

・Androidにおけるパフォーマンスチューニング実践
https://speakerdeck.com/neonankiti/androidniokerupahuomansutiyuningushi-jian
パフォーマンスの基準を設定する
定量が難しければ、基準となるアプリを設定する

・レンダリング
不要なbackgroundを設定しない
onDrawでnewしない、ループしない
offScreen状態では止める
カスタムビューではHWAを使う

画像はWebPが使えればWebPを使う

感想
WebP完全に忘れてたので早速取り入れたいと思います

 

・Navigation Architecture Component によるアプリ内遷移の管理
https://speakerdeck.com/ytakahashi/navigation-architecture-component-niyoruapurinei-qian-yi-falseguan-li

感想
便利そうだけどbeta-01
これからの技術やなぁ

 

・実践 WorkManager
https://speakerdeck.com/_atsushisakai/workmanager

注意すること
・リトライ
指数関数的に増えていくオプションだと数日後に実行されるので注意
・コードのアップデート
すでに登録されているジョブがエラー吐く可能性があるので注意
・タイムアウト
10分でタイムアウトするのでチェーンしてください
・cancel
ベストエフォートで実行される
・robolectricからのサポートはないよ

感想
たぶんalphaのときにサービスに導入して、地雷を踏みまくったんだなぁってプレゼン
stableになったときには参考にさせていただきます!!!

 

・巨大なアプリの開発を支えるフラグ管理術
https://speakerdeck.com/line_developers/flag-based-feature-management
今回もっとも質問が多かったプレゼン
良いプレゼントは、全員が内容理解してさらに考えさせるってことだと思うので
このプレゼンは最優秀賞あげても良い気がする

github-flowで大規模プロジェクトやると
コンフリクトが辛すぎる
なので、フラグで管理しようという話
viewがクリックされたら
if (superVersion) superMehod else normalMethod
みたいなことをする
何を言ってるかわからないと思うが事実である
この実装だと小さいプルリクでmasterにpushできるので、
大きいプルリクが飛んできてコンフリクトが辛いという状態は避けれる

github-flowとの比較だが以下のような特徴がある

・良いこと
1.コンフリクトが最小になる
2.release branchが切られる前にマージできる
3.開発中のコードがmasterに入ってるので途中でバグに気づく確率が上がる

活躍できる点、できない点
1.クラスや値の活躍はできる
2.SDKのアプデでは活躍できない
3.プルリクを小さくできる
4.フラグの管理は人間がチェックする

trunk base developmentとかいうのが核らしい
https://www.infoq.com/jp/news/2018/05/trunk-based-development

・感想
これはこれで辛い気がする
コンフリクトを最小限にする代わりに
if文の複雑性を飲んだし、フラグがバグを生むことになりそう
ただコンフリクト地獄も辛い。しかしこの方法の利便性が本当に上回るのかなぁ
以前の大規模プロジェクトだと可視化と調整で乗り切ってたからその方がマシに見えたけど果たして・・・・
考えさせるという点にはベストプレゼンだとは思うのでその点は評価したいところ

・飯
1日目のランチ

 

View this post on Instagram

 

#droidkaigi #android #アンドロイド #グルメ #lunch #ランチ #conference #gourmet #m3 #google #グーグル

Masutaka Tanakaさん(@masterka1)がシェアした投稿 –

1日目の晩飯

・2日通しての感想

関連記事:

Pocket