Submit Search
Upload
Android Architecture
•
3 likes
•
1,765 views
shinnosuke kugimiya
Follow
チーム共有用です
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
Model View Presenter for Android
Model View Presenter for Android
shinnosuke kugimiya
iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方
kakegawa-atsushi
Visual studio 2013 Overview
Visual studio 2013 Overview
一希 大田
MVCもやもや話
MVCもやもや話
Tetsuya Kaneuchi
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
Ken Morishita
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
今城 善矩
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
Recommended
Model View Presenter for Android
Model View Presenter for Android
shinnosuke kugimiya
iOS アプリのメンテナンス性を高めるための基本的な考え方
iOS アプリのメンテナンス性を高めるための基本的な考え方
kakegawa-atsushi
Visual studio 2013 Overview
Visual studio 2013 Overview
一希 大田
MVCもやもや話
MVCもやもや話
Tetsuya Kaneuchi
Windows ストア アプリの上手な作り方
Windows ストア アプリの上手な作り方
一希 大田
iOSやAndroidアプリ開発のGoodPractice
iOSやAndroidアプリ開発のGoodPractice
Ken Morishita
BaseViewControllerは作りたくない
BaseViewControllerは作りたくない
今城 善矩
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
MVVM入門
MVVM入門
Kazutoshi Urabe
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Taketo Sano
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
一希 大田
React.js + Flux
React.js + Flux
dsuke Takaoka
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
Yusuke Goto
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
Hayashi Yuichi
サーバ管理はサーバレスで
サーバ管理はサーバレスで
horike37
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
寛 吉田
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
Shinichi Tomita
WPF MVVM Review
WPF MVVM Review
Takayuki Kondou
AngularJSについて
AngularJSについて
昌生 高橋
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Sosuke Kimura
Force.com Canvas アプリケーション
Force.com Canvas アプリケーション
Salesforce Developers Japan
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
Phone gap
Phone gap
Tomoyuki Kashiro
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Akihiro Iwaya
Prism for windows runtime入門
Prism for windows runtime入門
一希 大田
Coordinator Layout Behavior
Coordinator Layout Behavior
shinnosuke kugimiya
例の縛るやつ(Data binding)
例の縛るやつ(Data binding)
shinnosuke kugimiya
More Related Content
What's hot
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
政雄 金森
MVVM入門
MVVM入門
Kazutoshi Urabe
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Taketo Sano
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
一希 大田
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
一希 大田
React.js + Flux
React.js + Flux
dsuke Takaoka
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
Yusuke Goto
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
Hayashi Yuichi
サーバ管理はサーバレスで
サーバ管理はサーバレスで
horike37
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
寛 吉田
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
Shinichi Tomita
WPF MVVM Review
WPF MVVM Review
Takayuki Kondou
AngularJSについて
AngularJSについて
昌生 高橋
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Sosuke Kimura
Force.com Canvas アプリケーション
Force.com Canvas アプリケーション
Salesforce Developers Japan
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
Phone gap
Phone gap
Tomoyuki Kashiro
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Akihiro Iwaya
Prism for windows runtime入門
Prism for windows runtime入門
一希 大田
What's hot
(20)
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
MVVM入門
MVVM入門
さらに上を目指すための iOS アプリ設計
さらに上を目指すための iOS アプリ設計
Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
XAML + C#で開発するときのVisual Studio 2013(とBlend)の便利機能
React.js + Flux
React.js + Flux
AngularでAmebaコミュニティサービス開発
AngularでAmebaコミュニティサービス開発
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
サーバ管理はサーバレスで
サーバ管理はサーバレスで
Salesforce Lightning をやってみてあれこれ
Salesforce Lightning をやってみてあれこれ
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
WPF MVVM Review
WPF MVVM Review
AngularJSについて
AngularJSについて
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
【アジャイル道場】Rails勉強会(view編)
【アジャイル道場】Rails勉強会(view編)
Force.com Canvas アプリケーション
Force.com Canvas アプリケーション
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
Phone gap
Phone gap
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
Prism for windows runtime入門
Prism for windows runtime入門
Viewers also liked
Coordinator Layout Behavior
Coordinator Layout Behavior
shinnosuke kugimiya
例の縛るやつ(Data binding)
例の縛るやつ(Data binding)
shinnosuke kugimiya
Android development at mercari 2015
Android development at mercari 2015
Tomoaki Imai
Dependency injection
Dependency injection
Yuki Matsumura
これからの設計の話をしよう
これからの設計の話をしよう
shinnosuke kugimiya
US進出でのAndroid開発inメルカリ Mercari US App Development
US進出でのAndroid開発inメルカリ Mercari US App Development
Tomoaki Imai
Android cleanarchitecture
Android cleanarchitecture
Tomoaki Imai
Viewers also liked
(7)
Coordinator Layout Behavior
Coordinator Layout Behavior
例の縛るやつ(Data binding)
例の縛るやつ(Data binding)
Android development at mercari 2015
Android development at mercari 2015
Dependency injection
Dependency injection
これからの設計の話をしよう
これからの設計の話をしよう
US進出でのAndroid開発inメルカリ Mercari US App Development
US進出でのAndroid開発inメルカリ Mercari US App Development
Android cleanarchitecture
Android cleanarchitecture
Similar to Android Architecture
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
Lei Xu
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
GUIのアーキテクチャ
GUIのアーキテクチャ
Kentaro Inomata
C25 SQL Server 2012 概要と Microsoft の Self-Service BI by Tsuyosi Kitagawa
C25 SQL Server 2012 概要と Microsoft の Self-Service BI by Tsuyosi Kitagawa
Insight Technology, Inc.
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
Microsoft Azure Japan
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
decode2016
RayBarcode イベント参加者デモ使い方ガイド
RayBarcode イベント参加者デモ使い方ガイド
GrapeCity, inc.
インフラ観点で運用を考える!Windows 10 VDI on Azure
インフラ観点で運用を考える!Windows 10 VDI on Azure
Miho Yamamoto
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
真吾 吉田
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
Tadahiro Higuchi
Azure Service Fabric 概要
Azure Service Fabric 概要
Daiyu Hatakeyama
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
Takahiro Fujii
SOLIDWORKS 2018 製品発表
SOLIDWORKS 2018 製品発表
Satoru Yoshida
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
Google Cloud Platform - Japan
Raybarcodeイベント参加者管理でも使い方ガイド
Raybarcodeイベント参加者管理でも使い方ガイド
GrapeCity, inc.
DevAx::connect はじめました
DevAx::connect はじめました
政雄 金森
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Akira Inoue
Similar to Android Architecture
(20)
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
Design Pattern MicroServices Architecture in Japanese
Design Pattern MicroServices Architecture in Japanese
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
GUIのアーキテクチャ
GUIのアーキテクチャ
C25 SQL Server 2012 概要と Microsoft の Self-Service BI by Tsuyosi Kitagawa
C25 SQL Server 2012 概要と Microsoft の Self-Service BI by Tsuyosi Kitagawa
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
DEV-016_止まらないサービスを! ~マイクロサービス プラットフォーム「Azure Service Fabric」~
RayBarcode イベント参加者デモ使い方ガイド
RayBarcode イベント参加者デモ使い方ガイド
インフラ観点で運用を考える!Windows 10 VDI on Azure
インフラ観点で運用を考える!Windows 10 VDI on Azure
Azureをフル活用したサーバーレスの潮流について
Azureをフル活用したサーバーレスの潮流について
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
Azure Service Fabric 概要
Azure Service Fabric 概要
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
SOLIDWORKS 2018 製品発表
SOLIDWORKS 2018 製品発表
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
[Cloud OnAir] Talks by DevRel Vol. 1 インフラストラクチャ 2020年7月30日 放送
Raybarcodeイベント参加者管理でも使い方ガイド
Raybarcodeイベント参加者管理でも使い方ガイド
DevAx::connect はじめました
DevAx::connect はじめました
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
Visual Studio 2012 と ASP.NET に見る、最新 Web 開発の魅力
More from shinnosuke kugimiya
Framework code reading
Framework code reading
shinnosuke kugimiya
読むと怖くないDagger2
読むと怖くないDagger2
shinnosuke kugimiya
このあと滅茶苦茶LGTMした
このあと滅茶苦茶LGTMした
shinnosuke kugimiya
just one line
just one line
shinnosuke kugimiya
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話
shinnosuke kugimiya
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
shinnosuke kugimiya
開発効率アンチパターン
開発効率アンチパターン
shinnosuke kugimiya
Reactive android
Reactive android
shinnosuke kugimiya
More from shinnosuke kugimiya
(8)
Framework code reading
Framework code reading
読むと怖くないDagger2
読むと怖くないDagger2
このあと滅茶苦茶LGTMした
このあと滅茶苦茶LGTMした
just one line
just one line
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話
あの日見たMVCを僕たちはまだ知らない for RoR
あの日見たMVCを僕たちはまだ知らない for RoR
開発効率アンチパターン
開発効率アンチパターン
Reactive android
Reactive android
Android Architecture
1.
設計
2.
こんな感じで考えています
3.
全体像
4.
View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory
Provider Prefs Api SQLite Presentation層
5.
DDD + MVP
6.
なぜDDDか?
7.
ドメインロジックを 綺麗にプレゼンテーション層 と分けることができそうだっ たから
8.
なぜMVPか?
9.
ActivityとFragmentをViewと して扱えるから
10.
ドメイン層 プレゼンテーション層 Controller Model View タッチなどのイベント Activityが この位置に居るので Model関連の処理を Activityに書く事になる Model View Controller Activity
11.
ドメイン層 プレゼンテーション層 Presenter Model View タッチなどのイベント Activityが この位置に居るので Modelと疎になり 書くべき事が減る 移譲 Model View Presenter Activity
12.
View、Activity、Fragment
13.
View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory
Provider Prefs Api SQLite Presentation層
14.
役割 • Viewの描画 • (イベントをPresenterに譲渡)
15.
Presenter
16.
View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory
Provider Prefs Api SQLite Presentation層
17.
役割 • ドメイン層への伝達、Viewへの伝達
18.
View Activity Fragment View層 Application層 Domain層 Presenter Service UseCase Entity ValueObject Presentation層 イベント 問い合わせ
19.
View Activity Fragment View層 Application層 Domain層 Presenter Service UseCase Entity ValueObject Presentation層 結果通知 (非同期の時はEventBus) 結果をもとに Viewへの反映依頼
20.
UseCase
21.
役割 • ドメインロジック
22.
Repository
23.
役割 • データの管理(CRUD)
24.
ポイント
25.
上の層のインスタンスは持てない Domain層 Infra層 Presenter UseCase Repository Presentation層 OK OK NG NG ❌ ❌ それをやると破綻する
26.
実際には下の層のinterfaceを参照する Domain層 Infra層 Presenter UseCaseImpl RepositoryImpl Presentation層 <Repository> <UseCase> 依存性をできる限りなくすため。あとテストしやすい。
27.
参考になる
28.
http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/ Android Clean Architecture The
Clean Architecture http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html Androidの設計について 綺麗な設計について GUI Architecture http://martinfowler.com/eaaDev/uiArchs.html Martinさんのいろんな設計手法について。MVCとかMVPとか。 http://terasolunaorg.github.io/guideline/5.0.0.RELEASE/ja/ ImplementationAtEachLayer/DomainLayer.html ドメイン層の実装 あるFrameworkのどドメイン層の実装方法。 DDDちっくですごく勉強になる。
Download now