Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Swiftで、Webサーバにデータを送信・登録しよう!

6,479 views

Published on

「Swiftビギナーズ勉強会 第9回」で登壇した資料です。

iOSアプリから、サーバにHTTP通信を行い、データの取得と登録を行うという内容です。

Almofireというライブラリを利用して、Swift + Sinatra + Sqlite3で開発しています。

https://swift-beginners.doorkeeper.jp/events/26892
=================

「Swiftビギナーズ勉強会」は、iOSアプリをSwift、Objective-Cなどで開発するための初心者勉強会&もくもく会です。

開催の連絡は以下の方法で受け取ることができます。

## DoorKeeperグループ
イベント申し込みを受け付けている、DoorKeeper でのグループです。
https://swift-beginners.doorkeeper.jp/

## Facebookグループ
イベント告知や技術情報をお互いにシェアしています。
https://www.facebook.com/groups/swiftbg/

## Twitterハッシュタグ
ハッシュタグは、 #swiftbg です。
Twitterにもイベント、勉強会の情報を流しています。

Published in: Engineering
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2ZDZFYj ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2ZDZFYj ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Swiftで、Webサーバにデータを送信・登録しよう!

  1. 1. Swiftで、Webサーバに データを送信・登録しよう! Swiftビギナーズ倶楽部 第9回
  2. 2. Self-Intoroduction 徳島県出身です (ó `o) 一緒に勉強しましょう( ́ ▽ ` )ノ 勉強会やってます! アプリケーションエンジニア(Rails/LAMP/Java/Oracle) アウトプットを主軸においた、勉強会を運営しています:) Click
  3. 3. What do you want to do? iOSアプリから、サーバのデータを 取得して表示したい! iOSアプリから、サーバにデータを 送信してDBに登録したい! どんなアプリなのか見てみましょう!
  4. 4. 2)JSONを取得してみよう! Today's Agenda 3)サーバのDBに、データを登録してみよう! 1)Alamofireをインストールしよう!
  5. 5. Server:Sinatra + SQLite3 Development Environments Applicaiton:Xcode Version 6.4
  6. 6. 1)Alamofireをインストールしよう! https://github.com/Alamofire/Alamofire
  7. 7. 1)Alamofireをインストールしよう! 解凍した「Alamofire-master」フォルダを プロジェクトフォルダ直下に保存します。
  8. 8. 1)Alamofireをインストールしよう! ドラッグ 「Alamofire.xcodeproj」を  ドラッグします。
  9. 9. 1)Alamofireをインストールしよう!
  10. 10. 1)Alamofireをインストールしよう! この手順「世界一受けたい iPhoneアプリ開発の授業」 にも記載されています(*´∀`*)
  11. 11. 1)Alamofireをインストールしよう! Alamofireを、importすれば準備OK! こんなエラーが出たらビルドしてみよう!
  12. 12. 2)JSONを取得してみよう! 取得したJSONを表示させるラベルを作成します。 (制約は自由につけてください。)
  13. 13. 2)JSONを取得してみよう! ラベルを選択して、「ViewController」にドラッグします。 「Name」に好きな名前をつけてください。 他はそのままで「Connect」をクリック。
  14. 14. 2)JSONを取得してみよう! request関数 Alamofire には、HTTP通信を行うRequestクラスが用意されています。 通常のGETリクエスト(パラメータなし) Alamofire.request(.GET, “http://localhost”) Alamofire.request(.GET, http://localhost ).responseJSON {(request, response, json, error) in   // 処理 } 非同期でのGETリクエスト(パラメータなし)
  15. 15. 2)JSONを取得してみよう! 起動時に、サーバから非同期でデータを取得して表示させてみます。 @IBOutlet weak var titleLabel: UILabel! /* * メッセージを表示する処理 * サーバから、メッセージを取得します。 */ override func viewDidLoad() { super.viewDidLoad() // 通常のGetリクエスト //Alamofire.request(.GET, requestUrl) // 非同期のGetリクエスト Alamofire.request(.GET, requestUrl).responseJSON {(request, response, json, error) in let jsonDic = json as! NSDictionary let responseData = jsonDic["responseData"] as! NSDictionary self.titleArray = responseData["results"] as! NSArray self.titleLabel.text = self.titleArray[0]["title"] as? String self.messageLabel.text = self.titleArray[0]["message"] as? String } }
  16. 16. 2)JSONを取得してみよう! サーバ側の処理は、シンプルにJSON返すだけです。
  17. 17. 2)JSONを取得してみよう! シミュレーターを起動して確認してみると、、、とれた( )
  18. 18. 3)サーバのDBに、データを登録してみよう! 入力フィールドと、送信ボタンを配置します。 (Text Field:Outlet、Button:Actionで紐付けてください。)
  19. 19. request関数 第一引数ではGET, POST などの HTTPメソッドを指定できます。 Alamofireでは、次の9つの値が宣言されています。 public enum Method: String { case OPTIONS = "OPTIONS" case GET = "GET" case HEAD = "HEAD" case POST = "POST" case PUT = "PUT" case PATCH = "PATCH" case DELETE = "DELETE" case TRACE = "TRACE" case CONNECT = “CONNECT" } 3)サーバのDBに、データを登録してみよう!
  20. 20. 送信ボタンをタップ時に、サーバデータを送信してDBに登録します。 /* * メッセージを保存する処理 * サーバに、メッセージを送信します。 */ @IBAction func sendMessage(sender: AnyObject) { let parameters = ["comment": self.inputText.text] Alamofire.request(.POST, "http://localhost/new", parameters: parameters) } 3)サーバのDBに、データを登録してみよう!
  21. 21. 2)JSONを取得してみよう! サーバ側の処理は、こんな感じ。
  22. 22. DEMO 実際にやってみましょう! アプリケーションプログラム https://github.com/mustacheyork/tickleApp サーバプログラム https://github.com/mustacheyork/tickle_serve
  23. 23. ま と め Alamofireは、HTTP通信が簡単に実装できるOSSです。 ・request、response以外にも、download、upload関数が  用意されています。 ・レスポンスデータの取得・送信状況をリアルタイムに表示  したい場合は、progressメソッドが用意されています。 ・また、validateメソッドもあったりして、とても便利です。
  24. 24. 参考書籍 Click とても丁寧で、分かりやすい書籍です! アプリ開発の楽しさが体験できる とてもよい書籍でお薦めです( ́ ▽ ` )ノ
  25. 25. Let's study together! Thank you :)

×