2014年1月31日金曜日

Force.com mobile SDK 2.1.0 for iOS(追記)

■まずインストール■

インストールの方法と基本的な操作はここに書いてあります。

forceios
Utilities for creating mobile apps based on the Salesforce Mobile SDK for iOS

2.0まではgitからのcloneでしたが、2.1になってnpmが用意されたようです。自分のアカウント用として作るのであれば、適当なディレクトリに移動してから
    $ sudo npm install forceios
を実行すると直下にnode_modulesディレクトリが出来、その下にインストールされます。

Macの全てのユーザから使えるようにするには
    $ sudo npm install forceios -g
いずれもターミナルから実行します。この場合は/usr/local/lib/node_modules下にパッケージがインストールされます。

以下、-gの付いている方を前提とします…Terminalでパスなど切らなくて良いのでラクですし。インストールが終わったら、
    $ forceios version

    forceios version 2.1.0
と表示されればインストールOKです。

■まずはSamples■

もうSampleは見なくていいよ、という方は次の段落へどうぞ。これもターミナルでの作業です。まず、適当なディレクトリに移動してから
    $ forceios samples -outpoutDir=Samples
とすれば、直下にSamplesというディレクトリが作られ、さらにその下にサンプルプロジェクトが並びます。



あとは各フォルダの中にある .xcodeproj をダブルクリックしてXcodeで開き、どういう作りになっているか覗いてみてください。

■プロジェクトの作り方■

これもターミナル上での作業です。プロジェクトを置くディレクトリに移動します。少し長いですが、forceiosのcreateコマンドを使います(実際は1行です…nativeの場合apptypeは省略可能です)。
    $ forceios create --apptype=native --appname=TestForce210
    --companyid=com.your.domain --organization=あなたの会社名 

リターンキーを押すと、プロジェクトを作るディレクトリ、App ID、App Callback URI()を聞いてきます。全部リターンキーでOKです。
    Enter the output directory for your app (defaults to the current directory): 
    Enter your Connected App ID (defaults to the sample app's ID): 
    Enter your Connected App Callback URI (defaults to the sample app's URI): 
数秒間メッセージが流れて、最後にこれが出ればOKです。
    Congratulations!  You have successfully created your app.
できました。では、TestForce210/TestForce210.xcodeprojをダブルクリックします。さっきリターンキーで飛ばしたApp IDはProject情報で設定し直すことができます。また、Callback URIとRemoteAccessConsumerKeyも今までと同様、Classesフォルダ下のAppDelegate.mで正しい値に設定することができます。cmd+Rでビルド&実行してみます。スプラッシュの後、認証画面が出て、さらにその数秒後にさっき認証した組織のユーザ名一覧が表示されれば完了です。

さっくり見てみましたが、ARCは前回対応されたものの、Storyboardはやっぱりまだですね…。Storyboardを使うには、AppDelegateの - (void)setupRootViewControllerを変更します。以前書いた方法と少し違いますが、基本的なやり方は同じです。

追記2014/01/31:Storyboard上ではUITableViewControllerにnavigation controllerをEmbed InしてAppDelegate.mの -(void)setupRootViewControllerで以下のようにrootViewControllerにセットするとStatusBar / TopBarが正しく動作します。

- (void)setupRootViewController
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard"
                                                         bundle:[NSBundle mainBundle]];
 
    UINavigationController *navi = [storyboard instantiateViewControllerWithIdentifier:@"naviView"];
    self.window.rootViewController = navi;
}

さて、世界がぶっとぶようなアプリでも作るかねw

0 件のコメント:

コメントを投稿