SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
ACSをベースに1人でスマフ
ォとWebアプリ開発に取り
組んでいた話

Photo By John Shardlow
http://www.flickr.com/photos/john_scone/493915787/
14年2月19日水曜日
簡単に自己紹介

こういうブログを
書いてます

14年2月19日水曜日

アプリ2本リ
リース
最近の活動

平日早朝+週末で

社内向けに営業支援業務アプリ作ってました

アプリで利用する
企業やユーザ情報
を管理するバック
エンドツール

Titanium Mobile+ACS
14年2月19日水曜日

Node.js+express+Jade+acs-node
ACSとは?
•

Titaniumの開発元のAppceleratorが提供する
MBaaS(エムバース)

•
•
•

MBaaSについて詳しくは技術評論社さんの記事を
http://gihyo.jp/dev/serial/01/mbaas/0002
Parseの方が知名度高いかなぁ・・

スマフォアプリのバックエンドの機能で必要になりそうな
機能が揃ってる

•
•

14年2月19日水曜日

当然Titanium Mobileから扱いやすい
Appceleratorが提供するNode.js用のnpmモジュー
ルのインターフェースがTitaniumのそれとほぼ同じな
のでTitaniumの延長線上で気軽にWebアプリも作れる
ACSの管理画面はこんな感じ

14年2月19日水曜日
ACS利用する方法
• TitaniumStudioでプロ
ジェクト設定を行った後
tiapp.xmlを開いて
Enable Cloud
Serviceesの項目の
Enableボタンをポチッ
とする

• Production Keyと
Development Keyの
2つが表示されればOK
です
14年2月19日水曜日

tiapp.xml
ACSのサンプルコードを
ちょっと紹介
©Garry Ing
http://www.flickr.com/photos/garrtron/4469056722/

14年2月19日水曜日
ある地点の周辺のお店検索
# ACS利用するためのおまじない
ACS = require('ti.cloud')
# 東京駅周辺の緯度と経度
latitude = 35.681382
longitude = 139.766084
# Webの管理画面からお店情報などを登録しておくと
# 以下クエリで東京駅周辺の情報が20件検索できる
ACS.Places.query
page: 1
per_page: 20
where:
lnglat:
$nearSphere:[longitude,latitude]
$maxDistance: 0.01
, (e) ->
if e.success
for place in e.places
Ti.API.info place.name
14年2月19日水曜日
登録済のユーザの
メールアドレスを表示する
# ACS利用するためのおまじない
ACS = require('ti.cloud')
ACS.Users.query
page: 1
per_page: 1
where:
username:”h5y1m141”
, (e) ->
if e.success
for user in e.users
Ti.API.info user.email

14年2月19日水曜日
登録済のユーザ宛にメールする
# ACS利用するためのおまじない
ACS = require('ti.cloud')
ACS.Users.query
page: 1
per_page: 20
, (e) ->
if e.success
for user in e.users
# Webの管理画面からSAMPLEという名前のテンプレートを作成
# テンプレート内にmessageBodyという変数を設定
ACS.Emails.send(
template:'SAMPLE'
recipients:user.email
messageBody:”test mail to #{user.name}”
,(result) ->
Ti.API.info "sendmail result: #{result}"
)

14年2月19日水曜日
直感的にコード書ける
APIが提供されています

©jeffrey james pacres
http://www.flickr.com/photos/jjpacres/3293117576/
14年2月19日水曜日
良さそうに見えるけどやっぱりそれなりに
落とし穴もあります

たまに出る謎のエラー

標準機能ではオブジェクト単位での一括登録や削除機能がない

14年2月19日水曜日
後者についてはNode.jsをちょっと勉強してacs-nodeと
いうnpmモジュール使えば解決できる
log4js = require("log4js")
log4js.configure appenders: [
 
type: "file"
category: "request"
filename: "logs/request.log"
pattern: "-yyyy-MM-dd"
 
]
loggerRequest = log4js.getLogger("request")
loggerRequest.info "this is request log"
 
# 自作モジュール類の読み込み
path = require("path")
modulePath = path.resolve(__dirname, "lib/geocoder.js")
Geocoder = require(modulePath).Geocoder
geocoder = new Geocoder()
 
serverModulePath = path.resolve(__dirname, "lib/server.js")
Server = require(serverModulePath).Server
server = new Server() 
wait = (item, callback) ->
setTimeout((->
geocodingAPI = "http://www.geocoding.jp/api/"
address = encodeURIComponent(item.address)
url = "#{geocodingAPI}?v=1.1&q=#{address}"
 
geocoder.start(url,(err,statusCode,body) ->
if not err
callback(body,item.clientName)
)
 
), 5000)
clientList =[{"clientName":"xx","address":"xxx"}]

14年2月19日水曜日

act = ()->
# パラメータが無くなっていれば終了
return if clientList.length is 0
param = clientList[0]
geocodingAPI = "http://www.geocoding.jp/api/"
address = encodeURIComponent(param.address)
clientName = param.clientName
address = param.address
url = "#{geocodingAPI}?v=1.1&q=#{address}"
geocoder.start(url,(err,statusCode,body) ->
if not err and body.lat isnt null and body.lng isnt null
clientData =
name:clientName
address:address
latitude:body.lat
longitude:body.lng
loggerRequest.info("client: #{clientName}")
server.confirmClientInfo(clientData,(response) ->
if response is true
loggerRequest.info("#{clientName} already exist!!")
else
server.registClientInfo(clientData,(response) ->
if response is false
loggerRequest.info("FAIL: #{clientName} data is
#{clientData}")
else
loggerRequest.info("success data is #{clientData}"")
)
)
else
loggerRequest.info("error clientName is #{clientName}")
)
clientList.shift()
setTimeout (->
act()
), 6500
act()
使ってる方いましたらお互
い積極的にアウトプットし
ていきましょう!

Photo By Rusty Sheriff
http://www.flickr.com/photos/rustysheriff/4908212366/
14年2月19日水曜日
おまけ:
Titanium+ACS連携サンプルアプリ

• とても初歩的な内容ですがGitHubに資料あるので興
味ある方こちらご覧ください

• https://github.com/h5y1m141/
streetAcademy/blob/master/4thStep.md

• 上記資料使った少人数制のTitaniumMobile開発のワ
ークショップをたまにやってます

• 詳しくはStreetAcademy(http://streetacademy.com/myclass/443)

14年2月19日水曜日
LT Finish

14年2月19日水曜日

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (9)

Azure Web Apps 入門
Azure Web Apps 入門Azure Web Apps 入門
Azure Web Apps 入門
 
他人任せじゃすまされない! 知っておくべきサーバのこと
他人任せじゃすまされない! 知っておくべきサーバのこと他人任せじゃすまされない! 知っておくべきサーバのこと
他人任せじゃすまされない! 知っておくべきサーバのこと
 
「移動中の仕事術とユーザーグループと私」
「移動中の仕事術とユーザーグループと私」「移動中の仕事術とユーザーグループと私」
「移動中の仕事術とユーザーグループと私」
 
Innovation eggcloudnative
Innovation eggcloudnativeInnovation eggcloudnative
Innovation eggcloudnative
 
JAWS DAYS 2017 / SORACOM UGで発表されたLTやブログを紹介しちゃうよ!!
JAWS DAYS 2017 / SORACOM UGで発表されたLTやブログを紹介しちゃうよ!!JAWS DAYS 2017 / SORACOM UGで発表されたLTやブログを紹介しちゃうよ!!
JAWS DAYS 2017 / SORACOM UGで発表されたLTやブログを紹介しちゃうよ!!
 
[Jaws re:Mote2015]田舎ならt2インスタンスを使いこなせ!
[Jaws re:Mote2015]田舎ならt2インスタンスを使いこなせ![Jaws re:Mote2015]田舎ならt2インスタンスを使いこなせ!
[Jaws re:Mote2015]田舎ならt2インスタンスを使いこなせ!
 
WordCafe Fuji vol.1
WordCafe Fuji vol.1WordCafe Fuji vol.1
WordCafe Fuji vol.1
 
網元で起きた不思議な話
網元で起きた不思議な話網元で起きた不思議な話
網元で起きた不思議な話
 
スマート保育園構想におけるRubyの活用
スマート保育園構想におけるRubyの活用スマート保育園構想におけるRubyの活用
スマート保育園構想におけるRubyの活用
 

Andere mochten auch (9)

20140319 titanium meetupvol17
20140319 titanium meetupvol1720140319 titanium meetupvol17
20140319 titanium meetupvol17
 
2013 06-11-craft beerfanlt
2013 06-11-craft beerfanlt2013 06-11-craft beerfanlt
2013 06-11-craft beerfanlt
 
2015 07-04-ruby rails
2015 07-04-ruby rails2015 07-04-ruby rails
2015 07-04-ruby rails
 
20130910 titanium meetupvol11
20130910 titanium meetupvol1120130910 titanium meetupvol11
20130910 titanium meetupvol11
 
2014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol32014 05-17-titanium hamamatsuvol3
2014 05-17-titanium hamamatsuvol3
 
勉強会主催者のための勉強会
勉強会主催者のための勉強会勉強会主催者のための勉強会
勉強会主催者のための勉強会
 
20130613 titanium meetupvol9
20130613 titanium meetupvol920130613 titanium meetupvol9
20130613 titanium meetupvol9
 
日々の面倒をプログラミングで解決!【入門編】
日々の面倒をプログラミングで解決!【入門編】日々の面倒をプログラミングで解決!【入門編】
日々の面倒をプログラミングで解決!【入門編】
 
育児を支える技術〜クローラーとかスクレイピング
育児を支える技術〜クローラーとかスクレイピング育児を支える技術〜クローラーとかスクレイピング
育児を支える技術〜クローラーとかスクレイピング
 

Ähnlich wie 2014 02-19-titanium meetupvol16

Ähnlich wie 2014 02-19-titanium meetupvol16 (20)

大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側大ヒットソーシャルアプリの裏側
大ヒットソーシャルアプリの裏側
 
見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発見せます! 半歩先のクラウド型アプリケーション開発
見せます! 半歩先のクラウド型アプリケーション開発
 
「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」「Delphiで作るデータベースツール。その開発のポイントは・・」
「Delphiで作るデータベースツール。その開発のポイントは・・」
 
改善React道
改善React道改善React道
改善React道
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
 
Baa sでお気楽アプリ開発
Baa sでお気楽アプリ開発Baa sでお気楽アプリ開発
Baa sでお気楽アプリ開発
 
Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!Visual Studio App Centerを触ってみた!
Visual Studio App Centerを触ってみた!
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
Going Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No ServersGoing Serverless, Building Applications with No Servers
Going Serverless, Building Applications with No Servers
 
20161102 cms security
20161102 cms  security20161102 cms  security
20161102 cms security
 
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
[Observability conference 2022/3/11] NewsPicks のプロダクト開発エンジニアが実践するスキルとしての SRE
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用スマートフォンアプリ開発の傾向とBaaSの活用
スマートフォンアプリ開発の傾向とBaaSの活用
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
Applinkで「選べる」アプリ
Applinkで「選べる」アプリApplinkで「選べる」アプリ
Applinkで「選べる」アプリ
 
EdgeWorkers の導入について - Akamai TechWeek 2021 Japan Customer Session
EdgeWorkers の導入について - Akamai TechWeek 2021 Japan Customer SessionEdgeWorkers の導入について - Akamai TechWeek 2021 Japan Customer Session
EdgeWorkers の導入について - Akamai TechWeek 2021 Japan Customer Session
 
Application Bootstrap
Application BootstrapApplication Bootstrap
Application Bootstrap
 
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみてアプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
 
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
COD2013 Windows Azure Mobile Service を用いたiOS/Android開発
 
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
 

Mehr von Hiroshi Oyamada

2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo
Hiroshi Oyamada
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
Hiroshi Oyamada
 
2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium
Hiroshi Oyamada
 
20130125 titanium meetupvol5
20130125 titanium meetupvol520130125 titanium meetupvol5
20130125 titanium meetupvol5
Hiroshi Oyamada
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
Sinatraアプリをherokuにアップ
Hiroshi Oyamada
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
Hiroshi Oyamada
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
 
2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d
Hiroshi Oyamada
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Hiroshi Oyamada
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3
Hiroshi Oyamada
 
カベを感じているあなたへ
カベを感じているあなたへカベを感じているあなたへ
カベを感じているあなたへ
Hiroshi Oyamada
 

Mehr von Hiroshi Oyamada (20)

2016 02-25-crawler-study-01
2016 02-25-crawler-study-012016 02-25-crawler-study-01
2016 02-25-crawler-study-01
 
2016 02-09-co-edo lt
2016 02-09-co-edo lt2016 02-09-co-edo lt
2016 02-09-co-edo lt
 
2015 12-19-ruby rails
2015 12-19-ruby rails2015 12-19-ruby rails
2015 12-19-ruby rails
 
TitaniumMeetUpVol13
TitaniumMeetUpVol13TitaniumMeetUpVol13
TitaniumMeetUpVol13
 
2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo2013 06-05-web-career-talk-at-coedo
2013 06-05-web-career-talk-at-coedo
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
 
2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium2013 02-28-bussiness-plan-about-titanium
2013 02-28-bussiness-plan-about-titanium
 
20130126 titanium新年会
20130126 titanium新年会20130126 titanium新年会
20130126 titanium新年会
 
20130125 titanium meetupvol5
20130125 titanium meetupvol520130125 titanium meetupvol5
20130125 titanium meetupvol5
 
2012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol42012 12-17-titanium meetupvol4
2012 12-17-titanium meetupvol4
 
Sinatraアプリをherokuにアップ
SinatraアプリをherokuにアップSinatraアプリをherokuにアップ
Sinatraアプリをherokuにアップ
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d2012 03-24-titanium plusquicktigame2d
2012 03-24-titanium plusquicktigame2d
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
 
20120125 titanium study
20120125 titanium study20120125 titanium study
20120125 titanium study
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
 
20111130 titanium mobile
20111130 titanium mobile20111130 titanium mobile
20111130 titanium mobile
 
将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3将来必要となるエンジニアのスキルについて考える Ver3
将来必要となるエンジニアのスキルについて考える Ver3
 
カベを感じているあなたへ
カベを感じているあなたへカベを感じているあなたへ
カベを感じているあなたへ
 

2014 02-19-titanium meetupvol16