SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
OHHTTPStubsを使ったiOSアプリ開発
株式会社キュリオシティソフトウェア!
@yimajo
スタートアップiOS勉強会 #3
自己紹介
❖ (株)キュリオシティソフトウェア 今城 善矩!
❖ まったりiOSアプリの受託開発をしているので仕事の
話があれば相談に乗れる体制ですよ
本題のOHHTTPStubsについて
2つのプロジェクトで使ってみた
OHHTTPStubsとは
❖ iOSアプリの通信を内部でフックしてスタブ用のレスポ
ンスを返すライブラリ
☓
OHHTTPStubsとは
❖ 単体テストのためにプログラムを書き換える必要もない
OHHTTPStubsとは
❖ ステータスコードを任意に変更もできるので異常系の確
認できる!
❖ レスポンス時間を長くして電波が悪い状況を作り出せる
OHHTTPStubsとは
❖ 他のライブラリを組み合わせてテスト自動化もできる!
❖ そういうのよくある話なので今回の話には含まない
最強のメリットは
APIがまだ出来てなくてもAPIと
の連携部分を単体テスト出来る
そもそもの開発フローを
振り返ると
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認スタブで実装を進められる
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認
API連携部分の開発フロー
APIの仕様決め
API実装
全体の仕様決め
APIを開発環境に順次デプロイ
APIの実動作確認スタブでプロトタイプを作れる
API連携部分の開発フロー
他に使ってみて良かったこと
もあるよ
良かったこと
API開発者にエクセル方眼紙で!
API仕様書を作ってもらったとき!
jsonとしておかしい仕様になっていたり!
打ち合せと違ったりなんていうものが!
作られる時あるじゃないですか
良かったこと
そういう仕様書に対して!
「これjsonパース出来ないっすよね?」!
「打ち合わせと微妙に違ってませんか?」!
みたいなレビューするのすごく気を使う
良かったこと
結局はtypoだったりなので!
API開発者が実装してみたら気づくだろうな!
みたいな
良かったこと
まずはjsonとして正しい状態で!
アプリ開発者に渡してくれるだけでも!
些末な指摘をしなくて良くなる
使ってみて良くなかったこと
もあるよ
良くなかったこと
「スタブがあるならAPIの実装遅れてるけど間に合うよね?」
良くなかったこと
APIの実動作の確認が遅れたり!
結合させたとき生じる何かしらの課題に!
気づく時間が短くなる事はリスクになるよ!
その他の気づいたこととかも
あるよ
リリースビルドに含めないように
OHHTTPStubsなどテスト用の!
フレームワークやライブラリは!
当然リリースビルドに含めたら駄目なので!
リリースビルドでは絶対除外するように仕込む
リリースビルドに含めないように
そのときの除外の仕組みを!
プリプロセッサマクロなどで!
作り込みすぎるのは良くない
リリースビルドに含めないように
仕組みが完璧という自信があろうとなかろうと!
確認する手順は必要!
!
その確認手順が煩雑になったり分かりづらいと!
結局時間がかかってしまう
まとめ
❖ API開発者にスタブ用のデータは作ってもらおう!
❖ スタブはあくまで単体テストのためだったり無駄なコミュ
ニケーションの時間を減らすためだって事は周知しよう!
❖ リリースビルドに含めないようにするにはテストTarget
を別に作るとか基本的なやり方がシンプルでいいよ

Weitere ähnliche Inhalte

Ähnlich wie OHHTTPStubsを使ったiOSアプリ開発

DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
Shuichi Yukimoto
 
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAAスマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
Koji Hasegawa
 
Osc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupwareOsc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupware
Yoshi Sakai
 
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
 

Ähnlich wie OHHTTPStubsを使ったiOSアプリ開発 (20)

DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
iOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けてiOSアプリ開発 脱初心者に向けて
iOSアプリ開発 脱初心者に向けて
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
 
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAAスマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
 
第2回名古屋SoftLayer勉強会 PBOX on SoftLayer
第2回名古屋SoftLayer勉強会 PBOX on SoftLayer第2回名古屋SoftLayer勉強会 PBOX on SoftLayer
第2回名古屋SoftLayer勉強会 PBOX on SoftLayer
 
職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!職場で使用しているOSSの開発に参加してみた!
職場で使用しているOSSの開発に参加してみた!
 
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
MAごころを、君に - #7 ChatGPT勉強会(2023-03-28)
 
Jenkinsのある生活
Jenkinsのある生活Jenkinsのある生活
Jenkinsのある生活
 
Chat opsをはじめよう!
Chat opsをはじめよう!Chat opsをはじめよう!
Chat opsをはじめよう!
 
Osc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupwareOsc2009tokyofall xoops groupware
Osc2009tokyofall xoops groupware
 
konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"konashi Make-a-thon "What's konashi"
konashi Make-a-thon "What's konashi"
 
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsync
 
スマホアプリ不要!プッシュ通知サービス・ニュースまとめ一覧
スマホアプリ不要!プッシュ通知サービス・ニュースまとめ一覧スマホアプリ不要!プッシュ通知サービス・ニュースまとめ一覧
スマホアプリ不要!プッシュ通知サービス・ニュースまとめ一覧
 
多言語学習アプリを作成してみよう
多言語学習アプリを作成してみよう多言語学習アプリを作成してみよう
多言語学習アプリを作成してみよう
 
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
 
Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化Robotium を使った UI テストとレイアウト確認の効率化
Robotium を使った UI テストとレイアウト確認の効率化
 

Mehr von 今城 善矩

Mehr von 今城 善矩 (13)

HealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得するHealthKitで日別のデータを一度に取得する
HealthKitで日別のデータを一度に取得する
 
Stargazer Meetup1
Stargazer Meetup1Stargazer Meetup1
Stargazer Meetup1
 
とにかく明るいCore Spotlight
とにかく明るいCore Spotlightとにかく明るいCore Spotlight
とにかく明るいCore Spotlight
 
SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件SansanのEightアプリでRealmを導入した件
SansanのEightアプリでRealmを導入した件
 
BaseViewControllerは作りたくない
BaseViewControllerは作りたくないBaseViewControllerは作りたくない
BaseViewControllerは作りたくない
 
まだSwiftで消耗してるの?
まだSwiftで消耗してるの?まだSwiftで消耗してるの?
まだSwiftで消耗してるの?
 
小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class小学生でも分かった気になるiOS8のSize Class
小学生でも分かった気になるiOS8のSize Class
 
iOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtipsiOSアプリ開発の現場で訊いてきたtips
iOSアプリ開発の現場で訊いてきたtips
 
Swiftだめ自慢Beta5
Swiftだめ自慢Beta5Swiftだめ自慢Beta5
Swiftだめ自慢Beta5
 
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
WebApiを利用する際のOptional Bindingやクロージャを駆使したSwiftらしいコードの書き方
 
やはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っているやはりお前らのCore Dataの使い方も間違っている
やはりお前らのCore Dataの使い方も間違っている
 
ジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwwwジョブズも成仏するTips考えたったwww
ジョブズも成仏するTips考えたったwww
 
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っているやはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

OHHTTPStubsを使ったiOSアプリ開発