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

Mais conteúdo relacionado

Mais procurados

おばかアプリ勉強会資料 マイクロソフト
おばかアプリ勉強会資料 マイクロソフトおばかアプリ勉強会資料 マイクロソフト
おばかアプリ勉強会資料 マイクロソフト
atmarkit
 
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみたWebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
Shunji Konishi
 

Mais procurados (20)

UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
Universal Apps (UWP)
Universal Apps (UWP)Universal Apps (UWP)
Universal Apps (UWP)
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
Uwpアプリケーション開発入門
Uwpアプリケーション開発入門Uwpアプリケーション開発入門
Uwpアプリケーション開発入門
 
Uwpハンズオン参加レポート
Uwpハンズオン参加レポートUwpハンズオン参加レポート
Uwpハンズオン参加レポート
 
2015-03-21 FlashAir 進捗報告会
2015-03-21 FlashAir 進捗報告会2015-03-21 FlashAir 進捗報告会
2015-03-21 FlashAir 進捗報告会
 
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
 
HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう HTML5でできるカメラアプリを実際に体験しよう
HTML5でできるカメラアプリを実際に体験しよう
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門
 
Windows ストアアプリを HTMLで作成する
Windows ストアアプリをHTMLで作成するWindows ストアアプリをHTMLで作成する
Windows ストアアプリを HTMLで作成する
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
 
20151205フルスクラッチcms作成のノウハウ With Laravel
20151205フルスクラッチcms作成のノウハウ With Laravel20151205フルスクラッチcms作成のノウハウ With Laravel
20151205フルスクラッチcms作成のノウハウ With Laravel
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
その後のBash on windows
その後のBash on windowsその後のBash on windows
その後のBash on windows
 
おばかアプリ勉強会資料 マイクロソフト
おばかアプリ勉強会資料 マイクロソフトおばかアプリ勉強会資料 マイクロソフト
おばかアプリ勉強会資料 マイクロソフト
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
 
オープンセミナー2014@広島プレゼン
オープンセミナー2014@広島プレゼンオープンセミナー2014@広島プレゼン
オープンセミナー2014@広島プレゼン
 
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみたWebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
 

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

HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
Monaca
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
Monaca
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
Monaca
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
Yoichiro Sakurai
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
Mitsuru Katoh
 

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

NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
NSA NB委員会セミナー「モバイルアプリ開発業務におけるmonacaの活用」
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
なぜ Enterprise は Sencha を選ぶのか?
なぜ Enterprise は Sencha を選ぶのか?なぜ Enterprise は Sencha を選ぶのか?
なぜ Enterprise は Sencha を選ぶのか?
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
オープンクラウド基盤の価値と導入へ向けた考慮点 〜IaaSからPaaSまで - EMC様セミナー 「あなたのビジネスを高速化!DevOpsとアジャイル開発...
 
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
HTML5ハイブリッド アプリ開発の実践〜開発現場ですぐに活かせるコツを伝授〜
 
60分でわかるレスポンシブWebデザイン[セミナー資料]
60分でわかるレスポンシブWebデザイン[セミナー資料]60分でわかるレスポンシブWebデザイン[セミナー資料]
60分でわかるレスポンシブWebデザイン[セミナー資料]
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
20120413 nestakabaneworkshop
20120413 nestakabaneworkshop20120413 nestakabaneworkshop
20120413 nestakabaneworkshop
 
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
 
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
 
Future customer experience
Future customer experienceFuture customer experience
Future customer experience
 
Cordova×業務システム:失敗しないモバイル開発の秘訣
Cordova×業務システム:失敗しないモバイル開発の秘訣Cordova×業務システム:失敗しないモバイル開発の秘訣
Cordova×業務システム:失敗しないモバイル開発の秘訣
 
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 
MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発MSBプレ講座ノーコード開発
MSBプレ講座ノーコード開発
 

Último

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Último (8)

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

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