Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 1 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 2 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 3 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 4 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 5 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 6 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 7 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 8 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 9 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 10 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 11 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 12 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 13 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 14 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 15 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 16 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 17 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 18 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 19 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 20 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 21 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 22 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 23 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 24 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 25 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 26 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 27 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 28 ABC2016Spring Androidアプリ実装アンチパターン(暫定) Slide 29
Upcoming SlideShare
Shared Preferences Anti Pattern
Next
Download to read offline and view in fullscreen.

15 Likes

Share

Download to read offline

ABC2016Spring Androidアプリ実装アンチパターン(暫定)

Download to read offline

ABC 2016 Springで発表した「Androidアプリ実装アンチパターン」の暫定資料だよ
あとで、発表時に喋った内容をテキストで追加したものをアップロードするよ

Related Books

Free with a 30 day trial from Scribd

See all

ABC2016Spring Androidアプリ実装アンチパターン(暫定)

  1. 1. Androidアプリ実装 アンチパターン ABC 2016 Spring 1
  2. 2. 自己紹介 深見浩和 @fkm モケラボ株式会社 代表 普段は、Android/iOS アプリの受託開発や エンジニア支援を やっています 2
  3. 3. 本発表の対象 初心者 中級者 達人 3
  4. 4. アプリを開発する 技術って? 4
  5. 5. 攻めの技術 ● Design library ● HTTP通信 ● Bluetooth ● センサー ● Realm ● Reactive 5
  6. 6. 守りも大切 ● クラッシュしない ● 動作が早い ● 情報漏洩しない ● メンテナンス容易 6
  7. 7. Androidアプリ実装には アンチパターンがたくさん 7
  8. 8. Fragmentを一切使わない アンチパターン その1 8
  9. 9. アンチパターン その1 showDialog()はdeprecated 9
  10. 10. アンチパターン その2 android.app.Fragment を 使っている 10
  11. 11. アンチパターン その2 support-v4版を使ったほうがきっとしあわせ android.app.Fragmentの進化の歴史 API Level 増えたメソッド数 15 2つ 16 2つ 17 3つ 21 18つ 23 8つ N Preview 2つ 11
  12. 12. Fragment内にFragmentを貼る時に getFragmentManager() を使っている アンチパターン その3 12
  13. 13. アンチパターン その3 getChildFragmentManager()が正しい。 Activity/Fragment復元時に落ちたり、 正しく復元されなかったりします。 ※android.app.Fragmentでは、API Level 17 13
  14. 14. アンチパターン その4 FragmentのonCreate()で Activityのフィールドに アクセスしている (onCreateView()も同じ) 14
  15. 15. アンチパターン その4 たとえばこんな設計 Activity Fragment ユーザー情報を保持 参照 15
  16. 16. アンチパターン その4 復元時はsuper.onCreate()でFragmentの onCreate()を呼ぶから 16
  17. 17. アンチパターン その4 onActivityCreated() の時点でアクセスするのが正しい 17
  18. 18. アンチパターン その5 Activityの onRestoreInstanceState()で 状態を復元している 18
  19. 19. アンチパターン その5 メソッド名にだまされてはいけない onRestoreInstanceState()は、 onStart()の後 に呼ばれる つまり、onActivityCreated()の後。 19
  20. 20. アンチパターン その5 Activityの復元は、特に問題ない場合は onCreate()でやりましょう。 (と、実はAndroidのドキュメントにも書いてあ る。。。) 20
  21. 21. アンチパターン その6 Fragment初期化時に Callbackを渡している 21
  22. 22. アンチパターン その6 例:入力が終わったら呼び出し元に伝えたい fragment.setCallback(new InputCallback() { @Override public void done(String text) { // 入力が完了したときの処理 } }); tr.replace(R.id.container, fragment); tr.commit(); 22
  23. 23. アンチパターン その6 中断や画面回転などで 間違いなく クラッシュします! 23
  24. 24. アンチパターン その6 setTargetFragment() + onActivityResult() // 呼び出し元のFragment(=this)を渡す fragment.setTargetFragment( this, REQUEST_NAME_INPUT); tr.replace(R.id.container, fragment); tr.commit(); 24
  25. 25. アンチパターン その6 // 入力が終わったので呼び出し元に伝える Fragment caller = getTargetFragment(); // Intentに結果をセット Intent data = new Intent(); data.setExtra(EXTRA_NAME, name); caller.onActivityResult( getTargetRequestCode(), Activity.RESULT_OK, data); 25
  26. 26. アンチパターン その7 Singleton(static変数)に アクセストークンや ユーザー情報のような データをいれている 26
  27. 27. アンチパターン その7 Androidでは、アプリ中断中にプロセスがkillされる ことがあります。 (PCの世界では想像できない挙動) プロセスがkillされる時にstatic変数の内容を退避 させる手段はありません。 アプリ プロセス 再開中断 27
  28. 28. 「アプリが時々落ちる」原因の多くは、 本日紹介したアンチパターンを踏んでいることが多 いです。 ネットや書籍のサンプルを公開する アプリに組み込む時は、 アンチパターンを踏んでいないか チェックしましょう まとめ 28
  29. 29. 29
  • okapee

    Apr. 1, 2016
  • rsatojp

    Mar. 15, 2016
  • takehiroterashima5

    Mar. 15, 2016
  • takukobayashi560

    Mar. 15, 2016
  • noboruishikura

    Mar. 14, 2016
  • kakenavi

    Mar. 14, 2016
  • TomoyaMurata

    Mar. 14, 2016
  • hum2

    Mar. 13, 2016
  • KenichiMorikami

    Mar. 13, 2016
  • kenjoyb

    Mar. 13, 2016
  • sattzi

    Mar. 12, 2016
  • zenichiamano

    Mar. 12, 2016
  • ShinichiArata

    Mar. 12, 2016
  • satoshishimizu77

    Mar. 12, 2016
  • makotonishimoto14

    Mar. 12, 2016

ABC 2016 Springで発表した「Androidアプリ実装アンチパターン」の暫定資料だよ あとで、発表時に喋った内容をテキストで追加したものをアップロードするよ

Views

Total views

4,855

On Slideshare

0

From embeds

0

Number of embeds

216

Actions

Downloads

8

Shares

0

Comments

0

Likes

15

×