SlideShare a Scribd company logo
1 of 28
Download to read offline
勉強会force   #3

iOSアプリ開発
ISV Architect 中嶋 一樹
Safe Harbor
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such
uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ
materially from the results expressed or implied by the forward-looking statements we make. All statements other than
statements of historical fact could be deemed forward-looking, including any projections of product or service availability,
subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or
technology developments and customer contracts or use of our services.

The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and
delivering new functionality for our service, new products and services, our new business model, our past operating losses,
possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our
security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and
acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our
limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further
information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report
on Form 10-Q for the most recent fiscal quarter ended April 30, 2011. This documents and others containing important
disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

Any unreleased services or features referenced in this or other presentations, press releases or public statements are not
currently available and may not be delivered on time or at all. Customers who purchase our services should make the
purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does
not intend to update these forward-looking statements.
606人が来場
AppExchange Conference 2012.02
すごいアンケート
• HTML5で構築
• Heroku + Force.comで稼働 
•   379 のアンケート
•   199 のコメント
ネイティブアプリ
iOSネイティブアプリの特徴

•リッチなユーザーインターフェース
•デバイス機能の活用
•App Storeでの配信
•ホーム画面に残る
•XcodeとObjective Cで開発
Force.comと連携するiOSネイティブアプリのアーキテクチャ

        データベース
          Apex
          API                               ①認証・認可


        リソースサーバ                             認証サーバ

         ③リクエスト
                                                 Force.com

                  ②アクセストークン


                    Salesforce Mobile SDK


                          iOS SDK
メール配信   Chatterで情報連携               レポートで分析


        データベース
          Apex
           API                                 ①認証・認可


        リソースサーバ                                認証サーバ

         ③リクエスト
                                                    Force.com

                  ②アクセストークン


                       Salesforce Mobile SDK
Mobile SDKのインストールとプロジェクト作成

 Xcodeのインストール



 githubのレポジトリをクローン(ダウンロード)

 $ git clone https://github.com/forcedotcom/SalesforceMobileSDK-iOS.gt



 インストールスクリプトを実行

 $ cd SalesforceMobileSDK-iOS/
 $ ./install.sh



 Native Force.com REST Appテンプレートからプロジェクトを作成

 *Use Automatic Reference Countingのチェックをはずす
Mobile SDK Nativeテンプレートの構造

 AppDelegate

     Consumer IDとCallback URLを設定


 RootViewController

     認証後のアプリケーションのメイン画面を制御
     *サンプルアプリではユーザ名を10個取得し、テーブルビューに表示


 SFAuthorizingViewController

     認証画面を制御


 SFNativeRestAppDelegate
     UIApplicationDelegateプロトコルに従い、アプリケーション起動から認証までの挙動を
     担当
SFNativeRestAppDelegate

   didFinishLauchingWithOptions:(NSDictionary *)launchOptions
        setupAuthorizingViewControllerをキック



   setupAuthorizingViewController

        rootViewControllerにSFAuthorizingViewControllerのインスタンスをセットし、アク
        ティブに


   loggedIn

        newRootViewControllerをキックしrootViewControllerに
        RootViewController(アプリのコントローラ)をセットし、アクティブに
        *newRootViewControllerはAppDelegateで実装されている
RootViewController


 viewDidLoad
        メニューバーのタイトルをセット
        Force.comからユーザー名を10個取得

SFRestRequest *request = [[SFRestAPI sharedInstance] requestForQuery:@"SELECT Name FROM User LIMIT 10"];
[[SFRestAPI sharedInstance] send:request delegate:self];




 didLoadResponse:(id)jsonResponse

        レスポンスをself.datarowsにセット



 cellForRowAtIndexPath:(NSIndexPath *)indexPath

        テーブルのセルをデキューまたは生成し、ユーザー名をセット
UIApplicationDelegate    UIAlertViewDelegate       UIViewController       UITableViewController

                        SFAuthCoodinatorDelegate
                                                         Subclass


                                    SFAuthorizingViewController

                         Protocol


                              SFNativeRestAppDelegate


                                    Subclass                                      Subclass


                                           AppDelegate                RootViewController

                                                                        Import

                                               Import       SFRestAPI            SFRestRequest
CRUD操作

レコード作成

NSString *objectType = @"Contact";
NSDictionary *fields = [@"{FirstName:Kazuki, LastName:Nakajima}" JSONValue];

SFRestRequest *request = [[SFRestAPI sharedInstance]
     requestForCreateWithObjectType:objectType fields:fields];

[[SFRestAPI sharedInstance] send:request delegate:self];




レコード削除
NSString *objectId = @"1234567890";
NSString *objectType = @"Contact";

 SFRestRequest *request = [[SFRestAPI sharedInstance]
     requestForDeleteWithObjectType:objectType objectId:objectId];

[[SFRestAPI sharedInstance] send:request delegate:self];
ハイブリッドアプリ
iOSハイブリッドアプリの特徴

•Web技術での開発
•デバイス機能を呼び出し可能
•App Storeでの配信
•ホーム画面に残る
Force.comと連携するiOSハイブリッドアプリのアーキテクチャ

        データベース
          Apex
          API                                     ①認証・認可


        リソースサーバ                                        認証サーバ

         ③リクエスト
                                                          Force.com

                  ②アクセストークン

                   Force.com Javascript REST Toolkit


                     Salesforce Mobile SDK

                              iOS SDK
プロジェクト作成

 Hybrid Force.com Appテンプレートからプロジェクトを作成
 *Use Automatic Reference Countingのチェックをはずす




 wwwフォルダを右クリックして一旦削除する
 ポップアップではRemove Referencesをクリック



 プロジェクトを右クリックしてshow in finderを選択し、wwwフォルダをドラッグ&
 ドロップでプロジェクトに追加する
 *Copy items into destination group’s folder (if needed)を選択
 *Create folder references for any added foldersを選択


 wwwフォルダが青色であることを確認する
Mobile SDK Hybridテンプレートの構造

 bootconfig.js
     Consumer IDとCallback URL等の設定を記述

 forcetk.js
     Force.com JavaScript REST Toolkit。RESTアクセスのラッパー


 index.html
     アプリケーションのメイン画面


 inline.js
     サンプルアプリの処理

 SalesforceOAuthPlugin.js
     PhoneGapのAPIを利用して認証処理を実装

 phonegap-x.x.x.js
     PhoneGapのAPIを提供
bootconfig.js
  debugMode = true | false;
       logToConsoleメソッドの出力がスクリーンに表示されるかどうか

  remoteAccessConsumerKey = xxx;

       コンシューマ          をセット

  oauthRedirectURI = [xxx]

       コールバックURLをセット

  oauthScopes = ['xxx','xxx'];

       発行されるトークンの権限

  startData =   new SFHybridApp.LocalAppStartData(); |
                        new SFHybridApp.RemoteAppStartData("[VFページのパス]");


       コンテンツがローカル管理の場合はLocalAppStartData()をセット
       コンテンツがVisualforce管理の場合はRemoteAppStartData()をセット

  autoRefreshOnForeground = true | false;

       OAuthセッションを自動リフレッシュするかどうか
index.html

   jQuery(document).ready(function(){}
        devicereadyイベント発生時にonDeviceReady()をキックすることを登録



   onDeviceReady(){}

        SalesforceOAuthPlugin.getAuthCredentials()をキック
        salesforceSessionRefreshイベント発生時にsalesforceSessionRefreshed()をキックする
        ことを登録
        reLinkClickHandlers()をキック(サンプルアプリのクリックイベントを登録)

   salesforceSessionRefreshed(){}

        forcetk.Clientのインスタンスを生成し、認証で得られたトークンをセット
PhongeGap.plist
*ファイルの場所はプロジェクト名 > Supporting Files > PhoneGap.plist




ExternalHosts

      JavaScriptやCSSのライブラリを外部サーバから読み込む場合はドメインを明記する必要がある
Force.com JavaScript REST Toolkit

   インスタンス生成
       var forcetkClient = new forcetk.Client(clientId, loginUrl, proxyUrl);

   トークンセット
       forcetkClient.setSessionToken(sessionId, apiVersion, instanceUrl);


   レコード作成
       forcetkClient.create(objtype, fields, callback, error);


   レコード削除
       forcetkClient.del(objtype, id, callback, error);


   SOQL発行

       forcetkClient.query(soql, callback, error);


   Apex Rest発行

       forcetk.Client.apexrest(path, callback, error, method, payload, retry);
PhoneGapで提供される機能

             加速度センサー                             位置情報
             カメラ                                 プッシュ通知
             コンパス                                音楽データ
             連絡先                                 マイク
             ストレージ                               回線


カメラ呼び出しの例

 $j(document).on('tap', '#page_create_survey #button_capture_business_card', function(){
     navigator.camera.getPicture(onCameraSuccess, onCameraFail, { quality: 50,
         destinationType: Camera.DestinationType.DATA_URL
     });
 });



 各APIについて詳しくはhttp://docs.phonegap.com/en/1.6.1/index.htmlを参照
アプリ配布
タイプ毎の配布

 パターン①:Directory / ISVforce Application (旧AppExchange)

       • 組織はすでにある前提なので単にアプリを配布すればOK。
       • リスティングはApp StoreとAppExchangeに。
       • HTML5アプリであればログイン後にUserAgentによってリダイレクトするなど。
       • ネイティブ、ハイブリッドはHOMEにインストール情報を掲載しておくなど。

 パターン②:OEM Application

       • 最初はまず組織プロビジョンニングする必要あり。
       • リスティングはApp StoreとAppExchangeに。
       • HTML5アプリであればログイン後にUserAgentによってリダイレクトするなど。
       • ネイティブ、ハイブリッドはHOMEにインストール情報を掲載しておくなど。

 パターン③:Database.com

       • ユーザー数、データ量、トランザクション量で課金。
       • パートナープログラムは今のところありません。(2012年4月現在)
       • 複数組織で構成することもできるし、単一組織で構成することもできる。
        (ガバナ制限に注意)
その他

 •   OAuth 2.0をマスターしよう。
 http://wiki.developerforce.com/page/JP:Digging_Deeper_into_OAuth_2.0_at_Salesforce.com



 •   username/passwordフローではLogin IPレンジに注意。

 •   Aloha認定を取得しよう。

 •   Sitesはトライアル環境毎に有効化申請が必要です。

 •   ベンダー側でおこなうサイト毎のカスタマイズはなくそう。

 •   HTML5、ハイブリッドでは 基本はVisualforceで完結しつつ、

     パッチでの修正をおこなう

 •   Web側の機能追加が頻発する場合はherokuを利用するなど。

More Related Content

What's hot

Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはjunichi anno
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理Naohiro Fujie
 
Latest Status of Identity Federation
Latest Status of Identity FederationLatest Status of Identity Federation
Latest Status of Identity FederationAtsushi Kambara
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可Naohiro Fujie
 
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャアイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャNaohiro Fujie
 
Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張Naohiro Fujie
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装Masatoshi Tada
 
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...junichi anno
 
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルーLINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルーNaohiro Fujie
 
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.11/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1junichi anno
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版junichi anno
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割junichi anno
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveSuguru Kunii
 
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要Naohiro Fujie
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADjunichi anno
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用stomita
 
AD FS deep dive - claim rule set
AD FS deep dive - claim rule setAD FS deep dive - claim rule set
AD FS deep dive - claim rule setjunichi anno
 

What's hot (20)

Cloud で Active Directory を活用するには
Cloud で Active Directory を活用するにはCloud で Active Directory を活用するには
Cloud で Active Directory を活用するには
 
Apexデザインパターン
ApexデザインパターンApexデザインパターン
Apexデザインパターン
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
 
Latest Status of Identity Federation
Latest Status of Identity FederationLatest Status of Identity Federation
Latest Status of Identity Federation
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可
 
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャアイデンティティ管理の基礎~Fim adfsアーキテクチャ
アイデンティティ管理の基礎~Fim adfsアーキテクチャ
 
Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張Azure ADとWindows 10によるドメイン環境の拡張
Azure ADとWindows 10によるドメイン環境の拡張
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
 
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Ac...
 
LINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルーLINEログインの最新アップデートとアプリ連携ウォークスルー
LINEログインの最新アップデートとアプリ連携ウォークスルー
 
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.11/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1
 
Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版Azure Active Directory 1枚資料 20151125版
Azure Active Directory 1枚資料 20151125版
 
SaaS としての IDM の役割
SaaS としての IDM の役割SaaS としての IDM の役割
SaaS としての IDM の役割
 
Scim and or graph
Scim and or graphScim and or graph
Scim and or graph
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep Dive
 
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
 
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要
 
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure ADAzure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用
 
AD FS deep dive - claim rule set
AD FS deep dive - claim rule setAD FS deep dive - claim rule set
AD FS deep dive - claim rule set
 

Viewers also liked

The Water Cycle Notes View
The Water Cycle Notes ViewThe Water Cycle Notes View
The Water Cycle Notes Viewjshowalter13
 
Lt Jennifer Cragg, Department of Defense
Lt Jennifer Cragg, Department of DefenseLt Jennifer Cragg, Department of Defense
Lt Jennifer Cragg, Department of DefensePRSA Colorado
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
Eventos Gobal
Eventos GobalEventos Gobal
Eventos GobalGOBAL
 
Leadership in an Agile Transformation
Leadership in an Agile TransformationLeadership in an Agile Transformation
Leadership in an Agile TransformationDhananjay Pershad
 
Ramonna Tooley, GroundFloor Media
Ramonna Tooley, GroundFloor MediaRamonna Tooley, GroundFloor Media
Ramonna Tooley, GroundFloor MediaPRSA Colorado
 
Agile - Changing role of Functional Manager
Agile - Changing role of Functional ManagerAgile - Changing role of Functional Manager
Agile - Changing role of Functional ManagerDhananjay Pershad
 
Eventos Gobal
Eventos GobalEventos Gobal
Eventos GobalGOBAL
 
ビジネスアイデアを最速で形にできるApp exchange
ビジネスアイデアを最速で形にできるApp exchangeビジネスアイデアを最速で形にできるApp exchange
ビジネスアイデアを最速で形にできるApp exchangeKazuki Nakajima
 
Socialvoice for sales intro
Socialvoice for sales introSocialvoice for sales intro
Socialvoice for sales introKazuki Nakajima
 
Learning Language Presentation
Learning Language PresentationLearning Language Presentation
Learning Language Presentationsppaul
 
How to use "coNNect" in Japanese
How to use "coNNect" in JapaneseHow to use "coNNect" in Japanese
How to use "coNNect" in JapaneseShota Atago
 
How to use "coNNect" in English
How to use "coNNect" in EnglishHow to use "coNNect" in English
How to use "coNNect" in EnglishShota Atago
 

Viewers also liked (18)

The Water Cycle Notes View
The Water Cycle Notes ViewThe Water Cycle Notes View
The Water Cycle Notes View
 
Upwardのご紹介
Upwardのご紹介Upwardのご紹介
Upwardのご紹介
 
Lt Jennifer Cragg, Department of Defense
Lt Jennifer Cragg, Department of DefenseLt Jennifer Cragg, Department of Defense
Lt Jennifer Cragg, Department of Defense
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
Eventos Gobal
Eventos GobalEventos Gobal
Eventos Gobal
 
Leadership in an Agile Transformation
Leadership in an Agile TransformationLeadership in an Agile Transformation
Leadership in an Agile Transformation
 
Ramonna Tooley, GroundFloor Media
Ramonna Tooley, GroundFloor MediaRamonna Tooley, GroundFloor Media
Ramonna Tooley, GroundFloor Media
 
Agile - Changing role of Functional Manager
Agile - Changing role of Functional ManagerAgile - Changing role of Functional Manager
Agile - Changing role of Functional Manager
 
Googledocs
GoogledocsGoogledocs
Googledocs
 
Eventos Gobal
Eventos GobalEventos Gobal
Eventos Gobal
 
ビジネスアイデアを最速で形にできるApp exchange
ビジネスアイデアを最速で形にできるApp exchangeビジネスアイデアを最速で形にできるApp exchange
ビジネスアイデアを最速で形にできるApp exchange
 
Socialvoice for sales intro
Socialvoice for sales introSocialvoice for sales intro
Socialvoice for sales intro
 
Learning Language Presentation
Learning Language PresentationLearning Language Presentation
Learning Language Presentation
 
How to use "coNNect" in Japanese
How to use "coNNect" in JapaneseHow to use "coNNect" in Japanese
How to use "coNNect" in Japanese
 
Naming the nyms
Naming the nymsNaming the nyms
Naming the nyms
 
How to use "coNNect" in English
How to use "coNNect" in EnglishHow to use "coNNect" in English
How to use "coNNect" in English
 
Salesforce1入門
Salesforce1入門Salesforce1入門
Salesforce1入門
 
The Water Cycle
The Water CycleThe Water Cycle
The Water Cycle
 

Similar to 勉強会force#3 iOSアプリ開発

jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメYoshito Tabuchi
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版Junichiro Tasaki
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発Daizen Ikehara
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with HandoffYuichi Yoshida
 
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンAWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンEiji KOMINAMI
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説kumo2010
 
ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法Kenichiro Nakamura
 
Entity Framework 5.0 deep dive
Entity Framework 5.0 deep diveEntity Framework 5.0 deep dive
Entity Framework 5.0 deep diveAtsushi Fukui
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa Stotty jp
 
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
 
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Salesforce Developers Japan
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Microsoft Azure Japan
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architectureIssei Hiraoka
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションDaisuke Masubuchi
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryRyo Yamasaki
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介Fumiya Sakai
 

Similar to 勉強会force#3 iOSアプリ開発 (20)

jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメXamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
Xamarin de:code セッション:Windows Phone / iOS / Android アプリ同時開発のススメ
 
AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版AppExchangeパートナー&デベロッパー第2部:20070523版
AppExchangeパートナー&デベロッパー第2部:20070523版
 
Force.com Canvas アプリケーション
Force.com Canvas アプリケーションForce.com Canvas アプリケーション
Force.com Canvas アプリケーション
 
Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発Webに今求められているレベル: HTML5 コントロールを利用した開発
Webに今求められているレベル: HTML5 コントロールを利用した開発
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with Handoff
 
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオンAWS Amplify - Auth/API Category & Vue 構築ハンズオン
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
 
ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法
 
Entity Framework 5.0 deep dive
Entity Framework 5.0 deep diveEntity Framework 5.0 deep dive
Entity Framework 5.0 deep dive
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
 
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 等のご紹介
 
Force.com開発基礎
Force.com開発基礎Force.com開発基礎
Force.com開発基礎
 
Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発Touch Platform によるモバイルアプリケーション開発
Touch Platform によるモバイルアプリケーション開発
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーションOSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQuery
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 

More from Kazuki Nakajima

ビーコンBotによるニュータイプな受付
ビーコンBotによるニュータイプな受付ビーコンBotによるニュータイプな受付
ビーコンBotによるニュータイプな受付Kazuki Nakajima
 
Apexで作成したrest apiをしっかり保護する方法
Apexで作成したrest apiをしっかり保護する方法Apexで作成したrest apiをしっかり保護する方法
Apexで作成したrest apiをしっかり保護する方法Kazuki Nakajima
 
Waterfall cafeで働くBot
Waterfall cafeで働くBotWaterfall cafeで働くBot
Waterfall cafeで働くBotKazuki Nakajima
 
AIが入った栄養士Botのアーキテクチャー
AIが入った栄養士BotのアーキテクチャーAIが入った栄養士Botのアーキテクチャー
AIが入った栄養士BotのアーキテクチャーKazuki Nakajima
 
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法Kazuki Nakajima
 
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分Kazuki Nakajima
 
無償のAPEXワークスペース取得方法
無償のAPEXワークスペース取得方法無償のAPEXワークスペース取得方法
無償のAPEXワークスペース取得方法Kazuki Nakajima
 
Oracle Cloudのjava実行環境
Oracle Cloudのjava実行環境Oracle Cloudのjava実行環境
Oracle Cloudのjava実行環境Kazuki Nakajima
 
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?実はDatabase cloudだけで実現できる巷で噂の機械学習とは?
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?Kazuki Nakajima
 
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶKazuki Nakajima
 
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知るKazuki Nakajima
 
今さらきけない環境ハブ
今さらきけない環境ハブ今さらきけない環境ハブ
今さらきけない環境ハブKazuki Nakajima
 
Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介Kazuki Nakajima
 
絶対使いたくなるAppexchangeアプリとそのアーキテクチャー
絶対使いたくなるAppexchangeアプリとそのアーキテクチャー絶対使いたくなるAppexchangeアプリとそのアーキテクチャー
絶対使いたくなるAppexchangeアプリとそのアーキテクチャーKazuki Nakajima
 
キャンバス個人用アプリ 速習ガイド
キャンバス個人用アプリ 速習ガイドキャンバス個人用アプリ 速習ガイド
キャンバス個人用アプリ 速習ガイドKazuki Nakajima
 
活躍中のアプリケーションから紐解くForcecom
活躍中のアプリケーションから紐解くForcecom活躍中のアプリケーションから紐解くForcecom
活躍中のアプリケーションから紐解くForcecomKazuki Nakajima
 
Force.com canvas入門ガイド
Force.com canvas入門ガイドForce.com canvas入門ガイド
Force.com canvas入門ガイドKazuki Nakajima
 

More from Kazuki Nakajima (20)

ビーコンBotによるニュータイプな受付
ビーコンBotによるニュータイプな受付ビーコンBotによるニュータイプな受付
ビーコンBotによるニュータイプな受付
 
Apexで作成したrest apiをしっかり保護する方法
Apexで作成したrest apiをしっかり保護する方法Apexで作成したrest apiをしっかり保護する方法
Apexで作成したrest apiをしっかり保護する方法
 
Waterfall cafeで働くBot
Waterfall cafeで働くBotWaterfall cafeで働くBot
Waterfall cafeで働くBot
 
AIが入った栄養士Botのアーキテクチャー
AIが入った栄養士BotのアーキテクチャーAIが入った栄養士Botのアーキテクチャー
AIが入った栄養士Botのアーキテクチャー
 
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法
AIを組み込んだ近未来のアプリケーションで感じる新しいサービスの新しい開発手法
 
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分
畑と会話するニュータイプなIo tアプリで加熱中の技術トレンドを鷲掴みにする45分
 
無償のAPEXワークスペース取得方法
無償のAPEXワークスペース取得方法無償のAPEXワークスペース取得方法
無償のAPEXワークスペース取得方法
 
Oracle Cloudのjava実行環境
Oracle Cloudのjava実行環境Oracle Cloudのjava実行環境
Oracle Cloudのjava実行環境
 
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?実はDatabase cloudだけで実現できる巷で噂の機械学習とは?
実はDatabase cloudだけで実現できる巷で噂の機械学習とは?
 
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ
海外で人気沸騰中のIo tデバイスとdatabase cloudで構成するシンプルなiot構成を学ぶ
 
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
鳥肌必至のニューラルネットワークによる近未来の画像認識技術を体験し、IoTの知られざるパワーを知る
 
今さらきけない環境ハブ
今さらきけない環境ハブ今さらきけない環境ハブ
今さらきけない環境ハブ
 
Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介Spring'15 ISV様向け新機能紹介
Spring'15 ISV様向け新機能紹介
 
絶対使いたくなるAppexchangeアプリとそのアーキテクチャー
絶対使いたくなるAppexchangeアプリとそのアーキテクチャー絶対使いたくなるAppexchangeアプリとそのアーキテクチャー
絶対使いたくなるAppexchangeアプリとそのアーキテクチャー
 
キャンバス個人用アプリ 速習ガイド
キャンバス個人用アプリ 速習ガイドキャンバス個人用アプリ 速習ガイド
キャンバス個人用アプリ 速習ガイド
 
活躍中のアプリケーションから紐解くForcecom
活躍中のアプリケーションから紐解くForcecom活躍中のアプリケーションから紐解くForcecom
活躍中のアプリケーションから紐解くForcecom
 
Force.com canvas入門ガイド
Force.com canvas入門ガイドForce.com canvas入門ガイド
Force.com canvas入門ガイド
 
Drawloop intro
Drawloop introDrawloop intro
Drawloop intro
 
Sugoisurvey intro
Sugoisurvey introSugoisurvey intro
Sugoisurvey intro
 
Rakumo intro
Rakumo introRakumo intro
Rakumo intro
 

Recently uploaded

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (12)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

勉強会force#3 iOSアプリ開発

  • 1. 勉強会force #3 iOSアプリ開発 ISV Architect 中嶋 一樹
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended April 30, 2011. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 4. すごいアンケート • HTML5で構築 • Heroku + Force.comで稼働  • 379 のアンケート • 199 のコメント
  • 7. Force.comと連携するiOSネイティブアプリのアーキテクチャ データベース Apex API ①認証・認可 リソースサーバ 認証サーバ ③リクエスト Force.com ②アクセストークン Salesforce Mobile SDK iOS SDK
  • 8. メール配信 Chatterで情報連携 レポートで分析 データベース Apex API ①認証・認可 リソースサーバ 認証サーバ ③リクエスト Force.com ②アクセストークン Salesforce Mobile SDK
  • 9. Mobile SDKのインストールとプロジェクト作成 Xcodeのインストール githubのレポジトリをクローン(ダウンロード) $ git clone https://github.com/forcedotcom/SalesforceMobileSDK-iOS.gt インストールスクリプトを実行 $ cd SalesforceMobileSDK-iOS/ $ ./install.sh Native Force.com REST Appテンプレートからプロジェクトを作成 *Use Automatic Reference Countingのチェックをはずす
  • 10. Mobile SDK Nativeテンプレートの構造 AppDelegate Consumer IDとCallback URLを設定 RootViewController 認証後のアプリケーションのメイン画面を制御 *サンプルアプリではユーザ名を10個取得し、テーブルビューに表示 SFAuthorizingViewController 認証画面を制御 SFNativeRestAppDelegate UIApplicationDelegateプロトコルに従い、アプリケーション起動から認証までの挙動を 担当
  • 11. SFNativeRestAppDelegate didFinishLauchingWithOptions:(NSDictionary *)launchOptions setupAuthorizingViewControllerをキック setupAuthorizingViewController rootViewControllerにSFAuthorizingViewControllerのインスタンスをセットし、アク ティブに loggedIn newRootViewControllerをキックしrootViewControllerに RootViewController(アプリのコントローラ)をセットし、アクティブに *newRootViewControllerはAppDelegateで実装されている
  • 12. RootViewController viewDidLoad メニューバーのタイトルをセット Force.comからユーザー名を10個取得 SFRestRequest *request = [[SFRestAPI sharedInstance] requestForQuery:@"SELECT Name FROM User LIMIT 10"]; [[SFRestAPI sharedInstance] send:request delegate:self]; didLoadResponse:(id)jsonResponse レスポンスをself.datarowsにセット cellForRowAtIndexPath:(NSIndexPath *)indexPath テーブルのセルをデキューまたは生成し、ユーザー名をセット
  • 13. UIApplicationDelegate UIAlertViewDelegate UIViewController UITableViewController SFAuthCoodinatorDelegate Subclass SFAuthorizingViewController Protocol SFNativeRestAppDelegate Subclass Subclass AppDelegate RootViewController Import Import SFRestAPI SFRestRequest
  • 14. CRUD操作 レコード作成 NSString *objectType = @"Contact"; NSDictionary *fields = [@"{FirstName:Kazuki, LastName:Nakajima}" JSONValue]; SFRestRequest *request = [[SFRestAPI sharedInstance] requestForCreateWithObjectType:objectType fields:fields]; [[SFRestAPI sharedInstance] send:request delegate:self]; レコード削除 NSString *objectId = @"1234567890"; NSString *objectType = @"Contact"; SFRestRequest *request = [[SFRestAPI sharedInstance] requestForDeleteWithObjectType:objectType objectId:objectId]; [[SFRestAPI sharedInstance] send:request delegate:self];
  • 17. Force.comと連携するiOSハイブリッドアプリのアーキテクチャ データベース Apex API ①認証・認可 リソースサーバ 認証サーバ ③リクエスト Force.com ②アクセストークン Force.com Javascript REST Toolkit Salesforce Mobile SDK iOS SDK
  • 18. プロジェクト作成 Hybrid Force.com Appテンプレートからプロジェクトを作成 *Use Automatic Reference Countingのチェックをはずす wwwフォルダを右クリックして一旦削除する ポップアップではRemove Referencesをクリック プロジェクトを右クリックしてshow in finderを選択し、wwwフォルダをドラッグ& ドロップでプロジェクトに追加する *Copy items into destination group’s folder (if needed)を選択 *Create folder references for any added foldersを選択 wwwフォルダが青色であることを確認する
  • 19. Mobile SDK Hybridテンプレートの構造 bootconfig.js Consumer IDとCallback URL等の設定を記述 forcetk.js Force.com JavaScript REST Toolkit。RESTアクセスのラッパー index.html アプリケーションのメイン画面 inline.js サンプルアプリの処理 SalesforceOAuthPlugin.js PhoneGapのAPIを利用して認証処理を実装 phonegap-x.x.x.js PhoneGapのAPIを提供
  • 20. bootconfig.js debugMode = true | false; logToConsoleメソッドの出力がスクリーンに表示されるかどうか remoteAccessConsumerKey = xxx; コンシューマ をセット oauthRedirectURI = [xxx] コールバックURLをセット oauthScopes = ['xxx','xxx']; 発行されるトークンの権限 startData = new SFHybridApp.LocalAppStartData(); | new SFHybridApp.RemoteAppStartData("[VFページのパス]"); コンテンツがローカル管理の場合はLocalAppStartData()をセット コンテンツがVisualforce管理の場合はRemoteAppStartData()をセット autoRefreshOnForeground = true | false; OAuthセッションを自動リフレッシュするかどうか
  • 21. index.html jQuery(document).ready(function(){} devicereadyイベント発生時にonDeviceReady()をキックすることを登録 onDeviceReady(){} SalesforceOAuthPlugin.getAuthCredentials()をキック salesforceSessionRefreshイベント発生時にsalesforceSessionRefreshed()をキックする ことを登録 reLinkClickHandlers()をキック(サンプルアプリのクリックイベントを登録) salesforceSessionRefreshed(){} forcetk.Clientのインスタンスを生成し、認証で得られたトークンをセット
  • 22. PhongeGap.plist *ファイルの場所はプロジェクト名 > Supporting Files > PhoneGap.plist ExternalHosts JavaScriptやCSSのライブラリを外部サーバから読み込む場合はドメインを明記する必要がある
  • 23. Force.com JavaScript REST Toolkit インスタンス生成 var forcetkClient = new forcetk.Client(clientId, loginUrl, proxyUrl); トークンセット forcetkClient.setSessionToken(sessionId, apiVersion, instanceUrl); レコード作成 forcetkClient.create(objtype, fields, callback, error); レコード削除 forcetkClient.del(objtype, id, callback, error); SOQL発行 forcetkClient.query(soql, callback, error); Apex Rest発行 forcetk.Client.apexrest(path, callback, error, method, payload, retry);
  • 24. PhoneGapで提供される機能 加速度センサー 位置情報 カメラ プッシュ通知 コンパス 音楽データ 連絡先 マイク ストレージ 回線 カメラ呼び出しの例 $j(document).on('tap', '#page_create_survey #button_capture_business_card', function(){ navigator.camera.getPicture(onCameraSuccess, onCameraFail, { quality: 50, destinationType: Camera.DestinationType.DATA_URL }); }); 各APIについて詳しくはhttp://docs.phonegap.com/en/1.6.1/index.htmlを参照
  • 26.
  • 27. タイプ毎の配布 パターン①:Directory / ISVforce Application (旧AppExchange) • 組織はすでにある前提なので単にアプリを配布すればOK。 • リスティングはApp StoreとAppExchangeに。 • HTML5アプリであればログイン後にUserAgentによってリダイレクトするなど。 • ネイティブ、ハイブリッドはHOMEにインストール情報を掲載しておくなど。 パターン②:OEM Application • 最初はまず組織プロビジョンニングする必要あり。 • リスティングはApp StoreとAppExchangeに。 • HTML5アプリであればログイン後にUserAgentによってリダイレクトするなど。 • ネイティブ、ハイブリッドはHOMEにインストール情報を掲載しておくなど。 パターン③:Database.com • ユーザー数、データ量、トランザクション量で課金。 • パートナープログラムは今のところありません。(2012年4月現在) • 複数組織で構成することもできるし、単一組織で構成することもできる。 (ガバナ制限に注意)
  • 28. その他 • OAuth 2.0をマスターしよう。 http://wiki.developerforce.com/page/JP:Digging_Deeper_into_OAuth_2.0_at_Salesforce.com • username/passwordフローではLogin IPレンジに注意。 • Aloha認定を取得しよう。 • Sitesはトライアル環境毎に有効化申請が必要です。 • ベンダー側でおこなうサイト毎のカスタマイズはなくそう。 • HTML5、ハイブリッドでは 基本はVisualforceで完結しつつ、 パッチでの修正をおこなう • Web側の機能追加が頻発する場合はherokuを利用するなど。