SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
2016/01/29
Tomohiro Mitsumune
DeSC Healthcare, Inc.
B2B2Cなヘルスケ
アサービスの作り方
1
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アジェンダ
⁃ DeSCヘルスケアとは?
⁃ Webサービス
⁃ ネイティブアプリ
2
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介
⁃ @t_mitz
⁃ DeSCヘルスケア株式会社 サービス企画開発部
⁃ 前職では新規サービス立ち上げや開発チームのマネージメントに従事
⁃ DeNAではマンガボックスやNBPFの立ち上げに参加
⁃ サーバーサイドエンジニアだったけど最近はiOSとAndroidがメイン
⁃ 齢35にして人生初のフルマラソン完走しました
3
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeSCヘルスケア?
4
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeSCヘルスケア
5
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
KenCoM
6
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Webサービス
7
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
やったこと
⁃ アプリケーションの一部の設計・実装を担当
⁃ ポータルサイト部分
⁃ CI / CD
⁃ 社内でRailsベースのCI/CD環境が無かった
⁃ 環境の制限でSaaSが利用できないため仕組みを自作
⁃ コードレビューおじさん
⁃ コンポーネント間でのデータ連係があるので設計を重点的に
⁃ Ruby書いた経験が少ない人もいたのでサポート(厳しめに)
8
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
構成
⁃ ポータルサイト
⁃ Rails4
⁃ データAPI
⁃ Rails4
⁃ grape
9
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
10
システム全体
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティ
⁃ 要件が非常に厳しい
⁃ 厚生労働省が定めているセキュリティガイドラインに準拠
⁃ データヘルス計画における健康情報の取扱い
⁃ 匿名データの作成・提供に係わるガイドライン
⁃ 医療情報システムの安全管理に関するガイドライン
11
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティ対策
12
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
データベース構成
⁃ 個人情報とそうでないデータでDBを分割
⁃ セキュリティ対策のため秘匿性が高い個人情報はAPI経由で取得
⁃ データの取得に必要なtokenはJWTで生成しAPIサーバーで検証
⁃ MySQLもSSL接続
13
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
データベース暗号化
⁃ 個人情報に該当するデータは全て暗号化
⁃ symmetric-encryptionというgemを利用
⁃ http://rocketjob.github.io/symmetric-encryption/
⁃ Railsから透過的にOpenSSLを使ったデータ暗号化
⁃ 環境(dev, test, prod)ごとに異なる設定
⁃ セキュリティ強度を高めるため暗号化に利用する を定期的に更新
- の生成や やIVのマスキング処理をするコマンドラインツールは
gemを自作(非公開)
14
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
CI / CD
15
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ChatOPS
IRC + Jenkins + Github Enterprise + sinatra + capistrano
16
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Q. なんでSaaSを使っていないの?
A. オンプレ環境で利用できるSaaSが無かった(当時)
⁃ またAWSやAzureはセキュリティポリシー的に利用不可
17
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Q. なんでSlackじゃなくてIRCなの?
A. Slackのアクセス元IPアドレスが固定できないため通
信元の制限がかけられなかったから
⁃ インバウンドな通信を許可するなら経路は限定
⁃ SlackはインフラがAWSなので動的IP
⁃ ダメ元でサポートにメールしてみたけどやっぱりダメでした
⁃ 将来的に固定IPにできるようにしたいけど今は無理、という回答
18
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ネイティブアプリ
19
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
はじめに
⁃ やったこと
⁃ iOSアプリ開発
⁃ Androidアプリ開発(少しだけ)
⁃ はなすこと
⁃ 主にiOS
⁃ 使っているライブラリの紹介
⁃ 開発していて気づいたこと・こまったこと
20
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ネイティブアプリの要件
⁃ あくまでメインはWebアプリ
⁃ ネイティブアプリはアドオン的な立ち位置
⁃ 導入先の健保でスマホ未所持な人が利用不可
⁃ 営業先が限定されてしまい機会損失
⁃ ネイティブアプリに期待されること
⁃ プッシュ通知で有資格者に健保からのお知らせ
⁃ バイタルデータを活用した機能
21
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
プッシュ通知
22
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Parse
23
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Parse
⁃ プッシュ通知の基盤として利用
⁃ 理由
⁃ コストに対する費用対効果が非常に高い
⁃ 開発コスト・ランニングコスト
⁃ 100万ユーザ/月までは無料
24
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Parseのメリット・デメリット
⁃ メリット
⁃ 組み込みが簡単
⁃ 管理画面の素晴らしい出来
⁃ 豊富なAPI
⁃ デメリット
⁃ 複雑なことはできないためビジネスロジックに合わないとつらい
⁃ 簡単に使えすぎてオペミスの発生確率が高そう
25
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
突然のshutdown
26
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
バイタルデータの活用
27
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
HealthKit
⁃ ヘルスケアに関するさまざまな項目を管理
⁃ iOS端末がヘルスケアデータの入れ物になるイメージ
⁃ 自動取得できるデータもあるが大半は別途入力が必要
⁃ HKStatisticsCollectionQueryを利用
⁃ ある期間内で指定したインターバルでデータ集計するAPI
⁃ 歩数グラフ作成に使っている
28
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
HealthKitでこまったこと
⁃ エラーが発生したときのデバッグ
⁃ compltionHandlerはprivateスレッドでバックグラウンド動作
⁃ closureのclosureとかで動いていたりするのでCrashlyticsで追う
のつらい。。。
⁃ 対応方法
⁃ 無駄にメモリを使わないようにいろんなところを最適化
29
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
iOS開発あれこれ
30
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
アプリ審査
⁃ HealthKitの利用
⁃ 利用用途をアプリ内で明記、が理由で数回リジェクト
⁃ レビュワーが変わる度に指摘
⁃ 細かい指摘をされるので審査依頼時に補足メッセージを添えると良い
31
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Swiftのバージョンアップ
⁃ Swift2.0で動いています
⁃ 1.1時代に開発スタート
⁃ 開発始めてすぐ1.2が出る
⁃ 実装自体もまだ小さかったのでMigrationはたいしたことなかった
⁃ WWDC2015でSwift2 + Xcode7発表
⁃ CocoaのAPIまわりはそれほど壊れなかった
⁃ Cocoapodでインストールしてるライブラリが大変
32
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
利用しているライブラリ
⁃ Alamofire
⁃ AlamofireImage
⁃ Realm
⁃ SwiftyJSON
⁃ Charts
33
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Alamofire
⁃ 1.3 → 2.0.X → 3.1.0 とバージョンアップ
⁃ 2.0からSwift 2に対応
⁃ 下位互換性の無いインターフェース変更が入った
⁃ 3.0はresponse serializationの改善をするためのリリース
⁃ 2.0をベースによりシンプルに
⁃ NSURLSessionを自前のものに差し替えたりできる
⁃ サーバーAPIをcallする処理が多かったの涙目で修正
34
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
AlamofireImage
⁃ Webから画像をダウンロード・キャッシュ
⁃ SDWebImageの代替ライブラリ
⁃ Alamofireのアドオンとして動作
Q. なんでSDWebImageを使ってないのか?
A. Pure Swiftで書かれたライブラリで統一したかったから
⁃ 画像fetchするベンチマーク結果はほぼ変わらなかった
⁃ Kingfisherも候補だったがAlamofireを導入済だったのでこちらに
35
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Realm
⁃ 0.95でConfigurationまわりの変更
⁃ Realm Javaと似た感じに
⁃ 0.96でNULLサポート
⁃ try catchのエラーハンドリングをやらないとエラー
⁃ エラーハンドリング対応のマイグレーションがめんどくさかった
⁃ Realmインスタンスを生成するところ全てで書く必要がある
36
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
Charts
⁃ MPAndroidChartをiOS向けにportされたグラフライブラリ
⁃ iOSとAndroidで同じグラフが作れてべんり
⁃ githubではios-chartsという名前
⁃ 問題点
⁃ APIインターフェースの一部に互換性がない
⁃ 公式ドキュメントがAndroidのみ
⁃ ソースコードがドキュメント 😇
37
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
38
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
39
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
⁃ Webアプリ
⁃ セキュリティ対応は大変
⁃ セキュリティ要件を満たしてくれるgemあるので活用
⁃ ネイティブアプリ
⁃ 巨人の肩の上に立つ
⁃ Swiftライブラリは最新版を使いましょう
40
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ご静聴ありがとうございました
41

Weitere ähnliche Inhalte

Was ist angesagt?

セキュリティ業務の内製とチームメンバー育成
セキュリティ業務の内製とチームメンバー育成セキュリティ業務の内製とチームメンバー育成
セキュリティ業務の内製とチームメンバー育成Toshiharu Sugiyama
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みToshiharu Sugiyama
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestMasaki Nakagawa
 
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Anyca におけるUIフレームワークとスマホによるドア操作の仕組みAnyca におけるUIフレームワークとスマホによるドア操作の仕組み
Anyca におけるUIフレームワークと スマホによるドア操作の仕組みShuhei Kawasaki
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNAの動画配信サービスを支えるインフラの内部  #denatechconDeNAの動画配信サービスを支えるインフラの内部  #denatechcon
DeNAの動画配信サービスを支えるインフラの内部 #denatechconDeNA
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconDeNA
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconDeNA
 
DeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechconDeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechconDeNA
 
サービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconサービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconDeNA
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNA
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechconDeNA
 
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconAnyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconDeNA
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)dena_study
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceMakoto Haruyama
 
DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤Kenshin Yamada
 
DeNAのAIとは #denatechcon
DeNAのAIとは #denatechconDeNAのAIとは #denatechcon
DeNAのAIとは #denatechconDeNA
 
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~Recruit Technologies
 

Was ist angesagt? (20)

セキュリティ業務の内製とチームメンバー育成
セキュリティ業務の内製とチームメンバー育成セキュリティ業務の内製とチームメンバー育成
セキュリティ業務の内製とチームメンバー育成
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
 
DeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechconDeNA private cloudのその後 #denatechcon
DeNA private cloudのその後 #denatechcon
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Anyca におけるUIフレームワークとスマホによるドア操作の仕組みAnyca におけるUIフレームワークとスマホによるドア操作の仕組み
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNAの動画配信サービスを支えるインフラの内部  #denatechconDeNAの動画配信サービスを支えるインフラの内部  #denatechcon
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
 
DeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechconDeNAのプログラミング教育の取り組み #denatechcon
DeNAのプログラミング教育の取り組み #denatechcon
 
サービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconサービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechcon
 
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechconDeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
 
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechconAndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
 
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconAnyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a ServiceDeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
 
DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤DeNAの分析を支える分析基盤
DeNAの分析を支える分析基盤
 
DeNAのAIとは #denatechcon
DeNAのAIとは #denatechconDeNAのAIとは #denatechcon
DeNAのAIとは #denatechcon
 
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
 

Andere mochten auch

Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsHypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsToru Kawamura
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews, Inc.
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Hideo Kimura
 
DeNA Programming education
DeNA Programming educationDeNA Programming education
DeNA Programming educationDeNA_pr
 
Bajaj Auto Co Introduction
Bajaj Auto Co IntroductionBajaj Auto Co Introduction
Bajaj Auto Co IntroductionPraful Metange
 
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014Eli Hurvitz
 
Carrot City: The impact of food on the design of cities and buildings - Mark ...
Carrot City: The impact of food on the design of cities and buildings - Mark ...Carrot City: The impact of food on the design of cities and buildings - Mark ...
Carrot City: The impact of food on the design of cities and buildings - Mark ...SBCBreakfastSessions
 
Η αγαπημένη μου πόλη
Η αγαπημένη μου πόληΗ αγαπημένη μου πόλη
Η αγαπημένη μου πόληdroula_
 
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014Pirkanmaan toisen asteen tvt-suunnitelma ITK2014
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014Riikka Lehto (Vanninen)
 
Engaging Students Virtually Throughout the Enrollment Cycle
Engaging Students Virtually Throughout the Enrollment CycleEngaging Students Virtually Throughout the Enrollment Cycle
Engaging Students Virtually Throughout the Enrollment CycleMarty Bennett
 
Populaarikulttuuri ja mainonta
Populaarikulttuuri ja mainontaPopulaarikulttuuri ja mainonta
Populaarikulttuuri ja mainontadynamo&son
 

Andere mochten auch (17)

メディアドゥが描く電子書籍配信ビジネスの未来
メディアドゥが描く電子書籍配信ビジネスの未来メディアドゥが描く電子書籍配信ビジネスの未来
メディアドゥが描く電子書籍配信ビジネスの未来
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in RailsHypermedia: The Missing Element to Building Adaptable Web APIs in Rails
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術Webエンジニアが学ぶ自動運転を支える技術
Webエンジニアが学ぶ自動運転を支える技術
 
勉強会のすすめ
勉強会のすすめ勉強会のすすめ
勉強会のすすめ
 
About Haystack
About HaystackAbout Haystack
About Haystack
 
はじめてのSymfony2
はじめてのSymfony2はじめてのSymfony2
はじめてのSymfony2
 
DeNA Programming education
DeNA Programming educationDeNA Programming education
DeNA Programming education
 
Bajaj Auto Co Introduction
Bajaj Auto Co IntroductionBajaj Auto Co Introduction
Bajaj Auto Co Introduction
 
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
חשבון נפש: מצב לימודי המתמטיקה בישראל - 2014
 
Boletín IV enero 2016
Boletín IV enero 2016Boletín IV enero 2016
Boletín IV enero 2016
 
Carrot City: The impact of food on the design of cities and buildings - Mark ...
Carrot City: The impact of food on the design of cities and buildings - Mark ...Carrot City: The impact of food on the design of cities and buildings - Mark ...
Carrot City: The impact of food on the design of cities and buildings - Mark ...
 
Η αγαπημένη μου πόλη
Η αγαπημένη μου πόληΗ αγαπημένη μου πόλη
Η αγαπημένη μου πόλη
 
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014Pirkanmaan toisen asteen tvt-suunnitelma ITK2014
Pirkanmaan toisen asteen tvt-suunnitelma ITK2014
 
Engaging Students Virtually Throughout the Enrollment Cycle
Engaging Students Virtually Throughout the Enrollment CycleEngaging Students Virtually Throughout the Enrollment Cycle
Engaging Students Virtually Throughout the Enrollment Cycle
 
Populaarikulttuuri ja mainonta
Populaarikulttuuri ja mainontaPopulaarikulttuuri ja mainonta
Populaarikulttuuri ja mainonta
 

Ähnlich wie B2B2Cなヘルスケアサービスの作り方

電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213小川 雄太郎
 
アドテク案件入門講座
アドテク案件入門講座アドテク案件入門講座
アドテク案件入門講座伊藤 孝
 
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせますSHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせますNanae Matsushima
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre正善 大島
 
ソフトウェアのように〇〇を作る
ソフトウェアのように〇〇を作るソフトウェアのように〇〇を作る
ソフトウェアのように〇〇を作るTaku Unno
 
サービスを成長させる為の開発について
サービスを成長させる為の開発についてサービスを成長させる為の開発について
サービスを成長させる為の開発についてtatsuya mazaki
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例Recruit Technologies
 
チーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスチーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスTsubasa Hirota
 
【SoftLayer事例】アップクロス株式会社
【SoftLayer事例】アップクロス株式会社【SoftLayer事例】アップクロス株式会社
【SoftLayer事例】アップクロス株式会社softlayerjp
 
Cloud Technologies and AI in IoT Era
Cloud Technologies  and AI in IoT EraCloud Technologies  and AI in IoT Era
Cloud Technologies and AI in IoT EraOsaka University
 
株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)Taku Unno
 
It業界理解
It業界理解It業界理解
It業界理解Jun Chiba
 
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~Developers Summit
 
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。Ken Kurahashi
 
resin-dataに関する障害について
resin-dataに関する障害についてresin-dataに関する障害について
resin-dataに関する障害についてNTTDATA INTRAMART
 
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th
アプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13thアプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13th
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13thHiroki Nakai
 
Nci 2021recruit
Nci 2021recruitNci 2021recruit
Nci 2021recruitYujiAwara
 
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~Masanori Kaneko
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とはHinemos
 

Ähnlich wie B2B2Cなヘルスケアサービスの作り方 (20)

電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
電通国際情報サービス_AIテクノロジー部の研究開発と製品開発事例_191213
 
アドテク案件入門講座
アドテク案件入門講座アドテク案件入門講座
アドテク案件入門講座
 
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせますSHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
SHANON Marketing Conference 2017_シャノンも選んだTableauがあなたの会社のデータを語らせます
 
AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所AWSでの金融系システム構築・運用勘所
AWSでの金融系システム構築・運用勘所
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
ソフトウェアのように〇〇を作る
ソフトウェアのように〇〇を作るソフトウェアのように〇〇を作る
ソフトウェアのように〇〇を作る
 
サービスを成長させる為の開発について
サービスを成長させる為の開発についてサービスを成長させる為の開発について
サービスを成長させる為の開発について
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例
 
チーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティスチーム開発におけるDevとOpsのプラクティス
チーム開発におけるDevとOpsのプラクティス
 
【SoftLayer事例】アップクロス株式会社
【SoftLayer事例】アップクロス株式会社【SoftLayer事例】アップクロス株式会社
【SoftLayer事例】アップクロス株式会社
 
Cloud Technologies and AI in IoT Era
Cloud Technologies  and AI in IoT EraCloud Technologies  and AI in IoT Era
Cloud Technologies and AI in IoT Era
 
株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)株式会社リブセンス会社説明資料(転職エージェント企業様向け)
株式会社リブセンス会社説明資料(転職エージェント企業様向け)
 
It業界理解
It業界理解It業界理解
It業界理解
 
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
【15-A-5】ゲーミフィケーションエバンジェリストが説く、アプリ開発で見落としがちな「おもてなし」とは~面白さを伝える × 面白く魅せる~
 
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。
「レバレジーズ×ビズリーチ」マーケツール連携の裏側全部語ります。
 
resin-dataに関する障害について
resin-dataに関する障害についてresin-dataに関する障害について
resin-dataに関する障害について
 
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th
アプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13thアプリ向けエラー・クラッシュ検知ツールの運用品質について@Ques13th
アプリ向け エラー・クラッシュ検知ツールの 運用品質について@Ques13th
 
Nci 2021recruit
Nci 2021recruitNci 2021recruit
Nci 2021recruit
 
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
XP祭り2019 - 日立・ソフトウェア革新部会 ~会社を越境する社内コミュニティ~
 
仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは仮想化・クラウド環境利用メリットを最大化する運用管理とは
仮想化・クラウド環境利用メリットを最大化する運用管理とは
 

Mehr von Tomohiro MITSUMUNE

symfonyイントロダクション
symfonyイントロダクションsymfonyイントロダクション
symfonyイントロダクションTomohiro MITSUMUNE
 
symfonyイントロダクション
symfonyイントロダクションsymfonyイントロダクション
symfonyイントロダクションTomohiro MITSUMUNE
 
macbookについてみんなが誤解していること
macbookについてみんなが誤解していることmacbookについてみんなが誤解していること
macbookについてみんなが誤解していることTomohiro MITSUMUNE
 
15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgit15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgitTomohiro MITSUMUNE
 

Mehr von Tomohiro MITSUMUNE (7)

symfonyイントロダクション
symfonyイントロダクションsymfonyイントロダクション
symfonyイントロダクション
 
jQueryチュートリアル
jQueryチュートリアルjQueryチュートリアル
jQueryチュートリアル
 
symfonyイントロダクション
symfonyイントロダクションsymfonyイントロダクション
symfonyイントロダクション
 
macbookについてみんなが誤解していること
macbookについてみんなが誤解していることmacbookについてみんなが誤解していること
macbookについてみんなが誤解していること
 
Linuxにおける開発環境
Linuxにおける開発環境Linuxにおける開発環境
Linuxにおける開発環境
 
15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgit15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgit
 
DOM Scripting ことはじめ
DOM Scripting ことはじめDOM Scripting ことはじめ
DOM Scripting ことはじめ
 

B2B2Cなヘルスケアサービスの作り方

  • 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2016/01/29 Tomohiro Mitsumune DeSC Healthcare, Inc. B2B2Cなヘルスケ アサービスの作り方 1
  • 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アジェンダ ⁃ DeSCヘルスケアとは? ⁃ Webサービス ⁃ ネイティブアプリ 2
  • 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介 ⁃ @t_mitz ⁃ DeSCヘルスケア株式会社 サービス企画開発部 ⁃ 前職では新規サービス立ち上げや開発チームのマネージメントに従事 ⁃ DeNAではマンガボックスやNBPFの立ち上げに参加 ⁃ サーバーサイドエンジニアだったけど最近はiOSとAndroidがメイン ⁃ 齢35にして人生初のフルマラソン完走しました 3
  • 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeSCヘルスケア? 4
  • 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeSCヘルスケア 5
  • 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. KenCoM 6
  • 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Webサービス 7
  • 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. やったこと ⁃ アプリケーションの一部の設計・実装を担当 ⁃ ポータルサイト部分 ⁃ CI / CD ⁃ 社内でRailsベースのCI/CD環境が無かった ⁃ 環境の制限でSaaSが利用できないため仕組みを自作 ⁃ コードレビューおじさん ⁃ コンポーネント間でのデータ連係があるので設計を重点的に ⁃ Ruby書いた経験が少ない人もいたのでサポート(厳しめに) 8
  • 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 構成 ⁃ ポータルサイト ⁃ Rails4 ⁃ データAPI ⁃ Rails4 ⁃ grape 9
  • 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 10 システム全体
  • 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティ ⁃ 要件が非常に厳しい ⁃ 厚生労働省が定めているセキュリティガイドラインに準拠 ⁃ データヘルス計画における健康情報の取扱い ⁃ 匿名データの作成・提供に係わるガイドライン ⁃ 医療情報システムの安全管理に関するガイドライン 11
  • 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティ対策 12
  • 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. データベース構成 ⁃ 個人情報とそうでないデータでDBを分割 ⁃ セキュリティ対策のため秘匿性が高い個人情報はAPI経由で取得 ⁃ データの取得に必要なtokenはJWTで生成しAPIサーバーで検証 ⁃ MySQLもSSL接続 13
  • 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. データベース暗号化 ⁃ 個人情報に該当するデータは全て暗号化 ⁃ symmetric-encryptionというgemを利用 ⁃ http://rocketjob.github.io/symmetric-encryption/ ⁃ Railsから透過的にOpenSSLを使ったデータ暗号化 ⁃ 環境(dev, test, prod)ごとに異なる設定 ⁃ セキュリティ強度を高めるため暗号化に利用する を定期的に更新 - の生成や やIVのマスキング処理をするコマンドラインツールは gemを自作(非公開) 14
  • 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. CI / CD 15
  • 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ChatOPS IRC + Jenkins + Github Enterprise + sinatra + capistrano 16
  • 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Q. なんでSaaSを使っていないの? A. オンプレ環境で利用できるSaaSが無かった(当時) ⁃ またAWSやAzureはセキュリティポリシー的に利用不可 17
  • 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Q. なんでSlackじゃなくてIRCなの? A. Slackのアクセス元IPアドレスが固定できないため通 信元の制限がかけられなかったから ⁃ インバウンドな通信を許可するなら経路は限定 ⁃ SlackはインフラがAWSなので動的IP ⁃ ダメ元でサポートにメールしてみたけどやっぱりダメでした ⁃ 将来的に固定IPにできるようにしたいけど今は無理、という回答 18
  • 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ネイティブアプリ 19
  • 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. はじめに ⁃ やったこと ⁃ iOSアプリ開発 ⁃ Androidアプリ開発(少しだけ) ⁃ はなすこと ⁃ 主にiOS ⁃ 使っているライブラリの紹介 ⁃ 開発していて気づいたこと・こまったこと 20
  • 21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ネイティブアプリの要件 ⁃ あくまでメインはWebアプリ ⁃ ネイティブアプリはアドオン的な立ち位置 ⁃ 導入先の健保でスマホ未所持な人が利用不可 ⁃ 営業先が限定されてしまい機会損失 ⁃ ネイティブアプリに期待されること ⁃ プッシュ通知で有資格者に健保からのお知らせ ⁃ バイタルデータを活用した機能 21
  • 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. プッシュ通知 22
  • 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Parse 23
  • 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Parse ⁃ プッシュ通知の基盤として利用 ⁃ 理由 ⁃ コストに対する費用対効果が非常に高い ⁃ 開発コスト・ランニングコスト ⁃ 100万ユーザ/月までは無料 24
  • 25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Parseのメリット・デメリット ⁃ メリット ⁃ 組み込みが簡単 ⁃ 管理画面の素晴らしい出来 ⁃ 豊富なAPI ⁃ デメリット ⁃ 複雑なことはできないためビジネスロジックに合わないとつらい ⁃ 簡単に使えすぎてオペミスの発生確率が高そう 25
  • 26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 突然のshutdown 26
  • 27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. バイタルデータの活用 27
  • 28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. HealthKit ⁃ ヘルスケアに関するさまざまな項目を管理 ⁃ iOS端末がヘルスケアデータの入れ物になるイメージ ⁃ 自動取得できるデータもあるが大半は別途入力が必要 ⁃ HKStatisticsCollectionQueryを利用 ⁃ ある期間内で指定したインターバルでデータ集計するAPI ⁃ 歩数グラフ作成に使っている 28
  • 29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. HealthKitでこまったこと ⁃ エラーが発生したときのデバッグ ⁃ compltionHandlerはprivateスレッドでバックグラウンド動作 ⁃ closureのclosureとかで動いていたりするのでCrashlyticsで追う のつらい。。。 ⁃ 対応方法 ⁃ 無駄にメモリを使わないようにいろんなところを最適化 29
  • 30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. iOS開発あれこれ 30
  • 31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. アプリ審査 ⁃ HealthKitの利用 ⁃ 利用用途をアプリ内で明記、が理由で数回リジェクト ⁃ レビュワーが変わる度に指摘 ⁃ 細かい指摘をされるので審査依頼時に補足メッセージを添えると良い 31
  • 32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Swiftのバージョンアップ ⁃ Swift2.0で動いています ⁃ 1.1時代に開発スタート ⁃ 開発始めてすぐ1.2が出る ⁃ 実装自体もまだ小さかったのでMigrationはたいしたことなかった ⁃ WWDC2015でSwift2 + Xcode7発表 ⁃ CocoaのAPIまわりはそれほど壊れなかった ⁃ Cocoapodでインストールしてるライブラリが大変 32
  • 33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 利用しているライブラリ ⁃ Alamofire ⁃ AlamofireImage ⁃ Realm ⁃ SwiftyJSON ⁃ Charts 33
  • 34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Alamofire ⁃ 1.3 → 2.0.X → 3.1.0 とバージョンアップ ⁃ 2.0からSwift 2に対応 ⁃ 下位互換性の無いインターフェース変更が入った ⁃ 3.0はresponse serializationの改善をするためのリリース ⁃ 2.0をベースによりシンプルに ⁃ NSURLSessionを自前のものに差し替えたりできる ⁃ サーバーAPIをcallする処理が多かったの涙目で修正 34
  • 35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. AlamofireImage ⁃ Webから画像をダウンロード・キャッシュ ⁃ SDWebImageの代替ライブラリ ⁃ Alamofireのアドオンとして動作 Q. なんでSDWebImageを使ってないのか? A. Pure Swiftで書かれたライブラリで統一したかったから ⁃ 画像fetchするベンチマーク結果はほぼ変わらなかった ⁃ Kingfisherも候補だったがAlamofireを導入済だったのでこちらに 35
  • 36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Realm ⁃ 0.95でConfigurationまわりの変更 ⁃ Realm Javaと似た感じに ⁃ 0.96でNULLサポート ⁃ try catchのエラーハンドリングをやらないとエラー ⁃ エラーハンドリング対応のマイグレーションがめんどくさかった ⁃ Realmインスタンスを生成するところ全てで書く必要がある 36
  • 37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Charts ⁃ MPAndroidChartをiOS向けにportされたグラフライブラリ ⁃ iOSとAndroidで同じグラフが作れてべんり ⁃ githubではios-chartsという名前 ⁃ 問題点 ⁃ APIインターフェースの一部に互換性がない ⁃ 公式ドキュメントがAndroidのみ ⁃ ソースコードがドキュメント 😇 37
  • 38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 38
  • 39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ 39
  • 40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ ⁃ Webアプリ ⁃ セキュリティ対応は大変 ⁃ セキュリティ要件を満たしてくれるgemあるので活用 ⁃ ネイティブアプリ ⁃ 巨人の肩の上に立つ ⁃ Swiftライブラリは最新版を使いましょう 40
  • 41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ご静聴ありがとうございました 41