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リファレンスに掲載されていることを確認
Salesforce DUG [Tokyo] Meetup #6 で輪読発表してきました!
Salesforce DUG [TOKYO] #6 Meetup に参加してきました。
今回も会場は、株式会社セールスフォース・ドットコム社のセミナールームをお借りし、Pizza&Drinkもいただきました。いつもありがとうございます!
幹事メンバーは時間を過ぎて到着…。
ごめんなさい、ごめんなさい。次回はちゃんと会場設営手伝いますぅ。
ということで、御礼と謝罪が終わったとこで本題に。
全体の流れについては、なかやまろぐ
なかやまろぐ: Salesforce DUG [Tokyo] Meetup #6にいってきた!
を見てもらうとイラスト付きでわかりやすいので、そちらに譲ります。
Salesforce Summer'14がリリースされるので、新機能の輪読として「ISVforce」パートを担当しました。今回正式リリースになるUsage Metricsの落とし穴あたりを中心に発表しました。
さて、6/9のSalesforce1 Crowd Hack ChallengeのLTでは落選した挙句「安易に猫に逃げるのは…」と発想の陳腐さを斬り捨てられたわけですが、今回は「富豪プログラム…」との誹りを…。
うぅ…心が…。
でも、悪いことばかりじゃない。いいこともありました!
そう、@nakayama_sanにイラスト描いてもらえました!ありがとうございます!
Enjoy Meetup!
Salesforce Developer User Group [Tokyo] Meetup #5 のまとめ
5/19 に開催されたAppExchange Developers Meetingの帰りがけにS1 DevWeekのおみやげをゲットしました!ビニールを開けるのがめんどうだったので…。
(誰か郵送を頼んだ人いるのかな?)
せっかくブログを書くので、ついでにSalesforce Developer User Group Tokyo Meetup #5 の発表資料のまとめです。
Mobile HackChallengeエントリ紹介(1)
- pomu0325 Yaccl
- a_kuratani +Message(#寿司forceの楽しみ方)
Mobile HackChallengeエントリ紹介(2)
- stomita Salesforce1 最速経路
- i556 Inside Quizar
- yonet77 進捗どうですか?
6月の開発者向けイベントとスピーカーの公募のご案内
- mitsuhiro Salesforce1 Developer Week
LT
- Masato Setoyama Salesforceモバイル案件で経験した3つの難しい要件とその対応方法
- Masashi Nishiwaki Salesforce Mobile SDKにモノ申す!
6/9 には Salesforce1 Developers Community MAX が開催されます。Hack Challengeのテーマもこちらで発表されています。期間も短くテーマも多いので、高確率で賞金をゲットできるかもしれませんね!
Enjoy Hack Challenge!