SlideShare a Scribd company logo
Data APIで作る
スマホアプリ
2016/02/22
エムロジック株式会社 関根元和
@MT東京-21 Data API 3.0
自己紹介
関根元和
エムロジック株式会社 取締役
iOSアプリの開発をしています
StoryEditor、ペタろう、PiloWeb、
MovableType日本語版、CuteDbook、Twit
、BPM、ミイル、SUGARWAVE、トレタ
、SENSEINOTE
Movable Type for iOS
CHEEBOW
週末音楽家
作曲、編曲、プロデュース
ライブアイドルを中心に楽曲提供していま
す
夢眠ねむ(でんぱ組.inc)
ディアステージアイドル部
愛乙女★DOLL
COSMIC STAGE
Doll☆Elements
Jewel Kiss
逢沢ありあ
T!P
丸山夏鈴
asfi
佐野友里子(愛乙女★DOLL)
Honey Squash
ハックガールズ
白鹿はるの
飴涙める
Luce Twinkle Wink☆
マボロシ可憐GeNE
留守番ガールズ
ハピドル〜Happy Idol Project〜
佐原百音
Ange☆Reve
PIP: Platonics Idol Platform
PICK UP GIRLS」
Carnival☆Stars
RYUKYU IDOL
じぇるの!
S☆UTHERN CROSS
Lovin&S
SnowRabbit feat. 鈴木ゆき
LasRabbi
神宿
CAMOUFLAGE
割とガチ
Movable Typeとわたし
iOSアプリ開発
必要なもの
Mac
Xcode
Apple Developer Program
iPhone
Mac
Mac
iMac
MacBook Pro
MacBook Air
Macならどれでも大丈夫です!
OS X Yosemite 10.10.5以上
Xcode
Xcode
アプリを作るために必要なものが全部入って
います
しかも無料!
Mac App Storeからダウンロードできます
最新バージョンはXcode 7。iOS 9に対応させ
るにはXcode 7が必要です!
Apple Developer
Program
Apple Developer
Program
App Storeでアプリを配布するために必要
年間参加費 11,800円
たとえ配布するのが無料アプリでも、年間
参加費が必要です
新しいOSもいち早く試すことができます
iPhone
iPhone
開発そのものは実機がなくてもできます
しかし、リリース前には「ほんとに動くのか
」確認した方が良いでしょう
普段使っているiPhoneでも大丈夫です
iPadにも対応させるならiPadでの確認も必要
です
開発言語
Objective-C
Swift
Objective-C
C言語+オブジェクト指向
float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
if (ver >= 7.0) {
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
}
Objective-C
第一印象
なんか大カッコ([])多すぎ
気持ち悪い…
Swift
2014年生まれの新しい言語
オープンソース
Objective-Cよりスッキリしたコードが書け
ます
let ver = (UIDevice.currentDevice().systemVersion as NSString).floatValue
if ver >= 7.0 {
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
}
Swift
すっきり!
今選ぶならSwiftでしょう
ただし、Objective-Cの知識も必要になるこ
とがあります
DataAPIを使う
DataAPIを使ってMovable Typeにアクセス
します
iOSアプリ開発では、Swiftで書かれたSDK
を使います
Swift用SDK
https://github.com/movabletype/mt-data-
api-sdk-swift
CocoaPods
https://cocoapods.org/
Mac アプリや iOS アプリ開発者向けのラ
イブラリ管理ツール
CocoaPodsを使えば簡単にDataAPI SDKを
組み込めます
platform :ios, '8.0'
use_frameworks!
pod 'MTDataAPI-SDK'
pod install
CocoaPodsの使い方
詳しくは公式ペー
ジを参照
https://guides.coco
apods.org/
ブログ一覧の取得
import MTDataAPI_SDK
let api = DataAPI.sharedInstance
api.APIBaseURL = “http://host/mt/mt-data-api.cgi"
api.authentication("username", password: "password", remember: true,
success:{_ in
api.listSites(
success: {(result: [JSON]!, total: Int!)-> Void in
print(items)
},
failure: {(error: JSON!)-> Void in
}
)
},
failure: {(error: JSON!)-> Void in
}
)
記事の作成
import MTDataAPI_SDK
let api = DataAPI.sharedInstance
api.APIBaseURL = "http://host/mt/mt-data-api.cgi"
var entry = [String:String]()
entry["title"] = "title"
entry["body"] = "text"
entry["status"] = "Publish"
api.authentication("username", password: "password", remember: true,
success:{_ in
api.createEntry(siteID: "1", entry: entry,
success: {(result: JSON!)-> Void in
print(result)
},
failure: {(error: JSON!)-> Void in
}
)
},
failure: {(error: JSON!)-> Void in
}
)
画像のアップロード
import MTDataAPI_SDK
let api = DataAPI.sharedInstance
api.APIBaseURL = “http://host/mt/mt-data-api.cgi"
api.authentication("username", password: "password", remember: true,
success: {_ in
let image = UIImage(named:"photo")
let data = UIImageJPEGRepresentation(image!, 1.0)
api.uploadAssetForSite("1",
assetData: data!,
fileName: "photo.jpeg",
options: ["path":"/images", "autoRenameIfExists":"true"],
success: {(result: JSON!)-> Void in
print(result)
},
failure: {(error: JSON!)-> Void in
}
)
},
failure: {(error: JSON!)-> Void in
}
)
DataAPIで広がる世界
Data APIで作る スマホアプリ
DataAPIを使った
チャットアプリ
仕組み
Movable Typeの記事 = チャットルーム
記事へのコメント = 発言
デモ
JSQMessagesViewContr
oller
オープンソースのチャットUIライブラリ
https://github.com/jessesquires/JSQMessa
gesViewController
メッセージ送信
var comment = [String:String]()
comment["body"] = text
self.inputToolbar?.contentView?.rightBarButtonItem?.enabled = false
self.api.authentication(USERNAME, password: PASSWORD, remember: true,
success:{_ in
self.api.createCommentForEntry(
siteID: self.SITE_ID,
entryID: self.ENTRY_ID,
comment: comment,
success: {(result: JSON!)-> Void in
self.inputToolbar?.contentView?.rightBarButtonItem?.enabled = true
self.finishSendingMessageAnimated(true)
self.receiveMessage()
},
failure: {(error: JSON!)-> Void in
self.inputToolbar?.contentView?.rightBarButtonItem?.enabled = true
}
)
},
failure: {(error: JSON!)-> Void in
self.inputToolbar?.contentView?.rightBarButtonItem?.enabled = true
}
)
メッセージ受信
let options = [
"limit":"100",
"no_text_filter":"1",
"fields":"author,body"
]
self.api.authentication(USERNAME, password: PASSWORD, remember: true,
success:{_ in
self.api.listCommentsForEntry(
siteID: self.SITE_ID,
entryID: self.ENTRY_ID,
options: options,
success: {(items:[JSON]!, total:Int!)-> Void in
self.messagesFromJSON(items)
},
failure: {(error: JSON!)-> Void in
}
)
},
failure: {(error: JSON!)-> Void in
}
)
再構築
どうせデータにアクセスするだけなので
テンプレートは空でもいいのでは
再構築のない世界へ(笑)
APIに「再構築しない」オプションが追加
されるといいなぁ……
MT≠CMS
Blogツールとして生まれたMT
CMSと進化し
そして、Webアプリのバックエンドへ
興味のある方は
https://github.com/cheebow/MTChatApp
プロジェクトがダウンロードできます
まとめ
DataAPI + iOS
Movable Typeをカスタマイズ自由なWeb
アプリケーションのバックエンドとして
DataAPIで簡単にアクセス
夢が広がりますね!
iOSアプリ開発
iOSアプリの開発は敷居が高いかも……
そんな時は、ぜひ、エムロジック株式会社
にお問い合わせください!
質疑応答
おしまい

More Related Content

PPTX
アイドルソング制作の工程管理
PDF
アイドル楽曲解体新書
PDF
MUSICIAN HACKATHON 2016
PPTX
RaspberryPiを音声コントロールしてみた話
PPTX
テレビさんというslack読み上げbotについて
PDF
UE4学園追放による頭位置移動入力方法
PPTX
さぼろうくん(仮) @ おばかIoT選手権 2016
PDF
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~
アイドルソング制作の工程管理
アイドル楽曲解体新書
MUSICIAN HACKATHON 2016
RaspberryPiを音声コントロールしてみた話
テレビさんというslack読み上げbotについて
UE4学園追放による頭位置移動入力方法
さぼろうくん(仮) @ おばかIoT選手権 2016
声優やぞ!~シンデレラガールズにおける配役の歴史のRDFデータ化~

What's hot (9)

PDF
Starlingで何本かゲームを作ってみての感想[第3回 東京ひよこの会]
PPTX
Kawazとは
PDF
楽しい!に敏感であること
PDF
キャラサミ「渚の妖精ぎばさちゃん」20141124
PPTX
彼女造ったへの道
PDF
Swift Optional without Syntax Sugar
PPTX
niconico_chokaigi20120427
PDF
WP-D Fes03 Osaka Kitamura Tah
PPTX
クラウドストレージを使って音声投稿サイトを作った話
Starlingで何本かゲームを作ってみての感想[第3回 東京ひよこの会]
Kawazとは
楽しい!に敏感であること
キャラサミ「渚の妖精ぎばさちゃん」20141124
彼女造ったへの道
Swift Optional without Syntax Sugar
niconico_chokaigi20120427
WP-D Fes03 Osaka Kitamura Tah
クラウドストレージを使って音声投稿サイトを作った話
Ad

Data APIで作る スマホアプリ