LoginSignup
1
2

More than 5 years have passed since last update.

DroidKaigi 2017 DAY.01 (Mar 9th, 2017) 参加レポート

Last updated at Posted at 2017-03-09

Droid Kaigi DAY.01 (Mar 9th, 2017) 参加レポート

殴り書いてるところは暇見て直す予定

下記を見ずに5Fに行かず建物の周りをぐるっと周りました。

始まる前はすごい並んでました。

droidkaigi2017 公式アプリのソースコード

  • ドリンク飲み放題
  • バリスタっぽい人がおしゃれなコーヒーを作ってくれる。飲んでないけど。
  • 弁当もらえる
  • 電源はあるが前の方の席だけ
  • お菓子コーナーにお菓子とマフィンがあり自由にお取りください。
  • 企業ブース色々

  • タイムテーブル

Room1からRoom6まであり聞きたいセッションを選んで受講する。

受講したセッションについて記載していきます。

  • 10:40 - Room3 逆引き マテリアル デザイン
  • 11:50 - Room1 minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
  • 12:40 - Room1 インスペクションとAndroid Lint Custome Ruleによる、単一責任実装の実践
  • 14:20 - Room3 Data Bindingで開発を気持ちよくしよう
  • 14:50 - Room5 Android Resources Refactoring
  • 16:00 - Room5 Exploring new Android layouts
  • 17:10 - Room1 Viewを動的に変化させるアプローチ
  • 18:00 - Room3 What's New in RxJava 2.0

感想

  • マテリアルデザインガイドライン読む
  • DataBinding便利
  • PullRequest template いいね
  • デザイナー欲しい

Room3 10:40 - 逆引き マテリアル デザイン

定期的に更新されているので、whats-newも確認してください。

ガイドラインは絶対に従わないといけないものではなくて

ガイドラインを踏まえたオリジナルのデザインを実装してください。

日本語もあるので、まだ読んでない人は読んでください。

Components - Grid lists

タッチフィードバック重要!

画像や文字を含んだアイテム上にタッチフィードバック

タップしてから0.1秒でも何も反応がないと人間はストレスに感じる

カスタマイズのやり方

ググってQiitaにのってるのをコピペしたらこの講義の意味がないので
ドキュメントを見たり、ソースコードを見てカスタマイズするやり方を教えます。

@style と ?attr は 何が違うのか
FABの色がどこから来ている
明示は Widget.MyApp.FloatingActionButton
暗黙は .FloatingButton
とか

styleもテーマも同じ
keyとvalueでマッピングしてるだけ
?attrはテーマで定義されているものをとって来てください

elevation

FABとsnackbarは8
snackbarが出るとFABがかぶる
CoordinatorLayout
dodgeInsetEdges
同じエレベーションのものの場合に避けることができる
layout_insetEdge 避けさせることもできる
anchor gravity
behavior

状態の変化を動かす

パッと画像が大きくなるものを作りたい
今、アニメーション中なら逆回転
Transition API
API レベル 19
Animatortion
様々なTransition
ビジビリティを変えたい
motion - choreography
pathmotion
transition propagation

まとめ

マテリアルデザインガイドラインを読む
what's new を読む
アニメーション中の時間が長すぎると良くない

Q & A
ネストするフラグメントもサポートしているのでバグがあったら報告してください。
Android プラットフォームサポートライブラリ
b.androind.com

11:50 - Room1 minneにおけるテスト〜リリース〜リリース後にやっている事の紹介

モックを作成してUnit Test
Local Unit Testの方がInstrumented testより早い

Google Play
段階的な公開というのがある
20%リリース
2営業日50%リリース
2営業日後100%リリース

12:40 - Room1 インスペクションとAndroid Lint Custom Ruleによる

14:20 - Room3 Data Bindingで開発を気持ちよくしよう

14:50 - Room5 Android Resources Refactoring

リファクタリング
2016 1 - 2017 2
なぜ、私はこれについて話したいのか
スタディサプリ、Quipper
インドネシア、フィリピン、メキシコ

複雑なリソース
1. 似てるテーマとスタイル
2. 名前の規則がない

リファクタリングの手順

colors.xml, dimens.xml

extracted theme style

colors.xmlとdimens.xmlにまとめる

  1. colors

color palette

グレスケール

naming rule, bad naming

色はデザイナーによって定義される

  1. colors_new.xml を作る

小さいPRを送るのが良い
大きいとコンフリクトするから
1歩1歩やっていく

  1. dimens.xml

dimens_base.xml
dimens.xml

elevation

prefix
space space_16px

デザイナーと毎日MTGしたり、Slackで質問したりする

  1. theme.xml

android:windowBackground テーマを設定する

product flavor

PullRequest template

  1. styles.xml

いくつかに分割する
styles_~~~.xml
style_login.xml

style.xml
Button.Primary

style_settings.xml

  1. drawables

Naming Rule
name prefix
ic_{name}_{size}.png
ic_play_24.png

databinding adapter

Namine Rule

どうやって、エンジニアとデザイナーがコミュニケーションをとるのか
毎日のMTGで質問する。詳細なデザインについて、ごめん
私は、あなたの質問にこたえてますか?

16:00 - Room5 Exploring new Android layouts

ConstraintLayout
FlexboxLayout

new layout

16ms これって何でしょう?

60fps, 30fps

16ms または、ないか

what happens view is drawn

measure

determines the size

layout

determines the location

draw

draw itself on the screen

階層構造
深くない
linear layout

ConstrainLayout
RelativeLayoutに似てる

ビューの連携
sibling view
parent
guideline

view must have at least two Constraint

performance

ConstraintLayoutの方が従来よりパフォーマンスが少し良い

Chains

Creating a Chain

Weighted Chain

アニメーションが簡単にできる

FlexboxLayout

Advanced LinearLayout

Main axis, cross axis

example attributes

change direction

layout_flexGrowを適用する前は画像が縦に並ぶけど余白ができる
適用したあとは画面にうまいこと違うサイズの画像を当てはめてくれる

flexbox 0.2.5 stable

17:10 - Room1 Viewを動的に変化させるアプローチ

DataBinding
ConstrainLayout

アニメーション
AppBarLayout

テキストだけが動かせる

elevation

実装のイメージ
なにをトリガーとして動きをつけるのか?
どの座標とか大きさとか計算
ビューに反映する

CoordinatorLayout
タッチイベントが辛い
ネスティドスクロール

scroll, RecyclerView, AppBarLayout
viewの属性値

スクロール量の値を計算する
ViewPagerでの計算

position + positionOffset
0除算に注意

Viewに設定する属性値の計算DataBinding
DataBindingが強い

translationY
fabFactor * @dimen/fab_offset

FABの現れ方
DataBindingで計算できる

OnLayout Change Listenerのループ
CPUをじわじわ食う

上下のスクロールの際にアイコンに対して動いている

レイアウトエディタでxml触ると怒られる

LayoutParamsをいじるのはパフォーマンス的に悪い

18:00 - Room3 What's New in RxJava 2.0

イベントのシーケンスをストリームとして扱う
データがくると
データがくるたびに反応する
偶数のものを見つけて自乗したものを欲しいとする
関数型プログラミング
RxJava2
リアクティブストリームずに準拠した
れっきとした仕様
http://www.reactive-streams.org/
リアクター、アッカ
java9
フローAPI
javaの標準APIとして使われる
非同期のストリーム処理の
4つのインターフェースが定義されているだけです

publisher

subscribe

Obserbable

onSubscribe

どれくらいデータが欲しいか要求できる

イベントがくるたびにonNextが呼ばれる
onNextにnullが
rxjavaではonNextにnullを渡すことはできない

subscription

dorekuraのデータが欲しいか

Processer
pub, subを継承してるだけ

onSubscribe
with non block
バックプレッシャー

Backpressureはよく聞くけど何なん

なかったら、どういうまずいことが起こるか

pub データを貯めれるけど
オーバーフローしてしまう

どれくらい処理できるか、通知してくれる?

世の中のデータソースには2つある

ディスクの読み出し
subが要求するだけ返す

UIの
タップした瞬間にデータを返さないといけない

パッケージネームが変わったり

Backpressureを意識して使えるようになった
nullを使えなくなった。

NPE

toList/toMap

空リストかもしれませんけど
ファーストORデフォルト

条件を満たすものを返す

takeFirst

onCompleteして欲しい

オペレーター返す型が
single
completable
で済む

retrofitはsingleとcompletableをサポートしている

パフォーマンスがよくなりました

Search Structurally
Android Studio

Structural Search

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2