YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 05-01 Why Content Providers Matter

Get Embed Code
10 Languages

Showing Revision 2 created 04/26/2015 by Udacity.

  1. コンテンツプロバイダを作る前に
  2. なぜコンテンツプロバイダを
    使うのかを考えましょう
  3. 簡単に言えばSQLiteや
    ファイルなどのデータソースを抽象化して
  4. データを安全かつ効率的に
    アプリ内で共有することができるからです
  5. 他のアプリがアクセスする場合
    データ保有の形を意識する必要がありません
  6. カレンダー、SMS、連絡先のAPIなどは
    共有のコンテンツプロバイダを使っています
  7. あとで天気のデータベースを共有しますが
  8. データを公開しない場合
    この作業は必要ないと思う人もいるでしょう
  9. 確かにそれも可能ですが
    実際はそうすべきではありません
  10. 例えばSunshineでは
    データの保存にSQLiteを使いますが
  11. ファイルや動的なランタイムデータや
    異なるデータライブラリにも保存できます
  12. コンテンツプロバイダを使えば
    例えばデータソースを切り替えたり
  13. データのストレージの実装の詳細を知らなくても
  14. 他の人が簡単にUIレイヤコードを
    管理することができます
  15. UIレイヤでカーソルを返すのは一般的な機構で
  16. SQLiteデータベースの戻り値と同じです
  17. データレイヤの実装が変わっても
    コンテンツプロバイダは機能します
  18. コードを書くのは皆さんです
  19. スッキリした設計をするための
    定型コードはたくさんあります
  20. フレームワークに関しては
  21. すべてのデータはコンテンツプロバイダを使って
    扱う点に留意してください
  22. 他のアプリとデータをやり取りしたい場合
  23. 例えばデータをウィジェットに送ったり
  24. 新しいアプリからの
    検索結果を返してもらいたいなら
  25. コンテンツプロバイダが必要です
  26. Google PlayストアやGmailウィジェットも
    機能コンテンツプロバイダを使っており
  27. Google Playから検索結果を得るのも
    同じ動作です
  28. データの同期やクエリのプロセスや
    その結果によりUIをアップデートするプロセスを
  29. 最適化するAPIもたくさんあり
  30. それらもコンテンツプロバイダを必要とします
  31. APIにはアプリがサーバと
    効率的に同期するためのSyncAdapter、
  32. データをUI読み込むに読み込むための
    CursorLoader
  33. そしてデータが変化すると
    自動的にUIをアップデートする
  34. 組み込みのContentObserverがあります
  35. もちろんすべて自分で構築することもできますが
  36. あえてコンテンツプロバイダを使わない場合
  37. 利用するクラスタのすべてを
    再作成する膨大な作業に追われてしまいます
  38. のちほどコンテンツプロバイダの公開と
  39. Lotusを利用して効率的に
    アクセスする方法に触れます
  40. レッスン6で
    効率的なバックグラウンドのアップデートと
  41. SyncAdapterの説明をします
  42. まずはコンテンツプロバイダの
    作り方を説明しましょう