Don't wait for the backend to be ready, generate custom API responses with Mocky and start working on your application straightaway
JJUG CCC 2017 Fallでの発表資料です。
Moya 最近MoyaというAPIクライアントを使っています。なかなか良さげで使い勝手も悪くありません。 github.com Alamofireベースで作られており、Moyaを入れるだけでいい感じのAPIクライアントがすぐに手に入ります。 また、Rx拡張もされているのでRxSwiftなどとの相性も良いでしょう。 Codable Swift4から使えるprotocolに「Codable」というのがあります。これを利用するとAPIから取得したデータ(JSON)のパースが非常に簡単に行なえます。 JSONとオブジェクトのマッピングにSwiftyJSONやObjectMapperなどのライブラリを使うことが多いですが、Codableを使えばもう必要ありません。 Moya + CodableでQiitaの情報を取得する 簡単な例としてQiitaの情報をMoyaとCodableを使って取得してみまし
はじめに なぜ、今更こんな何のためにもならなそうなことを書くのかというお話をします。 最近Androidを新しく始める人はすいすいとアプリの開発を覚えていき、昔は大変だった通信もRetrofit一択で何の迷いもなく終わります。Retrofitは本当に素晴らしいライブラリです、アノテーションを使用してコードを殆ど書かず、初心者にも分かりやすく書くことができ、カスタマイズ性も非常に高いです。 ですが、だからこそ昔のAndroidの通信の長い歴史を知って、今まで以上にRetrofitなどのライブラリの素晴らしさを実感してほしいと思って書きました。 そして、できれば誰かが次世代の通信ライブラリを作る際の糧としてくれることを願っています。 主な歴史 2007/11/05 : Androidが発表される 2011/09/29 : HttpURLConnectionを推奨するブログが出る 2013/05
キャッシュとは 使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置や、複製されたデータそのもののこと。 - IT用語辞典 Webサイトの表示においては、一度アクセスしたページのデータを特定の場所に保存することで、次回アクセス時の表示を速くし、サーバへの無駄なリクエストを減らせるというメリットがあります。また一口にキャッシュといっても下記の2種類があるので、どちらを指しているのか(あるいは両方か)意識しておきましょう。 ブラウザのキャッシュ:そのパソコンのユーザーが見たページのデータがローカルに溜まっていく。 キャッシュサーバのキャッシュ:不特定多数のユーザーが見たページのデータがネットワーク上に溜まっていく。 キャッシュの制御方法 ✏️ HTTPレスポンスヘッダ で制御 ➡️ Cache
未実装と書いてあるところはヘッダファイルでは以下のようにUnimplementedとなっているものです。 { NSURLRequestUseProtocolCachePolicy = 0, NSURLRequestReloadIgnoringLocalCacheData = 1, NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData, NSURLRequestReturnCacheDataElseLoad = 2, NSURLRequestReturnCacheDataDontLoad = 3, NSURLRequestReloadRevalid
はじめに モバイルアプリを開発しているときに、アプリとサーバー間の通信を確認したいときがあります。たとえば、期待通りの HTTP リクエストが送られているか調べたり、サーバーからのレスポンスが間違っていないか確認したりする必要が生じます。 そんなときに、いちいちデバッガで止めても良いのですが、プロキシをはさめば簡単に通信を覗くことができます。しかも、レスポンスを改竄して、わざと不正なレスポンスにしてアプリがクラッシュしないかテストしたり、特定のリクエストだけブロックしてサーバー障害を擬似的に再現することができます。 mitmproxy とは mitmproxy は man-in-the-middle 型のプロキシサーバーのツールです。OS X や Windows、Linux 上で動作し、対話式の CUI を持ちます。SSL サポートをしている点が特長になります。 公式サイト: http:/
個人的にフロントエンドエンジニア三種の神器の一つとして認定した。 特にハイブリッドアプリ(いわゆるガワネイティヴ)のデバッグですごく重宝している。 でもちょっと癖のあるUIで取っ付きにところもあり、こいつの魅力を伝えることを妨げる一因にもなっているように思える。 ということで、フロントエンジニア目線で何回かに分けてCharlesの使い方を紹介していこうと思う。 もちろんフロントエンジニアじゃなくても便利に使えるツールなので知らなければ何が出来るかくらいはちょっと見て欲しい。 SSLに対応したMITM(Man In The Middle)プロキシサーバーであるところ ブラウザなどのクライアントとインターネットの中間者となり、その間に流れてくるデータ、つまりHTTPリクエスト、レスポンスの内容を記録したり変更することが出来る。 また、CAとしての役割も果たすことができるためSSLの通信内容も復
こんにちは。インフラストラクチャー部 セキュリティグループの星 (@kani_b) です。 クックパッドでは主に "セキュリティ" か "AWS" というタグのつきそうな業務全般を担当しています。 ここ数年、クックパッドではいわゆるネイティブアプリの開発が非常に盛んです。 私達インフラストラクチャー部はネイティブアプリの直接の開発者ではありませんが、開発が円滑に進むように色々なレイヤでそのお手伝いをしています。 PC 向けサービス開発と比較して、スマートフォン向け、特にネイティブアプリにおいては、何かトラブルがあった際に どこで何が起きているか、そのデバッグを行うことが若干難しいと感じています。 今回はいわゆる jailbreak や root 化をせず、ネットワークのレイヤからデバッグを行う方法についていくつかご紹介します。 HTTP プロキシによるキャプチャ まずは HTTP プロキシ
以前よりWebで公開していた「本当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう」が、技術評論社さんから本として発売されます(発売日は6/7です)。 技術評論社さんの紹介ページはこちら。 Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門:書籍案内|技術評論社 私のWebサイトにおける紹介ページはこちら。 http://kmaebashi.com/webserver/index.html amazonはこちらから。 この本は、タイトルにあるとおり、「基礎からのWebアプリケーション開発入門」です。 その前にある「Webサーバを作りながら学ぶ」のあたりでちょっと待てと思う人がいるかもしれませんが*1、私は、冗談でもなんでもなく、本気で「基礎からのWebアプリケーション開発入門」のつもりで書いています。ただし、プログラミングそのものの初心者は対象ではな
コマンドラインからHTTPリクエストを送信できる「HTTP Prompt」をご紹介。 Python製のコマンドラインHTTPクライアントHTTPieと、インタラクティブなコマンドラインツールを作成するためのライブラリprompt_toolkitを使って作られていて、強力な自動補完機能とシンタックスハイライトが特徴です。 インストール pipコマンドでインストールできます。 $ pip install http-prompt 使用方法 http-promptコマンドにURLを指定して起動します。 $ http-prompt http://httpbin.org URLを変更するときはcdコマンドを使います。 > cd api/v1 > cd http://localhost/api HTTPieで使える形式に従って、ヘッダーやクエリ文字列、ボディパラメータを追加することもできます。 > Co
この記事はVASILY DEVELOPERS BLOGにも同じ内容で投稿しています。よろしければ他の記事も御覧ください。 普段のアプリ開発において、バックエンドチームから「○○のページで△△のデータ取得するためにリクエストしているURLってどんなの?」と聞かれることがよくあります。 その都度、APIリクエストとリクエスト結果をprintで表示するフラグをONにしてアプリをビルドするということをしていたため、かなり手間がかかっていました。 こういった作業を楽にするためにネットワークデバッグライブラリをいくつか比較してみました。 ライブラリ ResponseDetective https://github.com/netguru/ResponseDetective NSURLSessionのリクエストやレスポンスをデバッガのログに流してくれるライブラリです。 特徴・利点 フルSwiftで書かれ
HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200
NSURLSession を使って GET リクエストを送信してみよう。コマンドラインアプリの場合、NSRunLoop を実行する必要がある。プレイグラウンドの場合、XCPlayground をインポートした上で、XCPSetExecutionShouldContinueIndefinitely() を呼び出す。 import Foundation var url = NSURL(string: "http://localhost/") var waiting = true var task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in println(NSString(data: data, encoding: NSUTF8StringEncoding)) waiting =
MoyaはAlamofireを直接さわることなく、ネットワークレイヤーを抽象化してくれるライブラリ。 イメージとしては、下の図のような感じ。 Moyaの特徴として、 コンパイル時に正しいAPIエンドポイントのチェック Associated Enumによりエンドポイントを明確にできる Unitテストが簡単になる 今回の例はiTunes Apple APIを使用して音楽のアルバムを検索する。 環境 Xcode 7.2 Swift 2.1 MoyaをPodでインストール use_frameworks! pod 'Moya' MoyaをインストールすればAlamofireもインストールしてくれるので、AlamofireをPodfileに書く必要がない。 API ターゲットを設定 iTunesの検索には以下のURLを使用する: https://itunes.apple.com/search?medi
少し前のiOS Dev Weeklyで紹介されていたnetfoxというiOS軽量ネットワークデバッグライブラリが少し気になっていたのでイジってみました iOS開発における定番のネットワークキャプチャリングツール Charles Mac本体をプロキシサーバとして経由してキャプチャする 設定が手間(iPhoneのプロキシの設定を戻すのを忘れるってあるある?) コードを書く必要はない よって他社サービスの通信もキャプチャできる WireShark RemoteVirtualInterface(RVI)を用いてキャプチャする 設定が手間 コードを書く必要はない よって他社サービスの通信もキャプチャできる PonyDebugger ローカルにゲートウェイとなるwebサーバをたててそこでキャプチャする 設定が多少手間 表示がChromeのDevToolなのでそれに慣れてる人には見やすい コードに書く必
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く