Salesforce移行ツールでLightningコンポーネントを扱う
開発者コンソールで開発するようにLightning Components Developer's Guideに書いてあります。
しかし、開発者コンソールで開発するとソースコードをリポジトリ管理できなかったり他人と共有するのが難しくなってきます。
Lightningコンポーネントも他のリソースと同様にSalesforce移行ツールでデプロイ・取り出しができるようになっていますので、Salesforce移行ツールを利用することでリポジトリ管理できるようになります(もちろんSalesforce移行ツールを利用しなくてもMetadata APIを利用すれば同様のことができます)。
準備
Lightningコンポーネントのソースコードなどを準備します。
ソースコードを準備する
src |--sampleCmp |--sampleCmp.cmp |--sampleCmp.css |--sampleCmpController.js |--sampleCmpHelper.js
Salesforce移行ツールでデプロイする
Salesforce移行ツールを使ってソースコードをデプロします。
ビルドファイルを準備する
<project name="LightningSample" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce"> <property file="build.properties"/> <property environment="env"/> <target name="deploy"> <sf:deploy username="(ユーザID)" password="(パスワード)" serverurl="https://login.salesforce.com" deployRoot="src"/> </target> </project>
ターミナルからSalesforce移行ツールを実行する
> ant deploy
Salesforce移行ツールでソースコードを取り出す
Salesforce移行ツールでソースコードを取り出します。
ビルドファイルを準備する
<project name="LightningSample" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce"> <property file="build.properties"/> <property environment="env"/> <target name="retrieve"> <mkdir dir="code"/> <sf:retrieve username="(ユーザID)" password="(パスワード)" serverurl="https://login.salesforce.com" retrieveTarget="code" unpackaged="src/package.xml"/> </target> </project>
ターミナルからSalesforce移行ツールを実行する
> ant retrieve
注意点
開発者コンソールを利用しないとエラーチェックが緩くなり、下記のような問題があります。開発者コンソールで開発していると遭遇しないようなエラーに遭遇することもあるので注意が必要です。
- Developers ConsoleだとSave時にエラーになるソースコードでもデプロイできてしまう
- ApplicationとComponentのような排他的なファイルも同じディレクトリに置けてしまう(デプロイできるのは片方のみ)
Force.com Adevent Calendar 改め Salesforce1 Advent Calendar になりました!
Salesforce1 Advent Calendar 2014 - Qiita 1日目です。
Force.com Advent Calendarを始めたのは3年前の2011年からになります。
Salesforce1、Wave、Lightningなど次々に進化していっているので、より包含した名称を使うこととして、「Salesforce1 Advent Calendar」に改名してみました。
せっかくなので、これまでのAdvent Calendarを振り返ってみようと思います。
https://atnd.org/events/22909: title
みんなで2周書いていた苦しい時代でした。
あれ?Node.js、Database.comの投稿がいくつか。。。そういえば、Database.comはどうなったんでしょうねぇ(遠い目)。
今見返すと、Node.js、.NET、CI、モバイル(Titanium)、開発環境など今でも話題になっている分野の投稿がたくさんあったりなかなか多彩です。
https://atnd.org/events/33649: title
少し顔ぶれが増えたような感じですが、まだみんなで2周書いてたりしてますね(汗)。
CTIのネタがあったり、実践的なマニュアルの作り方があったり、RubyからSalesforceに接続したり、なかなか幅広い投稿があった感じです。皆さんなかなかネタが見つからなかったのか、Cloudforceネタが結構あったりしますね。
そういえば、VisualforceのApexタグにパススルーが出てきたのはこのくらいでしたか。
Force.com Advent Calendar 2013 : ATND
書いてくれる人も増えてきて、ようやく1週+αくらいで回せた年でした。
この年は1回目のSalesforce $1M Hackathonが開催されました。なかなかエキサイティングなイベントでしたが、リモートからの応援しかできなかったのが残念だったなぁ、という思い出です。
Salesforce1が発表されたのでSalesforce1ネタが投稿されています。Dreamforceで発表された技術を使ってネタを書いてみるにはいいくらいの時期ですね。
関西のユーザグループUmekitaforceができたのもこのあたりなんですねぇ。
Salesforce1 Advent Calendar 2014 - Qiita
そして、今年になります。
今年のDreamforceではWave、Lightningが発表されました。
Waveについてはまだまだ情報も少ないですが、Lightningについてはすでに試せるようになっているので、今年もいくつか投稿があると思います。最新の話題なだけにLightningに興味がある人は今年のAdvent Calendarは見逃せないでしょう。
以上、次の方よろしくお願いします!
AndroidStudio+SalesforceMobileSDKによるAndroid開発環境構築
MacでAndroid StudioとSalesforce Mobile SDKを利用したAndroidアプリ開発環境を構築するためのメモ書きです。
事前準備
Java SE Developer Kit 7をインストールする
公式サイトからJDKをダウンロードしてインストールする
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Android Studioをインストールする
公式サイトからAndroid Stadioをダウンロードしてインストールする
http://developer.android.com/sdk/installing/studio.html
インストール先: /Applications/Android\ Studio.app
Android SDK ManagerでSDKをインストールする
今回インストールしたPackage
検証バージョン: 0.8.14(2014/11/22時点)
Node.jsをインストールする
公式サイトからNodeJSをダウンロードしてインストールする
http://nodejs.jp/
Gradleをインストールする
公式サイトからGradleをダウンロードしてインストールする
http://www.gradle.org/downloads
Salesforce Mobile SDK for Android
npmを利用してforcedroid(Salesforce Mobile SDK for Android)をインストールする
> sudo npm install -g forcedroid
ANDROID_HOMEを設定する
export ANDROID_HOME=(Android SDKをインストールしたディレクトリ) ...
検証バージョン: 2.3.1(2014/11/22時点)
Androidアプリを作成する
Salesforceで接続アプリケーションを作成する
- Developer Edition にログインする
- 接続アプリケーションを作成する(コンシューマ鍵、コールバックURLをあとで利用する)
forcedroidでアプリケーションを作成する
Salesforce接続処理が組み込まれたアプリケーションのサンプルプロジェクトを作成する
> forcedroid create Enter your application type (native, hybrid_remote, or hybrid_local): native Enter your application name: Test Enter the target directory of your app: Test Enter the target android api for your application (number between 8 (Froyo) and 19 (KitKat): 19 Enter the package name for your app (com.mycompany.my_app): com.example.test Do you want to use SmartStore in your app? [yes/NO] ('No' by default)
Android Studioにインポートする
下記の手順でサンプルプロジェクトをインポートする
- Android Studioを起動し、Import Project...をクリックする
- 上記で作成したディレクトリを選択してOKボタンをクリックする
- Create project from existing sourcesを選択してNextボタンをクリックする
- Project name、Project locationを確認してNextボタンをクリックする
- Source filesを確認してNextボタンをクリックする
- Librriesの名称を確認してNextボタンをクリックする
- Modulesの名称を確認してNextボタンをクリックする
- Project SDKを確認してNextボタンをクリックする
- Manifestファイルを確認してNextボタンをクリックする
- Open Module Settingsを開く
- Module「Test」のSourcesタブを開き、srcのマークをSourcesに変更する
- Module「Test」のDependenciesタブを開き、libs(Library)を追加する
- Test/res/values/bootconfig.xmlを開き、remoteAccessConsumerKey、oauthRedirectURIをSalesforce接続アプリケーションの設定値に書き換える
補記
Salesforce Mobile SDKのバージョンによって動作させるまでの最低限の手順が異なるので注意が必要です
今年もあの季節がやってきました!
そう、技術系Advent Calendarの季節です。
普段あまりアウトプットしないエンジニアもこのときばかりはこぞって投稿します(もしろ、このときのためにブログを持っている人も何人か。。。)
ということで、今年はForce.com Advent Calendar改めSalesforce1 Advent Calendarを立ててみました!
Salesforce1 Advent Calendar 2014 - Qiita
昨年までより少し範囲を広げてForce.com から Salesforce1に。ついでにATNDからQiitaに。Salesforce1にかすってる投稿であればOKです(過去いくつか小説も…)。まだ半分ちょっとくらいなので、まだまだ参加者募集中です。
ちなみに、Salesforce DUG Tokyoでは、今年のDreamforceのMiniHackの問題をみんなでやってみるもくもく会(11/28)をやります。Advent Calendarネタは参加レポートでもよいかなと思います。
Salesforce DUG Tokyo DF14 MiniHack Moku-Moku Meetup - Salesforce DUG Japan | Doorkeeper
さぁ、みんなで盛り上げましょう!
Enjoy Advent Calendar!
最後に。。。
はてなブログのAndroidアプリが出たッ!
Salesforce DUG Tokyo #7に参加してきた!
Salesforce DUG [Tokyo] Meetup #7 - Salesforce DUG Japan | Doorkeeper
参加と言いながら、一応主催者側なので早めに開場入りしてセッティングから。今回は皆さま集まりが早い。
Winter'15リリースノート輪読(@yonet77さん)
DreamforceではLightingやWaveに話題をかっさらわれてあまり新機能がないかな、と思っていてもかなりのボリューム。アクションリンクやオンラインストレージとの連携は地味に普段の使い勝手がよくなりそうなところです。
パイロットのものも結構ありますが、Quick Deployとか早くリリースされるといいですね。
あと、全部やらせてしまって、すみません、すみません、すみません。
Do you known issues ? - Practical use of known issue -(@xlouderさん)
Known Issuesはとりあえずfeedlyに突っ込んでほぼ毎日見てます。
OEMパートナーとしてサポートもしていると結構見てないと、どきどきすることもあったりなかったりとか。レポーターが多いと早く直るかもしれないので、知人の人がレポーターにいたら手伝ってあげるといいかもですね。
$1 Million Hackthon Challenger(チーム、オークニーさん)
今回のHackthonは過酷なものになったようです。
いきなりSwiftでBlueToothすれ違い通信に挑戦するとかなかなかのチャレンジャーだったりしたようですが、そのおかげもあって今回の発表内容はProjectXばりのアツい内容でした。
発表ではこんな言葉を残していました。
「体力的にも、メンタル的にも厳しかった…」
「笑顔が消えた…」
「寝袋持参はアメリカン・ジョークじゃなかった…」
もう涙なしでは…。
ついでにMVPな方々に英語でビジネスプラン含めてプレゼンするとかかなりハードな審査だった模様。結果は置いといて、確実に日本にもHackthonの経験が蓄積されているので、来年も頑張りましょう!(いつか参加できるのか。。。)
Dreamforce2014 ~Mini Hack~(@pomu0325さん)
Dreamforceの会場では、Demo Paloozaと呼ばれるハイテンションにS1活用事例をLT形式で発表するところがあるとか。
そして、主に「Mini Hack」のご紹介。なかなかコードレスで作るとかパズル要素があって面白そうです(普段から限界に挑戦していないと分からなそうですが。。。)。また似た問題に出くわすかもしれないので、要学習ですね!
中の人からSalesforce1 World Tour Tokyoについて
2014/12/4はSalesforce World Tour Tokyo - セールスフォース・ドットコムがあるので、空けておくようにとのこと!
なんだかここに書くのは憚れる内容だったので、あとはtwitterまとめでも見てください。
第2回 日本Seleniumユーザーコミュニティ勉強会に参加してみた
第2回 日本Seleniumユーザーコミュニティ勉強会 - connpass に参加しました!
「勉強会はブログを書くまで」ということで、ざっくりと感想まで。
ハッシュタグ「#seleniumjp」に勉強会中のツイートが流れてます。
Seleniumをもっと知るための本の話(玉川竜司さん)
エンジニアたるもの英語情報を読むといいよ、というお話。耳が痛いですね。
英語の技術書を読むには、このあたりを利用するとよいそうです。特に、Safari Books Onlineについては定額サービスで面白いですね。
脱・独自改造!GebでWebDriverをもっとシンプルに(玉川紘子さん)
Geb(じぇぶ)の紹介でした。
WebDriverをJavaで書くとDOMを操作するときのような煩雑さがあり、テストコードが長くなってしまいがち。Gebを利用すると、要素検索などをjQueryライクに記述でき、かなりスッキリとしたテストコードが書けるとのこと。
GebはGroovyで利用するライブラリで、Javaで利用する場合はFluentLeniumがあるようです。
海外のSeleniumカンファレンスではどんな発表がされているのか2014(伊藤望さん)
Selenium Conference に動画や資料が上がっているので、見てみると面白いよ、というお話。
いろいろおもしろいタイトルの発表があるようです(笑)。
ハイパフォーマンスSeleniumテスト@サイボウズ(宮田淳平さん)
Kintone中の人によるテスト自動化に関するお話。
Platformerということもあり、自動化には結構力が入っている感じでした。大規模なアプリケーションに対して、テストケースの軽量化、並列化を行って、テスト実行が30分以内で収めているところに並々ならぬ意気込みを感じました。
「テストコードの品質は製品のコードと同様に重要になってくる」
この言葉にはテスト自動化で苦労してきた重みを感じました。
社内勉強会で利用した書籍たち。
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (52件) を見る
実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)
- 作者: Janet Gregory,Lisa Crispin,榊原彰,増田聡,山腰直樹,石橋正章
- 出版社/メーカー: 翔泳社
- 発売日: 2009/11/28
- メディア: 大型本
- 購入: 3人 クリック: 142回
- この商品を含むブログ (52件) を見る
クックパッドアプリの開発を支援するAppiumの話(松尾和昭さん)
クックパッド中の人によるモバイルアプリのテスト自動化に関するお話。
Appiumでテスト自動化する範囲、ユニットテストで自動化する範囲、人間系でテストする範囲を意識的に分けて、最適な分担を戦略的に考えているところは参考になりました。
Chatterが有効化されているか判定する
ChatterのプロファイルベースのロールアウトがSummer'14からGAとなりました(有効化するためにはサポートへの連絡が必要です)。
これによって、組織としてはChatterを有効化してもユーザレベルではChatterを無効化することができるようになりました。そのため、利用しているユーザがChatterを利用できるか判定するための方法が変わってきます。
ということで、Chatterが利用できるか判定する方法を調べてみました。
有効化していない場合
組織単位でChatterが有効化されているかチェックする
ConnectApi.OrganizationSettings o = ConnectApi.Organization.getSettings(); System.debug('Chatter=' + o.features.chatter);
有効化した場合
ユーザごとにChatterが有効化されているかチェックする
ConnectApi.UserSettings u = ConnectApi.Organization.getSettings().userSettings; System.debug('Chatter=' + u.hasChatter);
基本的には、ConnectApiを叩けば値を取得できます。UserSettingsクラスのhasChatterはChatterのプロファイルベースのロールアウトを有効化していない状態でも値を取得できましたので、有効化した場合の書き方をしておけば、どちらの状況でも対応できそうです。
ただ、UserSettingsのhasChatterはAPIレファレンスに載っていないようなので今後変更になるかもしれません。
Enjoy Chatter!
2014/8/17追記:APIリファレンスに掲載されていることを確認