- プロダクトマネージャー
- アーキテクト(バックエンド)
- カスタマーサポートMFK
- 他91件の職種
-
開発
- アーキテクト(バックエンド)
- Railsエンジニア
- アーキテクト(フロントエンド)
- Webエンジニア
- エンジニアリングマネージャー
- バックエンドエンジニア/MFK
- フルスタックエンジニア
- MOpsエンジニア
- フロントエンドマネージャー
- バックエンドエンジニア
- Webフロントエンド
- Webエンジニア
- サーバーサイドエンジニア
- フロントエンジニア
- エンジニア@京都
- エンジニア@大阪
- エンジニア オープンポジション
- エンジニアマネージャー
- Rails@京都
- バックエンド@BFW
- Androidエンジニア
- iOSエンジニア
- SRE
- クラウドエンジニア
- SRE、インフラエンジニア
- テスト自動化エンジニア
- QAエンジニア
- エンジニアリング
- エンジニア職
- コーポレートエンジニア
- マーケティングエンジニア
- Webアナリティクスエンジニア
- SDET
- QA関連職種オープンポジション
- データアナリスト
- セキュリティエンジニア
- コミュニケーションデザイナー
- UIデザイナー
- プロダクトデザイナー
- デザイナーオープンポジション
- グラフィックデザイナー
-
ビジネス
- プロダクトマネージャー
- スクラムマスター
- プロダクトマネージャー
- 人事/人材開発・組織開発担当
- リスク管理
- グローバル採用担当者
- グローバル採用担当
- 金融コンプライアンス
- 新卒採用リクルーター
- エンジニア採用担当
- 中途採用担当
- 労務
- システム監査
- ビジネス採用担当
- 経営企画(予実・IR)
- HRBP
- 法務
- 債権管理/MFK
- セールス・事業開発
- 新規事業開発
- ビジネス職
- フィールドセールス
- セールスマネージャー候補
- インサイドセールス SDR
- インサイドセールス企画
- オンラインセールス
- SaaS営業、MFBC
- インサイドセールス MFBC
- セールス MFBC
- マーケター
- マーケティング
- サービス企画
- データマーケター
- BtoBマーケティングリーダー
- CRMスペシャリスト
- WEBマーケティング(B2B)
- Webマーケティング
- デジタルマーケター
- イベントマーケター
- コンテンツマーケ MFBC
- SEO MFBC
- その他
【レポート速報】Google I/O 2016 – Day3 「RecyclerViw ins and outs」
Androidエンジニア+セキュリティ全般を兼務する鈴木です。
Google I/O 最終日のレポートをしようと思います。ちなみに本日は 更に涼しく、むしろ寒く感じた一日でした。今日は参加したセッションのうちの「RecyclerViw ins and outs」について報告したいと思います。
本セッションは非常に内容が濃く、RecyclerViewの前身であるListViewの説明、RecyclerViewの開発の経緯などのジャブから、詳細までカバーしておりました。すべての内容の詳細を記述するのは~~めんどくさい~~手間なので、本ブログでは内容のまとめまでに留めておきます。各内容に飛べるようリンクも貼っておきましたので是非ご活用ください。
Chap1: ListViewの誕生と課題、そしてRecyclerViewへ
動画の0:00~ListViewの歴史についての話当時の制限下において、当時の課題をどう解決していったか。RecyclerViewを作るにあたった動機がここで紹介される形。
Chap2: RecyclerView概要
動画の12:16~RecyclerViewとそのコンポーネントの概要について紹介 LayoutManager: アイテムのRecyclerView内におけるポジションItemAnimator: アイテムのアニメーションAdapter: アイテムの提供
Chap3: Adapter
動画の14:25~ここは概要だけなので見なくていいかも
Chap4: ViewHolder
動画の17:18~ViewHolderのライフサイクルと各ライフサイクルにおけるフロー ViewHolderの生成: 17:35ViewHolderのリサイクル時(remove & reserve):18:35ViewHolderのリサイクル時その2:20:39ViewHolderの破棄:21:46ViewHolderの破棄その2: 21:44
Chap5: ItemAnimator
動画の26:45~Predictive Animationについての紹介ここも概要だけなので見なくていい。Chap6へのイントロだけのためにある。
Chap6: ChildHelper
動画の30:37~LayoutMangerに仮想的なListを返すクラス 例えばSwipeによってアイテムが除去されるアニメーションが開始されると、ChildHelperはSwipeされた後の仮想的ListをLayoutManagerに返す
Chap7: AdapterHelper
動画の32:47~Adapterに対するnotify(add, remove, insert, move)操作を記録するクラス こいつのおかげで再描画終了前にアイテムを操作しても、正しいアイテムを操作できる
Chap8: ItemDecoration
動画の36:04~下記メソッドの紹介 getItemOffsets(), onDraw(), onDrawOver():ItemDecorationでadapterへのアクセスはしないViewHolderに必要な情報は保存するべし
Chap9: RecycledViewPool
動画の39:04~同一Context内でRecycledViewを共有する
Chap10: ItemTuchHelper
動画の40:43~ItemTouchHelper及びそのメソッドの紹介
Chap11: Tips
動画の42:33~アイテムは更新されないかぎりonBindは呼ばれないonBindViewHolder時のpositionは最終的な位置ではない 以下の書き方はNG
public void onBindViewHolder(final ViewHolder holder, final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeAtPosition(holder.getAdapterPositioN());
//removeAtPosition(position); // NG!
}
});
}
Payloads: ViewHolderのいち部分を更新したい時に指定するのに有効。下記のメソッドで使用可能な引数onBindViewHoldernotifyItemChangednotifyItemRangeChangedOnCreateViewHolderで既存のViewHolderの使い回しはしない!Adapter positionとLayoutポジションの使い分け Layout positionはonLayoutが呼ばれるまで変更されないので注意
以上です。幾つか自分が以前はまったポイントもあり、非常にためになるセッションでした。是非のちほどyoutubeでみてください。