SlideShare a Scribd company logo
1 of 33
空き会議室を増やす!
矢野 貴明
株式会社co-meeting COO
動画・説明記事作成
遠藤 裕之
株式会社co-meeting CPO
開発(AngularJS, Twilio,
Apex)
木村 篤彦
株式会社co-meeting CEO
開発(AngularJS)・デザイン
Force.comPCブラウザ ・ SF1
Visualforce
Page
Force.com
REST API
ユーザ
AITA
JSforce
Apex Scheduler
ローカルで開発 アプリをデプロイ
ローカル
プロキシ
サーバー
ローカル
Webサーバー
Force.comブラウザ
②HTML
AngularJS
HTML
Force.com
REST API
⑤API呼び出し
⑦JSON
ユーザ
③ユーザ操作
⑧ユーザ操作
⑨ビジネス
ロジック
④ビジネス
ロジック
⑥API呼び出し
• 認証はOAuthで行い、取得したトークンをAPI呼び出しで取得
• クロスドメイン、プロキシサーバー経由でREST APIを呼ぶ
ローカルPC
ア
プ
リ
ケ
ー
シ
ョ
ン
JSforce
①ページリクエスト
Force.comブラウザ
②HTML
①ページリクエスト
AngularJS
Visualforceページ
Force.com REST API
⑤API呼び出し
⑥JSON
ユーザ
③ユーザ操作
⑦ユーザ操作
⑧ビジネス
ロジック
④ビジネス
ロジックア
プ
リ
ケ
ー
シ
ョ
ン
JSforce
認証はVisualforceページの$API.Session_Id
npm版ビルドツール
JavaのMaven
RubyのRake
豊富なプラグイン
1. CoffeeScript, SCSSのコンパイル、最小化
2. Force.comアプリケーションへの変換
3. Force.com Migration Toolでアップロード
CoffeeScript, SCSSはプレーンなJavascript,CSSに変換
CoffeeScript to Javascript
Force.comメタ情報
AngularJSアプリ JS/CSSライブラリ コンパイル・圧縮した
JS/CSS(中間生成物)
コンパイル・結合・圧縮
コンパイル・結合・圧縮
コピー
apexタグの付加・置換
Force.comアプリ形式に変換
Index.html
CoffeeScript
SCSS
画像
ZIP圧縮
ZIP圧縮
Force.comメタ情報
AngularJSアプリ JS/CSSライブラリ コンパイル・圧縮した
JS/CSS(中間生成物)
コンパイル・結合・圧縮
コンパイル・結合・圧縮
コピー
apexタグの付加・置換
Force.comアプリ形式に変換
Index.html
CoffeeScript
SCSS
画像
1. JS, CSSを最小化・結合してZip圧縮
2. AngularJSのViewはapexタグを付加・置
換してVisualforceページとして変換
apex:pageタグの付加
apex:stylesheetタグ、apex:includeScriptタ
グへの置換
OAuth使用から$API.Session_Idを利用する
よう置換
3. タブ/アプリケーションなどのForce.comメタ
情報は事前に用意したものをコピー
Gruntプラグイン grunt-ant-sfdc
を利用しコマンドでForce.comにデプロイ
$ grunt deploy
./dist_sfdc
$ git clone git@bitbucket.org:comeeting/angularforce.git
AngularForce をクローン
AngularForceは、Yoeman angular-generator
で作成したプロジェクトにForce.com用の設定を
追加したプロジェクト
$ bower install
{
"dependencies": {
"angular-ui-bootstrap-bower": "~0.11.0",
"jsforce": "git://github.com/jsforce/jsforce.git",
"font-awesome": "~4.2.0",
"angular-translate": "~2.2.0",
"toastr": "~2.0.3"
}, …
}
Bower.jsonに追加している主なパッケージ
依存するJSライブラリのインストール
$ npm install
{
"devDependencies": {
"grunt-angular-templates": "^0.5.7",
"grunt-ant-sfdc": "^0.2.6",
"grunt-contrib-coffee": "^0.10.1",
"grunt-contrib-compass": "^0.7.2”,
…
}, …
}
package.jsonに追加している主なパッケージ
Gruntプラグインのインストール
$ git submodule init
$ git submodule update
$ cd jsforce-ajax-proxy
$ npm install
jsforce-ajax-proxyを取得
[submodule "jsforce-ajax-proxy"]
path = jsforce-ajax-proxy
url = git@github.com:jsforce/jsforce-ajax-proxy.git
.gitmodule
s
{
"user": "admin@<アプリケーション名>.co-meeting.com",
"pass": "<パスワード>",
"token": "<メールで送られてきたセキュリティトークン>"
}
sfdc_credential.json
OAuth および デプロイ用のForce.com設定
sfdc_credentail.jsonはgrunt-ant-sfdcの
パラメータとして渡される
antdeploy: {
options: {
root: 'dist_sfdc/',
…
},
dist: {
options: require('./sfdc_credential.json'),
pkg: { … }
},
},
Gruntfile.js
$ grunt serve
$ grunt deploy
圧縮して一つにまとめられるため
静的リソースの管理が楽に
クライアントサイドもCIをまわせる
モダンなWeb技術の恩恵を受け易い
開発プロセスが標準化しやすい
Happy Work! Happy Life!
株式会社co-meetingは、法人向けソフトウェアの開発、販売に10年以上携わってきた4人のメン
バーによって創業されたITベンチャー企業。
人生において大きな時間を占める「仕事をしている時間」。co-meetingは、世界中の「仕事をして
いる」人に向けて、仕事時間を充実させ、人生を豊かにするWebサービスを提供していきます。
社名 株式会社co-meeting
住所 〒160-0023
東京都新宿区西新宿8-15-15 カトルセゾン304
設立 2011年3月14日
代表 代表取締役CEO 木村 篤彦
資本金 669万円(2014年8月現在)
事業 企業向けソフトウェアサービスの開発・販売
システム開発に関するコンサルティングや技術支援
丸ノ内線西新宿駅 徒歩 2分
弊社内で調査したエンタープライズサービスを随時ご紹介するブログ
現在はSalesforce関連を中心に非定期で更新しています。
http://www.enterpriseappsnow.com
週3正社員
時短勤務
早朝・深夜勤務OK
プロダクトを一緒に作ってくれる方募集中!
在宅ワークOK
副業OK ゆっくり出勤
柔軟な勤務形態に対応可能です
結婚・子育てなどで惜しまれながらも退社された凄腕
エンジニアをぜひご紹介ください!

More Related Content

What's hot

Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理政雄 金森
 
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~de:code 2017
 
KLabのSI事業について
KLabのSI事業についてKLabのSI事業について
KLabのSI事業についてKLab株式会社
 
検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築sato165 @delab
 
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...Ayako Omori
 
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみたSf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた政雄 金森
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について剛志 森田
 
Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介アシアル株式会社
 
使ってみよう!Cognitive Services Container_20190122
使ってみよう!Cognitive Services Container_20190122使ってみよう!Cognitive Services Container_20190122
使ってみよう!Cognitive Services Container_20190122Ayako Omori
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりDaisuke Abe
 
クラウドサービスの成長とログ基盤の進化
クラウドサービスの成長とログ基盤の進化クラウドサービスの成長とログ基盤の進化
クラウドサービスの成長とログ基盤の進化Shin'ya Ueoka
 
LINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオンLINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオンK Kimura
 

What's hot (16)

Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理
 
Azure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev OpsAzure Bot Service で CI/CD on Azure Dev Ops
Azure Bot Service で CI/CD on Azure Dev Ops
 
Force.com Canvas アプリケーション
Force.com Canvas アプリケーションForce.com Canvas アプリケーション
Force.com Canvas アプリケーション
 
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~
[MW02] 進化する Edge! ~Windows 10 Creators Update 版の新機能から既存機能まで一挙紹介~
 
KLabのSI事業について
KLabのSI事業についてKLabのSI事業について
KLabのSI事業について
 
検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築検索エンジンを有効利用するWEBサイト構築
検索エンジンを有効利用するWEBサイト構築
 
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
 
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみたSf素人が2週間でアプリケーションビルダーに挑戦してみた
Sf素人が2週間でアプリケーションビルダーに挑戦してみた
 
smartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用についてsmartFXにおけるApache Cordovaの活用について
smartFXにおけるApache Cordovaの活用について
 
Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介Cordovaの最近ホットな話題と地雷をまとめて紹介
Cordovaの最近ホットな話題と地雷をまとめて紹介
 
Vtecxlt20151201
Vtecxlt20151201Vtecxlt20151201
Vtecxlt20151201
 
使ってみよう!Cognitive Services Container_20190122
使ってみよう!Cognitive Services Container_20190122使ってみよう!Cognitive Services Container_20190122
使ってみよう!Cognitive Services Container_20190122
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がり
 
クラウドサービスの成長とログ基盤の進化
クラウドサービスの成長とログ基盤の進化クラウドサービスの成長とログ基盤の進化
クラウドサービスの成長とログ基盤の進化
 
LINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオンLINE お絵描きアプリハンズオン
LINE お絵描きアプリハンズオン
 

Similar to Salesforce1 アプリをGruntでデプロイ

楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付SpaTakahiro Tsuchiya
 
社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)SATOSHI TAGOMORI
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例briscola-tokyo
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編Masayuki KaToH
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発Tusyoshi Matsuzaki
 
Kong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラKong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラbriscola-tokyo
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
Sl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataSl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataNaoki Shibata
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムMasayuki Abe
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようVOYAGE GROUP
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
Office365 api dev_20140624
Office365 api dev_20140624Office365 api dev_20140624
Office365 api dev_20140624Seiji Noro
 

Similar to Salesforce1 アプリをGruntでデプロイ (20)

楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa楽ちんユーザー認証付Spa
楽ちんユーザー認証付Spa
 
社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例
 
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
 
Yahoo!検索のパフォーマンス向上策全て見せます
Yahoo!検索のパフォーマンス向上策全て見せますYahoo!検索のパフォーマンス向上策全て見せます
Yahoo!検索のパフォーマンス向上策全て見せます
 
Kong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラKong meetup tokyo 2018.10.26 ブリスコラ
Kong meetup tokyo 2018.10.26 ブリスコラ
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
Workshop1-01
Workshop1-01Workshop1-01
Workshop1-01
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
Sl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataSl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibata
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
 
20230425_getsudemy01_Power Platform + Azure Cognitive Serviceを語らせてください!.pdf
20230425_getsudemy01_Power Platform + Azure Cognitive Serviceを語らせてください!.pdf20230425_getsudemy01_Power Platform + Azure Cognitive Serviceを語らせてください!.pdf
20230425_getsudemy01_Power Platform + Azure Cognitive Serviceを語らせてください!.pdf
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めよう
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
Workshop1-02
Workshop1-02Workshop1-02
Workshop1-02
 
Workshop1-03
Workshop1-03Workshop1-03
Workshop1-03
 
Office365 api dev_20140624
Office365 api dev_20140624Office365 api dev_20140624
Office365 api dev_20140624
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 

Salesforce1 アプリをGruntでデプロイ

Editor's Notes

  1. AITAはおよそ5日くらいで実装しました。
  2. AITAは、一つのページ(Visutalforce Page)のみのSPA 唯一のVisualForce PageをForce.comより取得した後は、すべてAngularJSの世界 Force.com上のデータはほぼすべてJsForceを使ってForce.com REST APIにアクセスしている
  3. AITAの開発プロセスの特徴としては、 UIにおいて、Force.comの機能はすべてREST APIでアクセスしてロジックはブラウザで完結しているので、バックエンドにAPIアクセスする通常のAngularJSアプリと同様に開発できます。 実際にアプリケーションのひな形はYOEMANを利用したAngular-generatorそのままです。
  4. 一方、本番でデプロイ時はこのように、Force.comネイティブアプリとしてどうささせることができます。 このように、開発 > テスト > デプロイという開発プロセスをForce.comアプリでも一般的なツールの組み合わせで実現しています。
  5. 他にはGulpが最近人気がでてきています。 altJSの CoffeeScript, TypeScript altCSS, CSSプリプロセッサ Less SASS Stylus altHTMLのjadeなど
  6. https://github.com/kevinohara80/grunt-ant-sfdc
  7. デモの詳しく説明します
  8. デモの詳しく説明します
  9. $ yo angular –coffee
  10. セキュリティトークンのリセット [私の設定] >> [個人用] >> [私のセキュリティートークンのリセット]
  11. セキュリティトークンのリセット [私の設定] >> [個人用] >> [私のセキュリティートークンのリセット]
  12. フォルダ構成 置換された場所
  13. タブに追加 ユーザの管理 >> 権限セット >> 追加したアプリ >> 割当の管理
  14. 静的リソースに一つずつ追加しないとならない 圧縮して静的リソースにいれたい? 静的リソースの追加削除に制限がある 一個にまとまっていると追加削除が容易 開発組織一個でも多人数で開発可能に クライアントがわもCI回せるようになる
  15. 寿退社とかでやめたひと紹介してね