クロスプラットフォームaed 検索のキモ

54
MVP Community Camp 2015 クロスプラットフォーム AED 検索のキモ 2015/01/31 初音玲

Upload: akira-hatsune

Post on 16-Jul-2015

346 views

Category:

Education


6 download

TRANSCRIPT

Page 1: クロスプラットフォームAED 検索のキモ

MVP Community Camp 2015 クロスプラットフォームAED 検索のキモ

2015/01/31 初音玲

Page 2: クロスプラットフォームAED 検索のキモ

アジェンダ

AED検索とは

Microsoft Azure Mobile Servicesのキモ

universal Windows appのキモ

Xamarinのキモ

Page 3: クロスプラットフォームAED 検索のキモ

本日のゴール

Microsoft Azure Mobile Servicesが何かが分かる

クラスプラットフォームのゴール形態が分かる

Page 4: クロスプラットフォームAED 検索のキモ

AED検索とは

Page 5: クロスプラットフォームAED 検索のキモ
Page 6: クロスプラットフォームAED 検索のキモ

AEDの現状

国内40万台

一般利用可能20万台

Page 7: クロスプラットフォームAED 検索のキモ

AEDの現状

国内40万台

一般利用可能20万台

使用率 3.7% (2013年)

Page 8: クロスプラットフォームAED 検索のキモ

使用率3.7%

心肺停止者

年間73,023人

うち、目撃者あり

年間23,797人

32.6%

67.4%

目撃者あり 目撃者なし

Page 9: クロスプラットフォームAED 検索のキモ

使用率3.7%

32.6%

67.4%

目撃者あり 目撃者なし

96.3%

3.7%

AED未使用 AED使用

Page 10: クロスプラットフォームAED 検索のキモ

使用率3.7%

目撃者ありの場合の使用率

Page 11: クロスプラットフォームAED 検索のキモ

目撃者ありの場合の使用率

3.7%881人 / 23,797人

Page 12: クロスプラットフォームAED 検索のキモ

すべての心停止者に対する使用率

1.2%881人 / 73,023人

Page 13: クロスプラットフォームAED 検索のキモ

なぜこんなに使用率が低いのだろう

AEDって最近のもの?

認知率が低い?

使い方が分からない?

Page 14: クロスプラットフォームAED 検索のキモ

なぜこんなに使用率が低いのだろう

AEDって最近のもの?

認知率が低い?

使い方が分からない?

Page 15: クロスプラットフォームAED 検索のキモ

なぜこんなに使用率が低いのだろう

AEDって最近のもの?

⇒2014年で10年目

認知率が低い?

使い方が分からない?

Page 16: クロスプラットフォームAED 検索のキモ

なぜこんなに使用率が低いのだろう

AEDって最近のもの?

認知率が低い?

⇒認知率93.6%

使い方が分からない?

93.6%

6.4%

知っている 知らない

Page 17: クロスプラットフォームAED 検索のキモ

なぜこんなに使用率が低いのだろう

AEDって最近のもの?

認知率が低い?

使い方が分からない?

⇒講習受講率50.7%

50.7%

49.3%

ある ない

Page 18: クロスプラットフォームAED 検索のキモ

Why:救命処置をとれない理由

目撃時に救命措置をとれない理由は何ですか?

18

47.7%

30.4%

25.6%

25.0%

22.5%

7.9%

7.4%

4.0%

方法が分からない

対応する自信がない

専門家に任せた方が良い

方法を忘れてしまった

怖くて手が出せない

対応したくない

巻き込まれたくない

その他

Page 19: クロスプラットフォームAED 検索のキモ

AED認知率向上、講習会の実施、

にプラスして何かが必要

19

Page 20: クロスプラットフォームAED 検索のキモ

アプリ作れば解決すると思っていた時期もありました

Page 21: クロスプラットフォームAED 検索のキモ

問題は

Page 22: クロスプラットフォームAED 検索のキモ

問題は

アプリから使えるAED位置情報がない

自治体の公開フォーマットは不統一

二次利用禁止で集めているところはある

Page 23: クロスプラットフォームAED 検索のキモ

問題は

アプリから使えるAED位置情報がない

自治体の公開フォーマットは不統一

二次利用禁止で集めているところはある

なければ作るのが「開発者」

作りました

Page 24: クロスプラットフォームAED 検索のキモ

システム構成

24

Microsoft Azure Mobile Services

Microsoft Azure SQL Database

Microsoft Azure Notification Hub

Windowsストアアプリ / Android & iOSアプリ(Xamarin)

AEDオープンデータプラットフォーム

Page 25: クロスプラットフォームAED 検索のキモ

AzureMobile

Services

AED情報の収集

情報記録

認証

AzureSQL Server

Facebook認証

AED管理用データベース経済産業省 IODD2014

AEDの共通語彙基盤に準拠

Page 26: クロスプラットフォームAED 検索のキモ

心停止者を発見したときには…

該当AED抽出

AzureSQL Server

AzureMobile

Services

Facebook認証

AED管理用データベース経済産業省 IODD2014

AEDの共通語彙基盤に準拠

Page 27: クロスプラットフォームAED 検索のキモ

私のめざしたい姿

使用率3.7%を4%に上げる

Page 28: クロスプラットフォームAED 検索のキモ

私のめざしたい姿

使用率3.7%を4%に上げるだけじゃ満足できない

Page 29: クロスプラットフォームAED 検索のキモ

私のめざしたい姿

使用率3.7%を4%に上げるだけじゃ満足できない

偶然そばに人がいたときだけじゃ満足できない

Page 30: クロスプラットフォームAED 検索のキモ

私のめざしたい姿

すべての心停止者にAEDを

Page 31: クロスプラットフォームAED 検索のキモ

将来想定(M2Mによる119番連携/SOS自動発信)

通知

認証

該当者抽出

該当AED抽出

AED位置表示

SOS位置表示

承諾応答

通知ハブ

AzureSQL Server

AzureMobile

Services

通知

Facebook認証

AED管理用データベース経済産業省 IODD2014

AEDの共通語彙基盤に準拠

ウェラブル/スマホなどからの自動発信

Page 32: クロスプラットフォームAED 検索のキモ

Microsoft Azure Mobile Servicesのキモ

Page 33: クロスプラットフォームAED 検索のキモ

AEDオープンデータAPI

指定した都道府県単位のAED情報一覧

指定した市町村区単位のAED情報一覧

指定した緯度経度の直近AED情報

指定した緯度経度の指定範囲内のAED情報一覧

指定したIDのAED情報

Page 34: クロスプラットフォームAED 検索のキモ

直近AED検索速度<3秒

東アジア 3.23sec ⇒ 国内 2.95sec

Page 35: クロスプラットフォームAED 検索のキモ

サーバー側でfacebook認証およびfacebook投稿

登録/変更時のみ

Page 36: クロスプラットフォームAED 検索のキモ

使いやすさを考えたAPIのアクセス許可設定

GETは緩く、POSTは認証済のみ、削除は管理者

Page 37: クロスプラットフォームAED 検索のキモ

DBアクセス

カスタムAPIによる細かな制御を実施している

テーブルの自動生成は利用していない

プロト開発には有用

実開発までのどこかできちんとしたDB設計で性能担保

Page 38: クロスプラットフォームAED 検索のキモ

今後の改善

直近AED検索の実行プラン

直近を求めるために全件並び替えを実施

「並び替え」の対象レコード数を少なくする

緯度経度でざっくり絞る?

Page 39: クロスプラットフォームAED 検索のキモ

DB破壊からの復旧

AEDオープンデータプラットフォーム公開前に実施済

破壊シナリオ

AED検索用のMobile Serviceの他に、もう1つMobile Serviceを作成

構成画面にて接続先データベースをAED検索用SQL Databaseに切り替え

削除するときに関連するデータベースも削除

復旧シナリオ

データベースで管理⇒構成をえらび自動エクスポートの情報を設定

エクスポートから新しいデータベースを作成

元のサーバーを指定して復旧

Page 40: クロスプラットフォームAED 検索のキモ

universal Windows appのキモ

Page 41: クロスプラットフォームAED 検索のキモ

ロジックは共通

画面が別途

Page 42: クロスプラットフォームAED 検索のキモ

Portable Class Library

42

PCLプロジェクト

Windowsストアプロジェクト

WindowsPhoneプロジェクト

PCLビルド

PCL

PCL

参照設定

参照設定

Page 43: クロスプラットフォームAED 検索のキモ

共有

43

共有プロジェクト

Windowsストアプロジェクト

WindowsPhoneプロジェクト

ソースコード

参照設定

参照設定

ソースコード

ソースコード

Page 44: クロスプラットフォームAED 検索のキモ

for Windows

Page 45: クロスプラットフォームAED 検索のキモ

for Windows Phone

Page 46: クロスプラットフォームAED 検索のキモ

Xamarinのキモ

Page 47: クロスプラットフォームAED 検索のキモ

Portable Class Library

47

PCLプロジェクト

Androidプロジェクト

iOSプロジェクト

PCLビルド

PCL

PCL

参照設定

参照設定

Page 48: クロスプラットフォームAED 検索のキモ

共有

48

共有プロジェクト

Androidプロジェクト

iOSプロジェクト

ソースコード

参照設定

参照設定

ソースコード

ソースコード

Page 49: クロスプラットフォームAED 検索のキモ

iOSとAndroidでコードに差があるとき

49

PCLは「if」で条件分岐・実行時に判定

共有コードは「#if」で条件分岐・コンパイル時に判定

Page 50: クロスプラットフォームAED 検索のキモ

PCL vs 共有コード

PCL方式なら

OS別ロジックがそもそも入り込まない

共有コード方式なら

universal Windows appsは共有コード方式

実行ファイルにOS別ロジックが入らない

OS別ロジックに専用クラスが書ける

50

Page 51: クロスプラットフォームAED 検索のキモ

Xamarin Forms

Android版はもう動いています

Xamarin.Forms.Mapは成長中

Androidのmapに比べると…

Page 52: クロスプラットフォームAED 検索のキモ

まとめ

Page 53: クロスプラットフォームAED 検索のキモ

4OSクラスプラットフォームのゴール

53

PCLプロジェクト

Windowsストアプロジェクト

WindowsPhoneプロジェクト

PCL参照設定

ViewModel

Model

Androidプロジェクト

iOSプロジェクト

固有ロジック 固有ロジック 固有ロジック 固有ロジック

View View View View

Page 54: クロスプラットフォームAED 検索のキモ

AEDオープンデータプラットフォームhttp://hatsunejournal.jp/w8/AEDOpendata/

誰でもが無償で自由に使えるAEDデータ

直近検索、facebook認証などを整備⇒スマホ側アプリが楽に

クライアント

ロジックは可能な限り共通化

画面の見た目はOSごとに別(基本は一緒)