Movable Type Data API
Swiftアプリ作成事例
MTDDC Meetup TOKYO 2016
発 表 内 容
• 自己紹介
• 勉強会の紹介
• 書籍紹介
• サイト紹介
• デモ
• DataAPIの紹介
• iOSアプリのソース実装ポイント紹
介
2
自己紹介
出身は、さいたま市です。
オリンパスソフトウェアテクノロジー㈱
デジタルカメラのFW開発(PEN/OM-D)
3
藤 治仁
(ふじ はるひと)
勉強会を運営しています
DoorKeeperで
「Swiftビギナーズ倶楽部」
「Ruby / Railsビギナーズ倶楽部」
「WordPress もくもくクラブ」
検索
Swiftビギナーズ倶楽部
Ruby on Rails
ビギナーズ倶楽部
WordPressもくもく倶楽部
勉強会を運営しています
Swiftビギナーズ倶楽部 WordPressもくもく倶楽部
勉強会の目的
• 未経験者が開発を行えるようになること
• セッションがうまくなること
• 交流して仲間を増やすこと
Ruby on Rails
ビギナーズ倶楽部
Swiftビギナーズ倶楽部
Swift3 &
Xcode8対応
10 (火)25
全国書店で販売中
/
~Swiftではじめるプログラミングの第一歩~
これからつくるiPhoneアプリ開発入門
Amazon
Swiftビギナーズ倶楽部から生まれた!
Click!
ハンズオンセミナー開催
2016年3月・5月 2回開催
分析結果を書籍に入魂!
・各章を一コマとして授業形式で開催。
・各章ごとに参加者の方々にヒアリングを実施。
・参加者の方々が最初につまずいた声を
徹底的に収集して分析。
▼
これからつくるiPhoneアプリ開発入門
本 書 の 特 徴
こ ん な 人 に
レッスンごとに「カスタマイズ編」を用意
公式サイトでは「応用編」を用意
本 書 の 特 典
他の入門書が難しかった人
これからアプリを作ってみたい人
これからつくるiPhoneアプリ開発入門
https://swiftbg.github.io/swiftbook/
本書の2日目 Lessson 4
http://makanai.sixapart.jp/
Six Apartのごはんレシピ
D E M O
• 検索窓にキーワードを入力すると該当する投稿リスト表示
• リストから投稿を選択するとアプリ内ブラウザ起動し記事を表示
12
Movable Type Data APIについて
• Movable Typeで蓄積されたデータを外部から取り出すことができる
• Data APIを使うと他のアプリケーションとのデータの受渡しが可能
• MovableTypeからのレスポンスはJSON形式
13
主なAPIカテゴリ、様々なAPIが用意されている
14
Movable Type Data APIについて
Common API バージョンに関わらず利用できるAPI
Authentication 認証に関連するAPI群。トークン、セッションID取得など
Assets 画像データ格納など
Categories カテゴリの管理
Comments コメントの管理
Entries 記事の一覧取得
Search 記事検索
search
今回のアプリでは検索Searchの機能を確認する
エンドポイント
search
searchは必須パ
ラメータ
optional
→省略可
省略時の
デフォルト値
Data APIリクエスト
検索キーワードを
URLエンコードする
エンドポイント
作成
リクエスト実行
リクエスト実行箇所
レスポンスを確認
Data APIを使ってレスポンスを確認する
Chrome拡張機能”JSONView”が便利
18
記事のURL
記事のタイトル
JSONデータパース
レスポンスデータを
パースする
“items”を取り出す
JSONパース箇所
“categories>label”を取り
出す
検索ボタン押された時
検索窓パーツの情報が渡される
キーボードを閉じる
一 覧 表 示
1件ごとの
表示内容設定
A T S
• ATS(App Transport Security)は、iOSアプリとインターネットを安全に接
続するために提供されているサービス
• 初期設定では、ATSが有効になっています。そのため、iOSアプリからは「
http://…」のように、httpから始まるHTTP通信はできません。通信を行った
場合は、接続失敗となりエラーとなる
• HTTPS通信はATSが有効時でも通信はできる
• HTTP通信する場合には、ATSの設定が必要
詳しくはこれから作るiPhoneアプリ開発入門公式サポートサイトで!!
https://swiftbg.github.io/swiftbook/tips/ios10ats.html
ま と め
• 検索するときのData APIはSearch
• JSONの内容を確認するときはChromeブラウザ向け拡張機能
”JSONView”使うと便利
• JSONの解析(パース)するときはJSONSerializationクラスで行う
• http通信でリクエストする場合には ATSの制限解除の設定が必要
サンプルコードはGitHubで公開中
https://github.com/FromF/MTSearchSwift
次 回 開 催
25
ご静聴ありがとうございました
ブースにてデモ中!!
書籍も販売中!

Movable Type Data API Swiftアプリ作成事例

Editor's Notes

  • #2 Movable Type Data APIを使った Swiftアプリ作成事例について 発表をはじめます!
  • #3 発表内容は 自己紹介 勉強会の運営をしていますのでその紹介 書籍を執筆しましたので書籍紹介 発表内容のデモ ・・・・
  • #4 フジと申し上げます。 普段は、オリンパスソフトウェアテクノロジーに勤務しており、デジタルカメラのファームウェア開発をしています。 スライドにあるカメラは開発に携わった機種の一部です。 中でも、スマートフォンと一緒に写っている筒状のカメラOLYMPUS AIRが一番思い入れがあるミラーレス一眼レフカメラです。
  • #5 3つの勉強会を運営しております。 iOSアプリ開発向けのSwiftビギナーズ倶楽部、ruby on rails向けのRuby on Railsビギナーズ倶楽部、最後にWordPressもくもく倶楽部です。 ドアキーパーでイベントを公開していますので、ご興味があるかたは検索してみてください。
  • #6 どの勉強会も、未経験者が開発を行えるようになること、セッションがうまくなること、交流して仲間を増やすことの3つの目的で活動をしています。 勉強会の内容についてですが、登壇希望者が10分程度のライトニングトークを行い、その後もくもく勉強会をしています。 ビギナーらしく、どんどん「チャレンジしていくこと」を目的に活発に活動しています。 最初は少人数ではじめた勉強会もたくさんの人が集まってスポンサーが入るぐらいに大きくなってきました。
  • #7 Swiftビギナーズ倶楽部を紹介させていただきます。 2014年6月2日Appleが開催している開発者向けイベントWWDCにてSwift言語が発表されました。 9月15日にSwift1.0が正式リリースされました。 Swiftがどんな言語なのか勉強するために、11月1日に第1回の勉強会を開催し計18回開催している勉強会です。 この勉強会での活動が書籍出版へと繋がりました。
  • #8 Swiftビギナーズ倶楽部、運営メンバーが執筆した書籍を出版しました。 これからつくるiPhoneアプリ開発入門という本です。 実は、4名の執筆陣全員、執筆経験がありません。 どうすれば良い本ができるのか考えました。 ===== ハンズオンセミナーを開催しました。セミナーの中で各章毎に授業形式で行い、授業終了後ヒヤリングし参加者がつまずくところを分析し書籍に反映した本となっています。 書籍のコンセプトは、体験ー>理解ー>学ぶ ブースコーナーでも展示・販売しておりますのでご興味がある方はぜひよろしくお願い致します。
  • #9 とにかくわかりやすい書籍を作りたいと思い、ハンズオンセミナーをすれば良いのではないかと思い開催しました。 各章毎に授業形式で行い、終了後ヒヤリングし、参加者がつまずくところを分析し書籍に反映しました。 ===== 各章ごとに参加者の方にヒアリングを実施しました。 初心者が最初につまずくところ、わからなかった所を集めて分析して、 どの技術要素をどの順番で説明すれば良いか、議論に議論を重ねました。 その結果を各章の内容を決定しました。 実は、第一回目の開催時の声を元に、第二回目はかなり内容を変更しました。 半分以上のサンプルアプリを丸々作り変えました。
  • #10 特徴なのですが他の入門書でつまずいてしまった方、未経験者にターゲットとしています。 初心者に最初に手に取ってもらいたいと思い執筆しています。 入門書っていいつつ難しいなと思っていたのもあり、他の入門書が難しいと感じた方や、これからアプリを作ってみたい方にちょうど良い書籍なのではないかと思います。 書籍の特徴としては、基本のレッスンごとに「カスタマイズ編」を用意しているので、最初は基本編だけ学習していただいて、2回めは基本編プラス、応用編を併せて行っていただくと定着率が良いのでお奨めです。 公式サイトでは、応用編を用意しているので、書籍が終わった後も次のステップとして学習していただける道もありますので、ぜひ、見てみてください。
  • #11 今回発表する内容は、本書の2日目 Lesson4 のお菓子検索アプリをカスタマイズした内容になります。本書では、WordPress APIを活用しています。 今回は、MovableType Data API を活用してアプリを作りました。
  • #12 今回は「Six Apartのごはんレシピ」サイトを活用しています。 このサイトはむーバルタイプで制作されています。 知っている方は知っていると思いますが、Six Apartさんのまかないをレシピとして公開しているサイトです。
  • #13 1.サイトの説明 今回は、Six Apartのごはんレシピというサイトを利用します。まかないごはんのレシピを紹介するサイトです。 カテゴリ別に分類されています。1、2投稿記事の項目説明する。 http://makanai.sixapart.jp/ 1つの料理のレシピが表示されます。このタイトルやURL、画像がAPIで検索して取得できます。 2.開発向けガイドページー>APIリファレンスー>Search MovableTypeには、開発者向けガイドページがあります。 その中にあるAPIリファレンスページにあるSearch(検索)を利用します。 https://www.movabletype.jp/developers/ 3.APIの説明 https://www.movabletype.jp/developers/data-api/v3-reference.html#search Searchのエンドポイントのパラメータは、必須パラメータとしてsearchがありここには検索キーワードを指定します。 検索結果の上限数を指定するlimitなどがありますが、optionalとなっているため必要に応じて指定すればよいことになっています。 実際にエンドポイントを開いてJSONデータを確認します。 http://makanai.sixapart.jp/mt/mt-data-api.cgi/v3/search?search=%E5%A1%A9 色々な項目がJSONデータとして取得できます。 今回は、タイトル、カテゴリ、代表的なサムネイル画像を取得します。 (画面を示しながら)それぞれここにタイトル、カテゴリ、サムネイルがあります。 4.Xcodeの説明 iOSアプリは、Appleが提供している統合開発環境ツール(IDE)のXcodeを利用して作成していきます。 Xcodeの特徴的な機能として、UIパーツをレイアウトしたり画面遷移を指定するストリーボードがあります。 Xcodeでは、シミュレータの機能があって、iPhoneやiPadがなくてもMacの画面で動作の確認ができます。 今回の画面は、ストリーボードでは検索窓のTextField、検索結果を表示するTableViewが存在します。 また、Swiftファイルでは、DataAPIのリクエストするコードがあります。(コードを見ながら) またJSONデータをパースなどの一覧表示Tableにする処理があります。(コード見ながら) SafariViewという機能があって、アプリ内でWebページを表示することができます。ページの表示にはSafariを使っています。アプリでSafariを使うことができるんです
  • #19 permalinkが記事のURLになります。このURLを指定すると記事のページにアクセスできます。
  • #20 パースとは、送信されてきたデータを、プログラムで扱えるよう書式に変換することをパースといいます。
  • #23 iOSでは、インターネットへのアクセスは基本httpsになります。httpでの外部通信はブロックされてエラーになります。 そのため、httpでの通信は個別に許可をする必要があります。
  • #24 検索するときのData APIはSearch JSONの内容を確認するときはChromeブラウザ向け拡張機能”JSONView”使うと便利 JSONの解析(パース)するときはJSONSerializationクラスで行う http通信でリクエストする場合には ATSの制限解除の設定が必要