• Save
ネイティブアプリ開発を加速する、モダンバックエンドとのタイアップ手法
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,044 views

インターネットには様々なオープンWebAPIが存在します。

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

Statistics

Views

Total Views
1,044
Views on SlideShare
738
Embed Views
306

Actions

Likes
1
Downloads
0
Comments
0

5 Embeds 306

http://www.buildinsider.net 222
https://twitter.com 54
http://www29.atwiki.jp 27
http://e2cb733fffcb4dc4b6ef9dfc3e721f64.cloudapp.net 2
https://www.google.co.jp 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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