イベント概要
Introduction to Agera
@hydrakecat
https://speakerdeck.com/hkurokawa/introduction-to-agera
Agera
Rxなプログラミングをするためのライブラリ
渡ってくるのはUpdateしろという通知だけでデータはpullしてくる
RecycerViewで使える
onResume/onPauseでサブスクリプションを止める
Repositoryのcompile時のメソッドチェーンは結構厳密に呼べる順番が決まっているらしい
BaseObservableを継承するといい
Repositoryをチェインすることができる
ActivityのライフサイクルにあわせてObservableのaddUpdatableとremoveUpdatableを登録しまくる必要がある
未熟なチーム開発
設計方針をしっかり決めた
非同期
永続化
ビジネスロジック
イベント管理
Viewの管理
フレームワーク独自
テストは必ず書く
mockできないようなコードを書くと後でツケが払えなくなる
color追加禁止
theme, Styleの追加/変更禁止
dimens,strings,shape,selectorはこまめに切る
クラス図を書いてプルリクの説明に貼ってもらった
新卒向け
チーム開発にKotlinに導入した話
@kikuchy
http://www.slideshare.net/HiroshiKikuchi/kotlin-61811289
他のメンバーに訴求できるか
ザイオンス効果
世間的なトレンド
CAが採用してる
Qiita
「ユーザーの得になるなら上司の承認は後で良い」
アプリ開発とSDK開発の違い
堅牢さが第一
簡単導入
アホでも使える
落ちない
性能劣化しない
導入簡単
ASでもEclipseでもUnityでもCordovaでも簡単に導入できるようにする
3rd party製のライブラリへ依存があると色々大変
Kotlinですら使えない
アホでも使える
ひたすらいじめ系のテストをやる
Appium、Robolectric
落ちない
try-catchでRuntimeExceptionすらCatch
UncaughtExceptionHandler
普段はタブーとされているやつ
性能劣化させない
UIスレッドの邪魔しない
バックグラウンドスレッド多用
AndroidとIPv6
@hidey
https://speakerdeck.com/hidey/androidtoipv6
DNS64
AndroidでIPv6アクセスしてくる人ほとんど居ない(5~6%ぐらい)
iOSはほぼ0
モバイルプロファイルはIPv4 only
Wi-Fi環境ではv6対応はしている
日本
KDDI:使えるらしい
docomo mopera U:対応済み
docomo sp:2017年対応予定
SB:情報出てこなかった
IIJ:対応済み
Androidで特別に対応する必要はない
v4を期待しているコードがあるならv6でも動くようにする
webRTCは対策必要
殺伐としたアイコン入れ替えフローのご提案
温かみのあるフロー
デザイナがSketchで書いたデータをCI経由でpngを吐く
デザイナも巻き込んだCIになる
ブログとQiitaに紹介記事がある
http://qiita.com/dagezi/items/7af6621fffb15e2c4c08
Androidにおけるいいねボタンの動作の実装
設計はつかれちゃった
育ってきた環境が違うから
何が面倒なのか
Activityをまたいだ状態の変化
非同期通信のエラー処理
連打の対応
Activityをまたいだ状態の変化
onActivityResultでモデルを更新
DroidKaigi公式アプリ
EventBusで通知
Taptrip
Repositoryクラスでメモリキャッシュ
GoogleのMVP実装サンプル
onActivityResultでモデルを更新
無駄が多い、スマートじゃない
EventBus
Observerパターンでイベントを通知する仕組み
RxJava
onActivityResultよりも反映は速い
Repositoryパターンを利用
DDD、PofEAAに出てくる概念
Repositoryクラスはインフラ層からいい感じにデータを取って返す
onResumeとかで更新してるのであんまりイケてない
結論:どんなやり方でもいい