Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Hiroyuki Kusu
PPTX, PDF
2,650 views
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
2015/09/29(Tue)に開催された Roppongi.aar #1 (http://roppongi-aar.connpass.com/event/19478/) での発表資料です。
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 12 times
1
/ 26
2
/ 26
3
/ 26
4
/ 26
5
/ 26
6
/ 26
7
/ 26
8
/ 26
9
/ 26
10
/ 26
11
/ 26
12
/ 26
13
/ 26
14
/ 26
15
/ 26
16
/ 26
17
/ 26
18
/ 26
19
/ 26
20
/ 26
21
/ 26
22
/ 26
23
/ 26
24
/ 26
25
/ 26
26
/ 26
More Related Content
PDF
Wantedlyを2年間Herokuで運用した話
by
Yoshinori Kawasaki
PDF
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
by
慎二 山田
PPT
Android Hacks - Hack8
by
Masanori Ohkawara
PDF
Herokuトレーニング
by
Yosuke Murata
PPT
Android Hacks - Hack40
by
Masanori Ohkawara
PDF
Tips for you tube
by
Keietsu Yasuhara
PPT
Android Hacks - Hack59
by
Masanori Ohkawara
PDF
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
by
Nobutaka OSHIRO
Wantedlyを2年間Herokuで運用した話
by
Yoshinori Kawasaki
Nuxt.js入門 2018/02/02 Vue.js入門勉強会@渋谷 発表資料
by
慎二 山田
Android Hacks - Hack8
by
Masanori Ohkawara
Herokuトレーニング
by
Yosuke Murata
Android Hacks - Hack40
by
Masanori Ohkawara
Tips for you tube
by
Keietsu Yasuhara
Android Hacks - Hack59
by
Masanori Ohkawara
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
by
Nobutaka OSHIRO
What's hot
PDF
Azure boards for beginners
by
Kazushi Kamegawa
PPTX
Eggplant Functional - Lesson 6 (Japanese slides)
by
Eggplant
PDF
How to create your own Azure Pipeline's image
by
Kazushi Kamegawa
PDF
Azure DevOps Online Vol.3 - Inside Azure Pipelines
by
Kazushi Kamegawa
PDF
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
PDF
クラウド+コンテナで作る簡単Webアプリケーション
by
Tsukasa Kato
PDF
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
PDF
Ignite 2021 振り返り(DevOps)
by
Kazushi Kamegawa
PDF
Meteorというフレームワーク
by
rukiadia
PDF
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
PPTX
とりあえずAngular jsを導入してみませんか
by
Kenji Ono
PDF
Quickcursorに見る、アプリケーション間通信
by
Wataru Kimura
PDF
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
by
濱田 章吾
PDF
Azure DevOps's security
by
Kazushi Kamegawa
PPTX
Gcpug begginers #1LT startup scriptとshutdown script
by
tsukasa tamaru
PDF
Ride on Azure! 詳細編
by
Keiji Kamebuchi
PDF
Azureで実装する話題のコンテナサービス
by
Tsukasa Kato
PDF
Introduce TFSUG and Azure DevOps Server 2020
by
Kazushi Kamegawa
PDF
WantedlyがまだSendGridを使いこなしてない話
by
Yoshinori Kawasaki
PDF
エンタープライヤーのためのWeb Componentsハンズオン
by
Mitsuru Ogawa
Azure boards for beginners
by
Kazushi Kamegawa
Eggplant Functional - Lesson 6 (Japanese slides)
by
Eggplant
How to create your own Azure Pipeline's image
by
Kazushi Kamegawa
Azure DevOps Online Vol.3 - Inside Azure Pipelines
by
Kazushi Kamegawa
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
クラウド+コンテナで作る簡単Webアプリケーション
by
Tsukasa Kato
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
Ignite 2021 振り返り(DevOps)
by
Kazushi Kamegawa
Meteorというフレームワーク
by
rukiadia
Wantedly - 世界一"いいね!"される 求人サイトの作り方
by
Yoshinori Kawasaki
とりあえずAngular jsを導入してみませんか
by
Kenji Ono
Quickcursorに見る、アプリケーション間通信
by
Wataru Kimura
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
by
濱田 章吾
Azure DevOps's security
by
Kazushi Kamegawa
Gcpug begginers #1LT startup scriptとshutdown script
by
tsukasa tamaru
Ride on Azure! 詳細編
by
Keiji Kamebuchi
Azureで実装する話題のコンテナサービス
by
Tsukasa Kato
Introduce TFSUG and Azure DevOps Server 2020
by
Kazushi Kamegawa
WantedlyがまだSendGridを使いこなしてない話
by
Yoshinori Kawasaki
エンタープライヤーのためのWeb Componentsハンズオン
by
Mitsuru Ogawa
Viewers also liked
PDF
Xamarin.forms入門
by
一希 大田
PDF
XAML入門
by
一希 大田
PDF
Android development at mercari 2015
by
Tomoaki Imai
PDF
Android Clean Architecture for Dummies
by
Kengo Suzuki
PDF
Android cleanarchitecture
by
Tomoaki Imai
PDF
Upload a screenshot to Slack
by
Shinobu Okano
PDF
Debot android debugging library
by
Tomoaki Imai
PDF
Designing Auto Generated Codes
by
Hiroshi Kikuchi
PDF
Android Pen Test - Recon -
by
Kengo Suzuki
Xamarin.forms入門
by
一希 大田
XAML入門
by
一希 大田
Android development at mercari 2015
by
Tomoaki Imai
Android Clean Architecture for Dummies
by
Kengo Suzuki
Android cleanarchitecture
by
Tomoaki Imai
Upload a screenshot to Slack
by
Shinobu Okano
Debot android debugging library
by
Tomoaki Imai
Designing Auto Generated Codes
by
Hiroshi Kikuchi
Android Pen Test - Recon -
by
Kengo Suzuki
More from Hiroyuki Kusu
PPTX
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
by
Hiroyuki Kusu
PPTX
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
by
Hiroyuki Kusu
PPTX
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
by
Hiroyuki Kusu
PPTX
【Potatotips #30】RxJavaを活用する3つのユースケース
by
Hiroyuki Kusu
PPTX
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
by
Hiroyuki Kusu
PPTX
【ABC2014Spring LT】AngularJSでWEBアプリ開発
by
Hiroyuki Kusu
PPTX
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
by
Hiroyuki Kusu
PPTX
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
by
Hiroyuki Kusu
PPTX
エンジニアにMacを薦める理由
by
Hiroyuki Kusu
PPTX
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
by
Hiroyuki Kusu
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
by
Hiroyuki Kusu
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
by
Hiroyuki Kusu
【eLV勉強会】AngularJSでのモバイルフロントエンド開発
by
Hiroyuki Kusu
【Potatotips #30】RxJavaを活用する3つのユースケース
by
Hiroyuki Kusu
【Potatotips #26】Replace EventBus with RxJava/RxAndroid
by
Hiroyuki Kusu
【ABC2014Spring LT】AngularJSでWEBアプリ開発
by
Hiroyuki Kusu
【Potatotips #23】手軽にHTTPでJSONにアクセスできる環境を用意する
by
Hiroyuki Kusu
【YAPC::Asia Hachioji 2016】ES2015のclassでアプリケーションを書いてみた話
by
Hiroyuki Kusu
エンジニアにMacを薦める理由
by
Hiroyuki Kusu
ソーシャルアプリで人を熱中させる要素を説明する一枚絵
by
Hiroyuki Kusu
【Roppongi.aar #1】Activity/FragmentからControllerへ処理を委譲する
1.
Activity/Fragment からControllerへ 処理を委譲する Hiroyuki Kusu (
@hkusu_ ) 株式会社ゆめみ 2015/9/29 Roppongi.aar #1
2.
自己紹介
4.
DroidKaigiで発表の機会を頂きました。 http://www.slideshare.net/hiroyukikusu/droidkaigi2015androidmvc
5.
作ってます。 https://play.google.com/store/apps/details?id=jp.nailbook
6.
本題
7.
・Activity/Fragmentと同様に、ユーザ操作 を受けつけViewを操作するもの (ViewController と呼ぶ方がしっくりくるかも) ・Activity/Fragmentの責務をController に委譲することにより次のメリットがある - Activity/Fragmentをスリムに -
Controllerの再利用 ・1つのActivity/Fragmentに対してController は複数あっても良い(意味ある単位で作る) 本スライドにおけるControllerの定義
8.
Activity/ Fragment ControllerControllerController ViewViewView new Viewの操作 Viewの操作 ユーザ操作の 受けつけ ユーザ操作の 受けつけ
9.
具体的な実装 ※今回は Butter Knife
(v7.0.1) を使います。
10.
※ Fragmentから利用する場合は onCreateView
で生成したビュ ー をbindする ⇒ ButterKnife.bind(<Controller>, <ビュー>) @Activity Controllerインスタンスを作成し Butter Knife で Activity を bind
11.
@Activity Activityのライフサイクルと Controllerのライフサイクルを 合わせる
12.
@Controller Viewと変数の関連づけ Activityのライフサイクルと 同名のメソッドを用意して ライフサイクル毎の処理 を記述 各Viewのイベント ※ Controllerは普通のJavaのClass
13.
Butter Knife の ちょっとしたTips
14.
android-apt(https://bitbucket.org/hvisser/android-apt) を導入すると Butter Knife
で生成されたコード が確認できたり、@onClickアノテーション等 を付加したメソッドに対するIDEによる警告 (未使用)が出なくなったりする。
15.
(動的に決定される等の理由で)レイアウトに存 在しないかもしれないリソースは @Nullable アノテーションを付加しておくとエラーにな らない(Butter Knife
のバージョンによっては @Optional かも)。
16.
プラグインが便利
18.
ほか
19.
・Dagger等でControllerをDIすると良いかも しれない(未検証) ・Controllerが増えることによりコールバック まわりが複雑になる問題 ⇒ EventBus ですこし楽になる (疎結合になりすぎないよう注意) これらはまたの機会に..
20.
サンプルコードをGitHubに置きました。 https://github.com/hkusu/android-controller-delegate-sample
21.
おわり
22.
予備スライド
23.
https://github.com/greenrobot/EventBus から転載 EventBus
24.
EventBus イベントクラスは普通のJavaのClassなのでデータ を詰め込める(参照型でも良いがリークに注意) @通知側
25.
メインスレッド外のスレッドで投げたイベントを 簡単にメインスレッドで受け取ることも出来る EventBus 通知側(もしくは購読側)の内部クラスとしてイベントク ラスを作成すればどこから通知される (もしくはどこで 購読される)イベントであるかコード上わかりやすい ※通知と購読の関係が多対多になったら設計を見直す。またイベント を投げ合う関係もきっと良くない @購読側
26.
Activity/ Fragment Controller Activity/FragmentからController 直にControllerクラスのインスタンスを参照する(interfaceを参照しても良 いがやりすぎ感) ControllerからActivity/Fragment ・interfaceで参照しコールバック (複数から利用されうる&抽象化の為) - Activity/Fragmentが死んでるかも&参照が残らないように注意 ・もしくはEventBus -
Activity/Fragment ⇔ Controllerが互いを知ってると関係が複雑になる ので一方は通知的で良い - 必要あらば通知を受けてActivity/FragmentからControllerへアクセス
Download