O slideshow foi denunciado.

Jag201610 API Diffで見るNougat

2

Compartilhar

Carregando em…3
×
1 de 55
1 de 55

Mais Conteúdo rRelacionado

Audiolivros relacionados

Gratuito durante 14 dias do Scribd

Ver tudo

Jag201610 API Diffで見るNougat

  1. 1. API Diffを 見てみよう モケラボ株式会社 fkm
  2. 2. ● Androidアプリ開発 ● iOSアプリ開発 ● 開発レクチャー ● キャラクター展開 ○ グッズ作ったり
  3. 3. グッズあるよ!
  4. 4. 日本Androidの会 メーリングリスト
  5. 5. https://googledevjp.blogspot.jp/2016/08/android-7-nougat.html Nougat API 24
  6. 6. https://googledevjp.blogspot.jp/2016/08/android-7-nougat.html Nougat API 24 Nougat MR1 API 25
  7. 7. API Diff 24 ↓ 25
  8. 8. https://developer.android.com/sdk/api_diff/25/changes.html http://bit.ly/android-diff-24-25
  9. 9. と、ここまでスライド つくってみて 1つ気づいたことがある
  10. 10. Material Motionのような動き Google Slideじゃ作れない。。。
  11. 11. 差分があるのは15パッケージ ● android ● android.app ● android.app.usage ● android.content ● android.content.pm ● android.content.res ● android.media ● android.os ● android.os.storage ● android.provider ● android.telecom ● android.telephony ● android.util ● android.view ● android.view.inputmethod
  12. 12. android.R.attr XMLの属性が定義してあるとこ いくつかフィールドが追加されている ● int shortcutDisabledMessage ● int shortcutId ● int shortcutLongLabel ● int shortcutShortLabel
  13. 13. android.content.Context 新しい定数追加 String SHORTCUT_SERVICE
  14. 14. android.content.pm パッケージ いくつかクラスが追加されている ● LauncherApps.ShortcutQuery ● ShortcutInfo ● ShortcutInfo.Builder ● ShortcutManager
  15. 15. App Shortcuts!
  16. 16. ん?
  17. 17. これ どっかで 見たことない?
  18. 18. 引用元:https://developer.apple.com/ios/3d-touch/
  19. 19. App shortcuts 対応方法は2種類 ● XMLで指定する ● アプリ起動中に動的に編集
  20. 20. XMLでショートカットを追加 1. AndroidManifest.xmlのActivityに <meta-data>を追加する <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/> </activity>
  21. 21. XMLでショートカットを追加 <shortcuts> <shortcut> <intent/> <categories /> </shortcut> </shortcuts> 2. xml/shortcuts.xmlでショートカットを定義
  22. 22. XMLでショートカットを追加 <shortcuts> <shortcut> <intent/> <categories /> </shortcut> </shortcuts> 2. xml/shortcuts.xmlでショートカットを定義 ←ルート要素 ←ショートカットの情報 ←投げるIntent ←おまじない
  23. 23. XMLでショートカットを追加 <shortcut android:shortcutId="compose" android:enabled="true" android:icon="@drawable/compose_icon" android:shortcutShortLabel="短い名前" android:shortcutLongLabel="長い名前" android:shortcutDisabledMessage="無効時のメッセージ"> </shortcut>
  24. 24. アプリ起動中にショートカット追加 例えば、チャットアプリで「この人に送信」ショート カットを作りたい時などに使う
  25. 25. アプリ起動中にショートカット追加 作り方 1. ShortcutManagerを取り出す →getSystemService(ShortcutManager.class); 2. ShortcutInfoを作る 3. manager.setDynamicShortcuts()
  26. 26. アプリ起動中にショートカット追加 2. ShortcutInfoを作る ShortcutInfo shortcut = new ShortcutInfo.Builder(getActivity(), "id1") .setShortLabel("アイコン時の名前") .setLongLabel("ロングタップ時の名前") .setIcon(Icon.createWithResource(getActivity(), R.mipmap.ic_launcher)) .setIntent(it) .build();
  27. 27. ベストプラクティス ● デザインガイドラインに従おう ● 4つまでにしよう ● 説明は短い方が10文字。長い方は25文字。 ● 同じ作業をアプリからでもできるように ○ ショートカットに対応してないホームアプリもあるよ ● updateは意味が同じときのみにしよう ● 動的に追加したものはリストアされないよ
  28. 28. くわしくは https://developer.android.com/preview/shortcuts.html
  29. 29. 定数追加 ● int DENSITY_260 ● int DENSITY_300 ● int DENSITY_340 Android Wear用 「実デバイスがこれに近いから、追加しといたでー」 android.util.DisplayMetrics
  30. 30. Android Wear系 WearableExtenderにメソッド追加 ● setHintDisplayActionInline() ● getHintDisplayActionInline()
  31. 31. API 25のWearエミュレーターは まだ、ない。。。
  32. 32. InputContentInfo という新キャラ commitContent()というメソッドがいろんなクラス/イ ンターフェースに追加されている android.view.inputmethod
  33. 33. Image Keyboard Support
  34. 34. 引用元:https://developer.android.com/preview/image-keyboard.html アニメGIFが 貼れる
  35. 35. ん?
  36. 36. これ どっかで 見たことない?
  37. 37. 引用元:https://developer.apple.com/imessage/
  38. 38. EditTextで対応する必要があります。 コード量が結構あるので https://developer.android.com/preview/image-k eyboard.html をみてね どう実装するの?
  39. 39. API 24 → 25のdiffまとめ 奇抜なdiffは実はありませんでした https://developer.android.com/preview/ api-overview.html に書いてある通りのdiffといった感じ
  40. 40. API Diff 23 ↓ 24
  41. 41. 追加パッケージ ● android.icu.lang ● android.icu.math ● android.icu.text ● android.icu.util ● android.os.health ● android.service.quicksettings ● android.service.vr ● java.util.function ● java.util.stream ※変更のあるパッケージはたくさん
  42. 42. 7.0の新機能は もう ご存知だと思うので。。。
  43. 43. Contextクラス boolean deleteSharedPreferences(String) →指定したSharedPreferenceファイルを 削除する それ、無かったんかい
  44. 44. DatePickerDialogクラス 次のコンストラクタが追加 DatePickerDialog (Context context) それ、無かったんかい →現在時刻でダイアログ作るよ!
  45. 45. みんな大好きFragmentに次のメソッド追加 void onAttachFragment(Fragment) それ、無かったんかい →Fragment in Fragmentで、子Fragmentを貼り 付けようとする時に呼ばれるよ! 引数には、これから貼り付ける子Fragmentが 渡されるよ!
  46. 46. BackupAgentに次のメソッド追加 void onQuotaExceeded(long, long) それ、無かったんかい →バックアップしようとして、容量オーバーだった時 に呼ばれるよ!
  47. 47. GradientDrawableに大量のgetter ● ColorStateList getColor() ● int[] getColors() ● float[] getCornerRadii() ● float getCornerRadius() ● float getGradientCenterX() ● float getGradientCenterY() ● int getGradientType() ● int getShape() ● boolean getUseLevel() それ、無かったんかい
  48. 48. Deprecated テストといえばandroid.testパッケージだよね!
  49. 49. android.testは全滅!
  50. 50. サポートライブラリを使うのが主流 @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Test public void useAppContext() throws Exception { // Context of the app under test. Context appContext = InstrumentationRegistry.getTargetContext(); assertEquals("package", appContext.getPackageName()); } } テストはどうなる?
  51. 51. たのしめました?
  52. 52. ● API 23→24の大きな差分はJava 8 ● API 24→25は純粋な機能追加 ● API Diffを見ると、地道な改善の跡が発見でき るよ! ● こっそりDeprecatedになったのもわかるよ! まとめ
  53. 53. モケラを よろしくおねがいします

×