ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法Microsoft MVP / Oracle ACE開発エンジニア初音 玲http://blogs.wankuma.com/hatsune/
2概要インターネットには様々なオープンWebAPIが存在します。このようなWebAPIをマッシュアップすれば高価値なアプリを効果的に作成することができます。また、この手法はベンダーロックインという弊害も少なく、様々なデバイスへの展開もやりやすい...
3セッションのゴール• WebAPI の概要を知る• WebAPIの使い方を学ぶ• WebAPI開発を体感する
4自己紹介開発者インフラエンジニアアーキテクトMicrosoftMVPOracle ACE国内大手SIer勤務
WebAPIとは
6Web APIとは• Webでのサービス提供は• 従来は人が見て分かる形式のみ• 最近ではプログラムから使いやすいような形式でも
7なぜ、WebAPIが提供されるのか?• 公開データや公開機能を使って、自社では考え付かないような新しいサービスが作られる• WebAPI利用側から自社サイトへの流入を期待(広告効果)• 公開データや公開機能を使って、自社が手薄なモバイルデバイ...
8なぜ、WebAPIが提供されるのか?• 公開データや公開機能を使って、自社では考え付かないような新しいサービスが作られる• WebAPI利用側から自社サイトへの流入を期待(広告効果)• 公開データや公開機能を使って、自社が手薄なモバイルデバイ...
9なぜ、WebAPIを使うのか?• 自前でデータを収集、維持する必要がない• 自前でロジックを設計、構築、維持する必要がない• 複数のWebAPIを組み合わせてアイデアを具現化可能
10WebAPIの例• Twitter API• Facebook API• Foursquare API• はてなブックマーク API• Hotpepper API• じゃらん API• Google Maps• 日本語形態素解析API (Y...
WebAPIを使ってみる
12Web APIプロトコルの移り変わり普及期REST発展期SOAP前史時代CORBA DCOMhttpベース
13RESTでの主なデータ形式RSSJSONXML
14WindowsストアアプリでWebAPIを使う• Model• DataContractJsonSerializer• INotifyPropertyChanged• ViewModel• INotifyPropertyChanged• V...
DemoWindowsストアアプリ
WebAPIを作ってみる
17BaaS (Backend as a Service)• バックエンド用クラウド• データベース• GPSロケーション• ストレージ• 通知• ユーザ認証• SNS連携• アクセス制限
18なぜ、BaaSなのか?• REST/JSON対応のWebアプリじゃダメなんですか?テスト(10営業日)テスト(10営業日)開発(20営業日)開発(10営業日)設計(10営業日)設計(5営業日)
19BaaSの例• Windows Azure Mobile Services• appiaries (アピアリーズ)
20Windows Azure Mobile Service• コードファーストでデータ格納• 外部のユーザ認証系と連携• 認証方式とアクセス権制御• 外部のPush通知
21Windows Azure Mobile Service
22接続用コードを取得Mobile Service上のアプリへ接続する
23テーブル作成
24認証系
25アクセス許可系
26Push通知
27クライアント + MobileServices
DemoWindows Azure Mobile Services
29Windows Azure Mobile Serviceの進め方1. 格納したいデータを設計2. 格納したいデータのアクセス権を設計3. 格納したいデータのクラス作成4. Azure Portalでテーブル名とアクセス権設定5. アプリ実装...
30料金無料 占有料金 無料 8.31円/時間preview期間中 無料 正規料金の20%CPU 共有 1CPU/インスタンス作成数制限 10サービス/サブスクリプション100サービス/インスタンスジョブスケジュール 1件(1か月あたり700回...
31appiaries• 国産初のBaaS• 2つのサービスを提供• 認証• JSONデータ、テキスト、画像などのファイル入出力
32アプリ登録
33OAuth編集
34ダッシュボード
35データベース – コレクション作成
36appiariesでのオブジェクト
37ユーザ登録
38Push通知
39appiariesの進め方1. 格納したいデータを設計2. 格納したいデータのアクセス権を設計3. 格納したいデータのクラス作成4. ユーザ登録5. ダッシュボードでオブジェクトとアクセス権設定6. アプリ実装7. テスト
Demoappiaries
41BaaS (Backend as a Service)の注意点• バックエンドとして新規作成に向いている• 既存DBの情報を提供するWebAPIとしては不向き• テーブル項目の削除できないのでゴミを許容する心が必要
42テーブル定義を変えたい• テーブル名の変更• テーブルの作り直し• 列名の変更• テーブルの作り直し• 列の追加• 動的スキーマー (初期状態On)• 列の削除• テーブルの作り直し
43ASP.NET Web API
44APIのドキュメントが自動生成される
45Azure WebSitesへのDeploy
46Azureでの実行
47Blend – クラス定義からリスト作成
DemoASP.NET Web API
49認証<Authorize>Public Class ValuesController
50ASP.NET Web API• 利点• 既存DBに対するWeb API作成向き• ビジネスロジックをWeb API側に実装しやすい• 欠点• 認証系の実装が必要(部品化可能)• Push通知の実装が必要(部品化可能)
まとめ
52サマリー• デバイス側はREST/JSON用ライブラリが充実サーバー側はBaaSにより短納期化• BaaSの問題• 短納期化しづらいテスト工程が占める割合が増える⇒自動テストなどによりテスト工数を維持し日数を減らす• BaaS前提の仕様から...
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
Upcoming SlideShare
Loading in …5
×

ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法

1,121 views
1,117 views

Published on

インターネットには様々なオープンWebAPIが存在します。
このようなWebAPIをマッシュアップすれば高価値なアプリを効果的に作成することができます。
また、この手法はベンダーロックインという弊害も少なく、様々なデバイスへの展開もやりやすい方法です。
単一デバイスの一人勝ちという状況が生まれにくくなりつつある現在の状況を考えると、WebAPIの使い方と作り方はまさに技術者が覚えるべき基本的知識となっていくでしょう。

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,121
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法

  1. 1. ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法Microsoft MVP / Oracle ACE開発エンジニア初音 玲http://blogs.wankuma.com/hatsune/
  2. 2. 2概要インターネットには様々なオープンWebAPIが存在します。このようなWebAPIをマッシュアップすれば高価値なアプリを効果的に作成することができます。また、この手法はベンダーロックインという弊害も少なく、様々なデバイスへの展開もやりやすい方法です。単一デバイスの一人勝ちという状況が生まれにくくなりつつある現在の状況を考えると、WebAPIの使い方と作り方はまさに技術者が覚えるべき基本的知識となっていくでしょう。
  3. 3. 3セッションのゴール• WebAPI の概要を知る• WebAPIの使い方を学ぶ• WebAPI開発を体感する
  4. 4. 4自己紹介開発者インフラエンジニアアーキテクトMicrosoftMVPOracle ACE国内大手SIer勤務
  5. 5. WebAPIとは
  6. 6. 6Web APIとは• Webでのサービス提供は• 従来は人が見て分かる形式のみ• 最近ではプログラムから使いやすいような形式でも
  7. 7. 7なぜ、WebAPIが提供されるのか?• 公開データや公開機能を使って、自社では考え付かないような新しいサービスが作られる• WebAPI利用側から自社サイトへの流入を期待(広告効果)• 公開データや公開機能を使って、自社が手薄なモバイルデバイスへの展開が期待できる• 自社サービスの多デバイス展開を期待(開発リソース)
  8. 8. 8なぜ、WebAPIが提供されるのか?• 公開データや公開機能を使って、自社では考え付かないような新しいサービスが作られる• WebAPI利用側から自社サイトへの流入を期待(広告効果)• 公開データや公開機能を使って、自社が手薄なモバイルデバイスへの展開が期待できる• 自社サービスの多デバイス展開を期待(利用ユーザ数増加)事業継続性は?
  9. 9. 9なぜ、WebAPIを使うのか?• 自前でデータを収集、維持する必要がない• 自前でロジックを設計、構築、維持する必要がない• 複数のWebAPIを組み合わせてアイデアを具現化可能
  10. 10. 10WebAPIの例• Twitter API• Facebook API• Foursquare API• はてなブックマーク API• Hotpepper API• じゃらん API• Google Maps• 日本語形態素解析API (Yahoo!)
  11. 11. WebAPIを使ってみる
  12. 12. 12Web APIプロトコルの移り変わり普及期REST発展期SOAP前史時代CORBA DCOMhttpベース
  13. 13. 13RESTでの主なデータ形式RSSJSONXML
  14. 14. 14WindowsストアアプリでWebAPIを使う• Model• DataContractJsonSerializer• INotifyPropertyChanged• ViewModel• INotifyPropertyChanged• View• DataContext = ViewModel• XAML – Binding• <Image Source="{Binding From_user_image}" />
  15. 15. DemoWindowsストアアプリ
  16. 16. WebAPIを作ってみる
  17. 17. 17BaaS (Backend as a Service)• バックエンド用クラウド• データベース• GPSロケーション• ストレージ• 通知• ユーザ認証• SNS連携• アクセス制限
  18. 18. 18なぜ、BaaSなのか?• REST/JSON対応のWebアプリじゃダメなんですか?テスト(10営業日)テスト(10営業日)開発(20営業日)開発(10営業日)設計(10営業日)設計(5営業日)
  19. 19. 19BaaSの例• Windows Azure Mobile Services• appiaries (アピアリーズ)
  20. 20. 20Windows Azure Mobile Service• コードファーストでデータ格納• 外部のユーザ認証系と連携• 認証方式とアクセス権制御• 外部のPush通知
  21. 21. 21Windows Azure Mobile Service
  22. 22. 22接続用コードを取得Mobile Service上のアプリへ接続する
  23. 23. 23テーブル作成
  24. 24. 24認証系
  25. 25. 25アクセス許可系
  26. 26. 26Push通知
  27. 27. 27クライアント + MobileServices
  28. 28. DemoWindows Azure Mobile Services
  29. 29. 29Windows Azure Mobile Serviceの進め方1. 格納したいデータを設計2. 格納したいデータのアクセス権を設計3. 格納したいデータのクラス作成4. Azure Portalでテーブル名とアクセス権設定5. アプリ実装6. テスト
  30. 30. 30料金無料 占有料金 無料 8.31円/時間preview期間中 無料 正規料金の20%CPU 共有 1CPU/インスタンス作成数制限 10サービス/サブスクリプション100サービス/インスタンスジョブスケジュール 1件(1か月あたり700回上限)10件受信データ転送 無制限 無制限送信データ転送 最大165MB/日 通常料金の従量制SQLデータベース(必須) 通常料金の従量制 通常料金の従量制
  31. 31. 31appiaries• 国産初のBaaS• 2つのサービスを提供• 認証• JSONデータ、テキスト、画像などのファイル入出力
  32. 32. 32アプリ登録
  33. 33. 33OAuth編集
  34. 34. 34ダッシュボード
  35. 35. 35データベース – コレクション作成
  36. 36. 36appiariesでのオブジェクト
  37. 37. 37ユーザ登録
  38. 38. 38Push通知
  39. 39. 39appiariesの進め方1. 格納したいデータを設計2. 格納したいデータのアクセス権を設計3. 格納したいデータのクラス作成4. ユーザ登録5. ダッシュボードでオブジェクトとアクセス権設定6. アプリ実装7. テスト
  40. 40. Demoappiaries
  41. 41. 41BaaS (Backend as a Service)の注意点• バックエンドとして新規作成に向いている• 既存DBの情報を提供するWebAPIとしては不向き• テーブル項目の削除できないのでゴミを許容する心が必要
  42. 42. 42テーブル定義を変えたい• テーブル名の変更• テーブルの作り直し• 列名の変更• テーブルの作り直し• 列の追加• 動的スキーマー (初期状態On)• 列の削除• テーブルの作り直し
  43. 43. 43ASP.NET Web API
  44. 44. 44APIのドキュメントが自動生成される
  45. 45. 45Azure WebSitesへのDeploy
  46. 46. 46Azureでの実行
  47. 47. 47Blend – クラス定義からリスト作成
  48. 48. DemoASP.NET Web API
  49. 49. 49認証<Authorize>Public Class ValuesController
  50. 50. 50ASP.NET Web API• 利点• 既存DBに対するWeb API作成向き• ビジネスロジックをWeb API側に実装しやすい• 欠点• 認証系の実装が必要(部品化可能)• Push通知の実装が必要(部品化可能)
  51. 51. まとめ
  52. 52. 52サマリー• デバイス側はREST/JSON用ライブラリが充実サーバー側はBaaSにより短納期化• BaaSの問題• 短納期化しづらいテスト工程が占める割合が増える⇒自動テストなどによりテスト工数を維持し日数を減らす• BaaS前提の仕様からのカスタマイズの難易度⇒これから充実される?• 短納期故にBaaS調査日数の確保の困難さ⇒使う必要に迫られる前に知っておく!• BaaSではなくASP.NET Web APIの利用も検討するのがよい

×