
AtomとMavensMateでSalesforceの開発環境をセッティングする

【8/9 更新】 MavensMate はすでにサポートが終了しています。
この記事の方法では動作しない可能性がありますので、ご注意下さい。
http://mavensmate.com/
はじめに
Salesforceの開発環境といえば、Force.com IDEを追加したEclipseやブラウザ上の開発者コンソールが代表的なところですが、今回はAtomとMavensMateを利用した開発環境のご紹介します。
MavensMateとは、テキストエディタを使用してSalesforceの開発を行えるようにするオープンソースのプロジェクトとなっています。使用出来るテキストエディタには以下のものがあります。
準備
環境
今回は以下の環境でセットアップなどを行いました。
- Mac OSX 10.11.6
- MavensMate Desktop v0.0.11-beta.7
- MavensMate for Atom v1.0.10
Windowsでも各種アプリなどはリリースされていますので問題なく使用出来ると思います。
MavensMateデスクトップ
まずはSalesforceへのログインやプロジェクトの管理などを行う、MavensMate Desktopというアプリをインストールします。
Atom(他のエディタでも同様)でMavensMateを利用して開発を行う場合には、このMavensMate Desktopを常に起動しておく必要があります。
ダウンロードはGitHubから行います。リリースノートより最新版をダウンロードしてください。
Release - MavensMate Desktop
今回は、 MavensMate-Desktop-0.0.11-beta.7-mac.zip
をダウンロードしました。
MavensMateプラグイン
次にAtomのプラグインとして、MavensMate for Atomをインストールします。
Atomを起動しメニューバーから、 Atom -> Preferences
を選択、Install
をクリックします。
検索ボックスに、 MavensMate for Atom
と入力し、ヒットしたプラグインをインストールします。

セットアップ
まずはローカルにソースを保存するディレクトリ、ワークスペースの設定を行います。
MavensMate Desktopを起動し、ホームから SETTING
を開きます。

Global Settingが開き、最上部にワークスペースの設定があるので、そこに使用したディレクトリのパスを記述します。
配列の要領で複数追加しておくと、プロジェクトの作成時に選択肢として表示させることが可能です。

プロジェクトの作成
ホームから新しく NEW PROJECT
を選択し、プロジェクトを作成します。
(Setting画面からホームへは、右上のタイルアイコンをクリックし、表示されるウインドウ上で、Add View
をクリックする事でホームへ遷移するボタンが表示出来ました。)
まずは環境を選択します。今回はディベロッパー環境と接続するので、Developerとしておきます。

Connect
をクリックすると、Salesforceのログイン画面が表示されるので、ここでユーザー名、パスワードを入力します。

ログインに成功すると、アクセスの許可を求められるので内容を確認し許可してやります。

接続が完了したので、最後にプロジェクトの名前とワークスペースの選択を行い、プロジェクトの作成を完了します。

この際、ADVANCED
やMETADATA
タブにて、ローカルに同期させる対象を細かく選択する事が可能です。

完了するとプロジェクトのホームが開きます。完了の通知から Open in Atomをクリックすると作成したプロジェクトと接続された状態でAtomを開く事が出来ます。

Atomが開き、初期化が終了するとエディタの下部に以下のように通知が表示されます。これで開発の準備は完了です。

開発
起動
開発する際の手順は以下のようになります。
- MavensMate Desktopの起動
- MavensMate Desktopにてプロジェクトを開く
- MavensMate DesktopからAtomを起動
- Atomが起動し、初期化が完了
プロジェクトを開く
MavensMate DesktopのホームからOPEN PROJECTを選択します。
プロジェクトの一覧が表示されるので、開きたいプロジェクトを選択します。

開くと、プロジェクトのホームが表示されるので、左アイコンからPCっぽいものをクリックし、Atomを起動します。

データの取得と保存
取得
プロジェクト作成時に、PROJECT METADATA
のタブから何も選択しなかった場合はローカルのディレクトリには何もソースファイルがない状態となっています。
既存のファイルをローカルに取得するには、プロジェクトのホームから、 EDIT PROJECT
を選択し、追加したいファイルをチェックして保存してやります。
種類単位やファイル単位での選択が可能です。

保存
デフォルトではファイルを編集し、保存するたびにSalesforceにコンパイルが行われ、エラーが出た場合には通知されます。

上記矢印の、 1 error
、と出ている赤いボタンをクリックすることでエラーの内容を一覧で確認することが可能です。
エラー内容をそのままウェブ検索したりすることも出来ます。

エラーを解消し、保存し直してやることで正しくコンパイルが行われるのですが、エラーの表示は消えずに残ったままとなってしまっています。
ログ上では Complile Completed Successfully
との表示があり、Salesforceにも正しく反映されているため、表示上のバグだと思われます。

このバグはちょっと紛らわしいのですが、保存時にMavensMateのウインドウが表示され、自動的に閉じるとコンパイル成功、開いたままだとエラー、というように判定したりしています。(設定による)

保存時の設定
保存時に自動でコンパイルを行うかどうかはプラグインのSettingsから設定します。
Atomのメニューバーから、 MavensMate -> Settings -> Plugin Settings
を選択します。
Settingsの、 Compile files on save
にデフォルトではチェックが入っているので、チェックを外します。これで保存時にコンパイルが行われなくなりますので、手動でのコンパイルが必要となります。
手動でのコンパイルは、コンパイルしたいファイルを選択し、右クリックのメニューから、MavensMate -> Compile Files
を選択します。
このコンパイルはファイル単位のみとなります。複数まとめてコンパイルしたい場合は Shiftやコマンドなどで複数選択した状態で右クリックから実行して下さい。

補完
開発中はある程度の補完が効きます。
以前のバージョンでは補完はなかったように思うので、これだけでかなり便利になりました。
ただし、メソッドの引数などの情報は表示してくれなかったりと、一応効く、くらいの程度ではありますが、ないよりは断然良いです。

デバッグログ
Salesforceの場合、ログの出力は予め出力するユーザーや範囲などを期間を区切って指定してやる必要があります。
MavensMateからその設定を作成し、ログを取得する用のメニューが用意されているのですが、少し前にSalesforce側で実装された、デバッグレベル用のオブジェクトに対応が出来ていないようで、ログを開始しようとするとエラーが出てしまいました。

なので、ログを確認する場合には開発者コンソールから確認する方がよさそうです。今後の改善に期待します。
テスト
テストを実行するには、サイドメニューから DEBUGGING & TESTING -> Run Apex Unit Tests
を選択し、テストクラスの一覧が表示されるので実行したいテストを選択し、 Run Tests
で実行します。

実行後、成功したかどうかは TEST RESULTS
のタブに表示されます。

カバレッジも確認出来ます。

バージョン管理
開発者コンソールでの開発の場合と違って、ソースがローカルの環境に保存されるため、そのままGit等でバージョン管理してやる事が可能です。
その際は、プログラムのソースが保存されている、src/
ディレクトリ以外は .gitignore
に追加しておけばよいと思います。
Lightning
LightningコンポーネントやLightningアプリの開発も可能です。
例えばLightningコンポーネントをMarvensMate Desktopから作成する場合は以下のようになります。

作成されたファイルは、 src/aura/{名前}/
以下に格納されます。

まとめ
補完もある程度とはいえ効くようになったため、Atomを利用した開発もかなりまともに出来るようになりました。
まだ、エラー表示やデバッグログの表示など、ベータ版ということもあってバグっぽい動作もありますが、使い慣れたエディタでの開発、Gitによるバージョン管理、など受けられる恩恵は大きいです。
今後の発展に大いに期待したいところです。