Submit Search
Upload
20170804 Builderscon Androidアプリ開発アンチパターン
•
4 likes
•
1,571 views
M
mokelab
Follow
2017年8月4日〜5日で開催されたBuildersconで講演したときの資料だよ♪ Androidのアンチパターン、知ろう♪
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 111
Download now
Download to read offline
Recommended
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
mokelab
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
Android Wearアプリ開発経験談
Android Wearアプリ開発経験談
Kenichi Kambara
Android Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイド
Kenichi Kambara
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
Yukiya Nakagawa
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
Shinobu Okano
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
Shinobu Okano
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
Takao Sumitomo
Recommended
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
mokelab
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
ABC2016Spring Androidアプリ実装アンチパターン(暫定)
mokelab
Android Wearアプリ開発経験談
Android Wearアプリ開発経験談
Kenichi Kambara
Android Wearアプリ プレビュー版→正式版への移植ガイド
Android Wearアプリ プレビュー版→正式版への移植ガイド
Kenichi Kambara
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
Android Lintを覚えてベテラン開発者に追いつこう #ndsmeetup
Yukiya Nakagawa
はじめる前に知っておきたいAndroidアプリ開発のポイント
はじめる前に知っておきたいAndroidアプリ開発のポイント
Shinobu Okano
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
Shinobu Okano
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
Takao Sumitomo
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
一法 山崎
「Camelog」Android開発秘話
「Camelog」Android開発秘話
Shoya Tsukada
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
Masataka Kono
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
Kenichi Kambara
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
Mayumi Narisawa
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
schoowebcampus
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
嶋 是一 (Yoshikazu SHIMA)
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
嶋 是一 (Yoshikazu SHIMA)
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
嶋 是一 (Yoshikazu SHIMA)
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
schoowebcampus
Cordova利用アプリ開発経験談
Cordova利用アプリ開発経験談
Kenichi Kambara
Androidアプリ開発ことはじめ
Androidアプリ開発ことはじめ
takosumipasta
ABC2016 Spring 春の大LT祭り 「Android N」
ABC2016 Spring 春の大LT祭り 「Android N」
嶋 是一 (Yoshikazu SHIMA)
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Shinobu Okano
最新AndroidとIoTプラットフォームの今 (WJ2016)
最新AndroidとIoTプラットフォームの今 (WJ2016)
嶋 是一 (Yoshikazu SHIMA)
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
Flutter2
Flutter2
asuka y
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
Tomohiro Suzuki
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
Kiyotaka Soranaka
More Related Content
What's hot
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
一法 山崎
「Camelog」Android開発秘話
「Camelog」Android開発秘話
Shoya Tsukada
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
Masataka Kono
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
Kenichi Kambara
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
Mayumi Narisawa
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
schoowebcampus
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
嶋 是一 (Yoshikazu SHIMA)
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
嶋 是一 (Yoshikazu SHIMA)
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
嶋 是一 (Yoshikazu SHIMA)
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
schoowebcampus
Cordova利用アプリ開発経験談
Cordova利用アプリ開発経験談
Kenichi Kambara
Androidアプリ開発ことはじめ
Androidアプリ開発ことはじめ
takosumipasta
ABC2016 Spring 春の大LT祭り 「Android N」
ABC2016 Spring 春の大LT祭り 「Android N」
嶋 是一 (Yoshikazu SHIMA)
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Shinobu Okano
最新AndroidとIoTプラットフォームの今 (WJ2016)
最新AndroidとIoTプラットフォームの今 (WJ2016)
嶋 是一 (Yoshikazu SHIMA)
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
Flutter2
Flutter2
asuka y
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
ME iBotch
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
ichigotake .
What's hot
(20)
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
iアプリつくろうぜ!~20101020 DevLOVE Android勉強会~
「Camelog」Android開発秘話
「Camelog」Android開発秘話
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
[ABC2016S]Android Wear アプリ開発入門
[ABC2016S]Android Wear アプリ開発入門
エンジニアリングするデザイナーが領域を超えて見えたこと
エンジニアリングするデザイナーが領域を超えて見えたこと
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
スマホだけでアプリが作れる!「Androidでプログラミング」特別講座
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
Google I/O 2017超速報告~最新Google動向 ワイヤレスジャパン2017 AコースAndroid 資料公開
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
Google I/O 2017 現地レポート VR、PWA風味をJAG運営委員が語る ~IoTやAIも隠し味でVRとAIの報告と I/Oに参加して思ったコ...
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Cordova利用アプリ開発経験談
Cordova利用アプリ開発経験談
Androidアプリ開発ことはじめ
Androidアプリ開発ことはじめ
ABC2016 Spring 春の大LT祭り 「Android N」
ABC2016 Spring 春の大LT祭り 「Android N」
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
Gradle PluginとTwitterとズン ドコ キ・ヨ・シ!
最新AndroidとIoTプラットフォームの今 (WJ2016)
最新AndroidとIoTプラットフォームの今 (WJ2016)
iPhoneアプリ開発を楽に楽しくするサイトまとめ
iPhoneアプリ開発を楽に楽しくするサイトまとめ
Flutter2
Flutter2
Code igniter + ci phpunit-test
Code igniter + ci phpunit-test
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
Similar to 20170804 Builderscon Androidアプリ開発アンチパターン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
Tomohiro Suzuki
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
Kiyotaka Soranaka
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-Edo
Megumi Otani(Czenhe)
とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事
Cybozu, Inc.
Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発
Soudai Sone
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
Kanako Kobayashi
あの手この手で楽して覚えるAndroid開発Tips
あの手この手で楽して覚えるAndroid開発Tips
Yoshihiro Wada
Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!
Kanako Kobayashi
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
Masataka Kono
福井で「しあわせデザイナー」になるために
福井で「しあわせデザイナー」になるために
Miho Yamamori
Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~
Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~
Masahiro Hidaka
Weekend Androidのススメ
Weekend Androidのススメ
Suzuki Junko
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会
Shoichi Kakizaki
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
Yasunori Kihara
Androidが変えたもの
Androidが変えたもの
Yuki Yamakido
HTML5でハイブリットなアプリ開発をアレしてみた件
HTML5でハイブリットなアプリ開発をアレしてみた件
Tatsuo Kurita
[デブサミ2015]Androidで広がる世界&エンジニアとしての歩み
[デブサミ2015]Androidで広がる世界&エンジニアとしての歩み
Kenichi Kambara
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
Takuya Oikawa
HTML5時代のWebデザイン
HTML5時代のWebデザイン
masaaki komori
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめ
Yuki Yazaki
Similar to 20170804 Builderscon Androidアプリ開発アンチパターン
(20)
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
モバイルアプリ開発未経験でJavaもKotlinも触ったことがない人とFluxアーキテクチャでAndroidアプリ開発する話
Swiftビギナーズ勉強会 第1回 @Co-Edo
Swiftビギナーズ勉強会 第1回 @Co-Edo
とあるサイボウズのAndroidエンジニアのお仕事
とあるサイボウズのAndroidエンジニアのお仕事
Webエンジニアのためのandroidアプリ開発
Webエンジニアのためのandroidアプリ開発
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
あの手この手で楽して覚えるAndroid開発Tips
あの手この手で楽して覚えるAndroid開発Tips
Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
福井で「しあわせデザイナー」になるために
福井で「しあわせデザイナー」になるために
Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~
Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~
Weekend Androidのススメ
Weekend Androidのススメ
モダンなAndroidアプリ開発勉強会
モダンなAndroidアプリ開発勉強会
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
Androidが変えたもの
Androidが変えたもの
HTML5でハイブリットなアプリ開発をアレしてみた件
HTML5でハイブリットなアプリ開発をアレしてみた件
[デブサミ2015]Androidで広がる世界&エンジニアとしての歩み
[デブサミ2015]Androidで広がる世界&エンジニアとしての歩み
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
クリスマスもコードを書きたいアナタに送る! 次世代エンジニアの技術の学び方とは? 〜Qiitaの投稿データから読み解く、2016年の技術トレンド〜
HTML5時代のWebデザイン
HTML5時代のWebデザイン
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめ
20170804 Builderscon Androidアプリ開発アンチパターン
1.
2.
Androidアプリ開発 アンチパターン 〜 Builderscon 2017〜
3.
@mokelab ● モバイルアプリの 受託開発 ● 技術情報発信 ●
グッズ販売
4.
Tech Sheets
5.
本がでます Androidアプリ開発 74のアンチパターン 初心者〜中級者向けに アプリ開発時の落とし穴を74個紹介 アプリを全く書いたことのない人は 別の本で学んでから!
6.
7.
Q Androidを使ってる?
8.
Q Androidアプリ書いてる?
9.
10.
アプリ開発に 関係ありそうなセッション ● Ionic 3+ではじめる次世代アプリ開発 ○
HTML5だ! ● サーバサイドKotlinのすすめ ○ Kotlinだがサーバサイドだ! ● Serverless Server Side Swift ○ Swiftだがサーバサイドだ! ● LT
11.
アプリ書いてるひと 来ない気がする!
12.
なのに トラックE (イベントホール)
13.
14.
「知らなかった、 を聞く」
15.
Androidや Androidアプリ開発を 知ろう
16.
なぜ知るの?
17.
Androidアプリ開発には 落とし穴がいっぱい
18.
知ろう
19.
そして Androidアプリ開発者を 大事にしてあげて
20.
会話 1 来週からはAndroidアプリ開発やってくれ はい!本を買って開発環境作っておきます! やった!2011年の入門書が100円だった!
21.
アンチパターン 1
22.
アンチパターン 1 Eclipse /
ADTを使ってる
23.
アンチパターン 1 プラグインのサポート終了
24.
アンチパターン 1 ライブラリが使いづらい
25.
Androidを知る ライブラリの形式 AndroidはJava → jarをクラスパスに
26.
Androidを知る ライブラリの形式 jarにリソースをいれたい
27.
Androidを知る ライブラリの形式 が jarにはリソース入らない
28.
Androidを知る ライブラリの形式 aar形式!
29.
Androidを知る ライブラリの形式 aar形式 はEclipse/ADTで使えない
30.
アンチパターン 1 解決方法
31.
Androidを知る アクティビティ UIを提供する コンポーネント
32.
Androidを知る アクティビティ
33.
Androidを知る アクティビティ アプリ開発者は Activityを継承した クラスを定義していく
34.
Androidを知る アクティビティ アクティビティは OSからいろんな情報を 受け取る役割
35.
会話 2 このアプリ、画面回転すると落ちるよ! な、なんとかします! ぐぐったら解決方法あった、やったね!
36.
アンチパターン 2 画面回転の対応が android:confingChanges
37.
Androidを知る 構成変更 画面回転すると落ちる。。
38.
Androidを知る 構成変更 android:configChanges="orientation|screenSize"
39.
アンチパターン 2 たぶん 別の理由で 簡単に落ちます
40.
アンチパターン 2
41.
Androidを知る 構成変更 android:configChangesは 「この変更は 自分でなんとかする」 という意味
42.
アンチパターン 2 解決方法 android:configChangesは よっぽどの理由がない限り 使わない!
43.
アンチパターン 2 解決方法 次のアンチパターンが 根本原因
44.
会話 3 このアプリ、次の画面いって戻ると 時々落ちるんだけど。。 な、なんとかします! なんでこのフィールド、nullになってるんだろ。。。
45.
アンチパターン 3 アクティビティの復元 考えてない
46.
Androidを知る 復元と再生成 復元?
47.
Androidを知る 復元と再生成 アクティビティオブジェクトは OSが作る
48.
Androidを知る 復元と再生成 アクティビティオブジェクトは よく、破棄される ゴミ箱
49.
Androidを知る 復元と再生成 破棄前に 状態を保存するチャンスを与える Bundle 破棄前の状態
50.
Androidを知る 復元と再生成 必要になったら再生成 破棄前の状態
51.
アンチパターン 3
52.
アンチパターン 3 解決方法 ちゃんとやれ!
53.
アンチパターン 3 解決方法 onSaveInstanceState()で 保存し onCreate()で 復元する!
54.
アンチパターン 3 解決方法 OSが破棄するタイミングは まちまち
55.
アンチパターン 3 解決方法 動作確認はどうやる?
56.
アンチパターン 3 解決方法
57.
会話 4 ログインAPIを呼ぶと、 アクセストークンもらえるよ どこかに保存しておきます! static変数にいれると、便利そうだな。。
58.
アンチパターン 4 アクセストークンを static変数に入れている
59.
Androidを知る プロセス プロセス=実行の単位
60.
Androidを知る プロセス プロセスで Java VMが起動
61.
Androidを知る プロセス 原則1アプリ=1プロセス
62.
Androidを知る プロセス アクティビティは いろんなアプリで起動 アクティビティA アクティビティB アクティビティC アクティビティD アクティビティE アクティビティAアクティビティA
63.
アンチパターン 4 うちのアプリ 別アプリからは呼ばれないよ?
64.
Androidを知る プロセス static変数の値は プロセスが止まると消える
65.
Androidを知る プロセス プロセスは いきなり止まる
66.
アンチパターン 4 アクティビティの中断
67.
アンチパターン 4 PCアプリは 最小化しても プロセスは死なない
68.
アンチパターン 4 Androidアプリは バックグラウンドにいると プロセスが止められることがある
69.
アンチパターン 4 でも ちゃんと再開できる
70.
アンチパターン 4 ログイン画面 ↓ static変数にトークン保存 ↓ メイン画面 ↓ ホームボタンで中断
71.
アンチパターン 4 ホームボタンで中断 ↓ プロセスが止められる ↓ オーバービューから再開 ↓ メイン画面
72.
アンチパターン 4 解決方法 永続化するか 状態を アクティビティにもたせよう
73.
アンチパターン 4 解決方法 動作確認はどうやる?
74.
アンチパターン 4 解決方法
75.
会話 5 UIはフラグメントで作って! はい、やってみます! あれ、importしようとしたら2つでてきた。。 こっちでいいかな。。
76.
アンチパターン 5 android.app.Fragment
77.
Androidを知る フラグメント ビューの生成と管理
78.
Androidを知る フラグメント アクティビティは UIを提供するコンポーネント
79.
Androidを知る フラグメント アクティビティは 忙しい
80.
Androidを知る フラグメント ビューの生成と管理を アクティビティから引き離す アクティビティ フラグメント コンポーネント担 当 ビュー生成管理 担当
81.
アンチパターン 5 android.app.Fragment android.support.v4.app.Fragment
82.
アンチパターン 5 android.app.Fragment →プラットフォームで提供 android.support.v4.app.Fragment →サポートライブラリで提供
83.
アンチパターン 5 プラットフォームで提供される クラス→OSバージョンに縛られる
84.
アンチパターン 5 サポートライブラリ版は 更新すれば新しい機能が使える!
85.
アンチパターン 5 解決方法 お願いですから サポートライブラリ版を 使って!
86.
会話 6 テキスト入力してもらって、その結果を 呼び出し元に伝えるフラグメント作って! はい、やってみます! 伝えるためにコールバックオブジェクトを もらえばいいかな。。。?
87.
アンチパターン 6 フラグメントでの 処理結果を インターフェース経由で 伝えている
88.
アンチパターン 6 フラグメント A フラグメント B テキスト入力欄 表示してよ 入力されたの これだよ
89.
アンチパターン 6 NextFragment next
= new NextFragment(); next.setCallback(new Callback() { … });
90.
アンチパターン 6 NextFragment表示中に 中断すると?
91.
アンチパターン 6 コールバックオブジェクトは 復元できない!
92.
アンチパターン 6 解決方法 setTargetFragment()を 使ってみよう
93.
アンチパターン 6 解決方法 NextFragment next
= new NextFragment(); next.setTargetFragment(this, REQUEST1);
94.
アンチパターン 6 解決方法 getTargetFragment()で 呼び出し元がとれる! Fragment caller
= getTargetFragment(); caller.onActivityResult( … );
95.
会話 7 このiOSアプリのAndroid版作ってよ! はい、やってみます! 見た目とかもiOS版のままで作ればいいよね
96.
アンチパターン 7 見た目や操作感が iOSそのまんま
97.
アンチパターン 7
98.
アンチパターン 7
99.
アンチパターン 7
100.
アンチパターン 7 下タブがダメとはいえない
101.
アンチパターン 7 トップレベル項目が2つなら 別の表現で!
102.
アンチパターン 7 横スクロールしないのに >
103.
アンチパターン 7 解決方法 まずは マテリアルデザインに したがってみよう
104.
アンチパターン 7 解決方法 Androidユーザーは 他のAndroidアプリを触ってる
105.
アンチパターン 7 解決方法 あなたの iOS版は触っていない!
106.
アンチパターン 7 解決方法 ガイドラインは ユーザーのためにある
107.
まとめ! Androidアプリ開発には アンチパターンたくさん
108.
まとめ! 解決方法を知れば 回避は簡単
109.
まとめ! 知ろう!
110.
まとめ! その他のアンチパターンは 本を買ってね♪
111.
Thanks!
Download now