SlideShare uma empresa Scribd logo
1 de 39
PhoneGapの始め方
AKABANA | Eiichi Arikawa




© 2012 AKABANA. All Rights Reserved.
Contents
       PhoneGapについて
            PhoneGap 2.0
       PhoneGapの始め方
            PhoneGap:Build
            iOS
            Android




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     2
                                      PhoneGap


© 2012 AKABANA. All Rights Reserved.
                                          3
PhoneGap
       スマートフォン向けハイブリッドアプリケーション
        制作のためのフレームワーク
            ハイブリッドアプリ
                ネイティブアプリ上のWebアプリケーション

                アプリケーションはHTML/CSS/Javascriptを使用

                プラットフォーム用のアプリストアでの配布可能

                1つのソースで多くのプラットフォームに対応可能




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     4
PhoneGap
       対応プラットフォームは、7
            iPhone / iPhone 3G
            iPhone 3GS and newer
            Android
            Blackberry OS 5.x
            Blackberry OS 6.0+
            WebOS
            Windows Phone 7
            Symbian
            Bada
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     5
PhoneGap
       ウェブアプリの弱点をクリアできる
            プラットフォームのアプリストアが使える
                App Store
                Google Play
            課金システムも利用できる

            デバイス依存機能が使える
                カメラ、センサー系、アドレス帳など




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     6
PhoneGap
       Apache Cordova
            Cordova は Nitobi が開発した PhoneGap としてスタート
             しました

            Nitobi は Adobe System Inc. に買収され、PhoneGap フ
             レームワークは、 Apache Software Foundation の下で、
             Apache Cordova と名前を変えてオープンソースになりま
             した

            HTML/CSS/JavaScript コンテンツをホストするための環境
             を提供する

            JavaScriptからデバイス依存機能を呼べる仕組みを提供
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     7
PhoneGap
       デバイスに共通する機能にアクセスするためのAPI
                                            Device
            Accelerometer
                                            Events
            Camera
                                            File
            Capture
                                            Geolocation
            Compass
                                            Media
            Connection
                                            Notification
            Contacts
                                            Storage

       プラットフォームのAPIの対応表
            http://phonegap.com/about/feature
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.                   8
PhoneGapの始め方
       Camera API
            navigator.camera.getPicture(onSuccess, onFail,
             { quality: 50,
                 destinationType:
             Camera.DestinationType.DATA_URL
              });

             function onSuccess(imageData) {
                 var image = document.getElementById('myImage');
                 image.src = "data:image/jpeg;base64," +
             imageData;
             }

             function onFail(message) {
                 alert('Failed because: ' + message);
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     9
PhoneGapの始め方
       AcceleratorAPI
            function onSuccess(acceleration) {
                 alert('Acceleration X: ' + acceleration.x + 'n' +
                       'Acceleration Y: ' + acceleration.y + 'n' +
                       'Acceleration Z: ' + acceleration.z + 'n' +
                       'Timestamp: '      + acceleration.timestamp + 'n');
             };

             function onError() {
                 alert('onError!');
             };

             var options = { frequency: 3000 };
             var watchID =
             navigator.accelerometer.watchAcceleration(onSuccess,
             onError, options);
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.      10
PhoneGap
       PhoneGap Plugin
            PhoneGapを拡張するための仕組み
            JavaScriptとネイティブコードで作成する
            公開されているプラグイン
                Twitter
                    https://github.com/brianantonelli/phonegap-plugin-twitter
                Facebook
                    https://github.com/davejohnson/phonegap-plugin-facebook-
                     connect/
                MapKit
                    https://github.com/phonegap/phonegap-plugins/tree/
                     master/iPhone/MapKitPlug
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.              11
PhoneGap Build
       PhoneGap 2.0
            Cordova WebViewをPhoneGapに統合

            Android/iOS/BlackBerry向けのコマンドラインツールの導
             入

            移行ガイドやプラグインなどの情報をまとめたドキュメン
             トの強化

            リモートウェブインスペクタツール「weinre」を採用

            プラットフォーム間で統一されたJavaScriptをサポートする
             ため「Cordova JS」を導入
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     12
PhoneGap
       Download
            http://phonegap.com/download
       Getting Started Guildres
            http://docs.phonegap.com/en/2.0.0/guide_getting-
             started_index.md.html
       API Reference
            http://docs.phonegap.com/en/2.0.0/index.html




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     13
                               PhoneGap:Build


© 2012 AKABANA. All Rights Reserved.
                                       14
PhoneGap:Build
       https://build.phonegap.com/
       HTML/CSS/JavaScriptなどをアップロードすると、
        各プラットフォーム向けバイナリへエクスポート




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     15
PhoneGap:Build
       Dreamweaver CS6 連携
            Adobe Dreamweaver CS6でモバイル向けテンプレートで
             サイト作成

            DreamweaverからPhoneGap::Buildを使って各種プラット
             フォーム向けバイナリを生成・ダウンロード可能

            参考記事 ADC

                http://www.adobe.com/jp/devnet/phonegap/
                 articles/phonegap_dwcs6_mobile_app.html



  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     16
                                      PhoneGap
                                       for iOS

© 2012 AKABANA. All Rights Reserved.
                                          17
PhoneGap for iOS
       事前準備
            インストール
                Xcode 4.3+
                Xcode Command Line Tools
            Apple iOS device (iPhone, iPad, iPod Touch)
            iOS 開発証明書

       ダウンロード
                PhoneGap 2.0
                    http://phonegap.com/download
                    以降、展開したフォルダを{phonegap}と表す
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.        18
PhoneGap for iOS
       {phonegap}/lib/ios/Cordova-2.0.0.dmgを
            Cordova-2.0.0.pkgをインストール

            binをローカルディスクにコピーする




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     19
PhoneGap for iOS
        Xcodeプロジェクト作成
            コマンドを使ってプロジェクトを作成

            create <project_folder_path> <bundle_id>
             <project_name>
                <project_folder_path>
                    プロジェクトの保存先

                <package_name>
                    プロジェクトのパッケージ名

                <project_name>
                    プロジェクト名
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     20
PhoneGap for iOS
        Xcodeプロジェクトを設定
            ユーザの書類の中にCordovaLib があることを確認

            CordovaLib/CordovaLib.xcodeprojをプロジェクトに
             Drag&Dropする
            CordovaLib.xcodeprojが設定されていない場合




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     21
PhoneGap for iOS
        Xcodeプロジェクトを設定
            TargetのBuild Phasesタブを開いてTarget Dependencies
             を開いてCordovaLibが設定されていることを確認

                設定されていない場合は、+ボタンから選択する




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     22
PhoneGap for iOS
        Xcodeプロジェクトを設定
            ProjectのBuild Phasesタブ
             を開いてLink Binary with
             LibrariesにlibCordova.aが
             設定されていることを確認

                設定されていない場合は、
                 +ボタンから選択




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     23
PhoneGap for iOS
       シミュレーターで起動
            ターゲットをiOS [version] Simulatorにする

            Runボタンをクリックするとシミュレータにアプリが転送
             されて起動




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     24
PhoneGap for iOS
       実機で起動
            plistファイルのBundleIdentifierとアプリIDを確認する
                Teamプロビジョニングを使う場合には変更不要

            ターゲットをデバイス名にする

                iOS Deviceは、デバイスの名前が表示される

            Runボタンをクリックするとデバイスにアプリが転送され
             て起動



  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     25
                                       PhoneGap
                                      for Android

© 2012 AKABANA. All Rights Reserved.
                                            26
PhoneGap for Android
       事前準備
            インストール
                Eclipse Classic 3.4 +
                Android SDK
                ADT Plugin
       ダウンロード
                PhoneGap 2.0
                    http://phonegap.com/download
                    以降、展開したフォルダを{phonegap}と表す


  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.        27
PhoneGap for Android
       Android プロジェクト作成




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     28
PhoneGap for Android
       Android プロジェクト作成




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     29
PhoneGap for Android
       Activityの選択




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     30
PhoneGap for Android
       Activityの作成




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     31
PhoneGap for Android
        Androidプロジェクトにフォルダ作成
             Phonegapのコンテンツをいれるフォルダ

             assets/www
             HTML/CSS/JavaScriptなどを
              おくことを想定している




  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     32
PhoneGap for Android
        PhoneGapアプリに必要なファイルをコピー
             cordova-2.0.0.js を assets/www に コピー
               {phonegap}/lib/android/cordova-2.0.0.js

             xml を res にコピー
               {phonegap}/xml

             cordova-2.0.0.jar を libsにコピーして
              ビルドパスに追加
               {phonegap}/lib/android/cordova-2.0.0.jar

  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     33
PhoneGap for Android
       Activityクラスを修正
            srcの中にある自動生成されたActivityクラスを開く

            import org.apache.cordova.*; を追加する

            継承クラスActivity を DroidGapに書き換える

       アプリケーションHTMLの読み込み
            onCreateメソッドのsetContentViewの代わりに下記を記
             述する

            super.loadUrl("file:///android_asset/www/
             index.html");
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     34
PhoneGap for Android
       AndroidManifest.xmlの修正
            <application.../>の上ぐらいに権限設定を記述する

            <supports-screens>
                解像度にアプリを対応させるかなどの設定

            <uses-permission>
                アプリが端末に要求する機能を許可するかどうかを設定

            <activity>
                android:configChangesを追加して、アクティビティを再起動せずに
                 処理を続けさせたい場合の情報を記述する

                https://sites.google.com/a/techdoctranslator.com/jp/android/
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.        35
PhoneGap for Android
       <supports-screens
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:resizeable="true"
            android:anyDensity="true" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission
        android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
        />
        <uses-permission
        android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission
        android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_CONTACTS" /
        >
        <uses-permission
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     36
PhoneGap for Android
       Hello World アプリ作成
            assets/wwwにindex.htmlを作成する

       <!DOCTYPE HTML>
        <html>
        <head>
        <title>Cordova</title>
        <script type="text/javascript" charset="utf-8"
        src="cordova-2.0.0.js"></script>
        </head>
        <body>
        <h1>Hello World</h1>
        </body>
        </html>
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     37
PhoneGap for Android
       エミュレータで実行
            プロジェクトを右クリックして[実行…]からAndroid
             Applicationする

            AVDエミュレータを選択

                AVDエミュレータがない場合は作成

       デバイスで実行
            USBで実機を接続

            プロジェクトを右クリックして[実行…]からAndroid
             Applicationを選択する
  © 2012 AKABANA. All Rights Reserved.

© 2012 AKABANA. All Rights Reserved.     38
© 2012 AKABANA. All Rights Reserved.

Mais conteúdo relacionado

Mais procurados

中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
NilOne Ltd.
 
iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論
Takakuni Furukawa
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
Yushi_Takagi
 

Mais procurados (19)

iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのことエンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
 
ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
 
Swiftアプリにプッシュ通知を組み込もう!
Swiftアプリにプッシュ通知を組み込もう!Swiftアプリにプッシュ通知を組み込もう!
Swiftアプリにプッシュ通知を組み込もう!
 
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
 
Swiftアプリにプッシュ通知を組み込もう!【事前準備編】
Swiftアプリにプッシュ通知を組み込もう!【事前準備編】Swiftアプリにプッシュ通知を組み込もう!【事前準備編】
Swiftアプリにプッシュ通知を組み込もう!【事前準備編】
 
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
デブサミ2015「実践!クロスプラットフォーム モバイルアプリ開発」
 
リワード広告におけるリジェクト問題の現状
リワード広告におけるリジェクト問題の現状リワード広告におけるリジェクト問題の現状
リワード広告におけるリジェクト問題の現状
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
 
iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論
 
iOSアプリケーションの継続的デリバリー
iOSアプリケーションの継続的デリバリーiOSアプリケーションの継続的デリバリー
iOSアプリケーションの継続的デリバリー
 
Swiftアプリにプッシュ通知を組み込もう!-【番外編】SDKのインポート方法-
Swiftアプリにプッシュ通知を組み込もう!-【番外編】SDKのインポート方法-Swiftアプリにプッシュ通知を組み込もう!-【番外編】SDKのインポート方法-
Swiftアプリにプッシュ通知を組み込もう!-【番外編】SDKのインポート方法-
 
iOSアプリケーションでロボットを制御してみよう
iOSアプリケーションでロボットを制御してみようiOSアプリケーションでロボットを制御してみよう
iOSアプリケーションでロボットを制御してみよう
 
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
JINS MEME DEVELOPER HANDS-ON (Monaca / Apache Cordova編)
 
Flexでサクッと作れ!Androidアプリ開発のススメ
Flexでサクッと作れ!Androidアプリ開発のススメFlexでサクッと作れ!Androidアプリ開発のススメ
Flexでサクッと作れ!Androidアプリ開発のススメ
 
devsami kansai 2012 #c2
devsami kansai 2012 #c2devsami kansai 2012 #c2
devsami kansai 2012 #c2
 

Semelhante a PhoneGapの始め方

ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
Daisuke Futatsumori
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
 
PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -
Katsumi Onishi
 
ICT ERA+ABC 2012東北講演
ICT ERA+ABC 2012東北講演ICT ERA+ABC 2012東北講演
ICT ERA+ABC 2012東北講演
Monaca
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
Developers Summit
 
事例で学ぶHTML5スマフォアプリ開発セミナー
事例で学ぶHTML5スマフォアプリ開発セミナー事例で学ぶHTML5スマフォアプリ開発セミナー
事例で学ぶHTML5スマフォアプリ開発セミナー
Monaca
 

Semelhante a PhoneGapの始め方 (20)

PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Monacaでつくるハイブリッドアプリ
MonacaでつくるハイブリッドアプリMonacaでつくるハイブリッドアプリ
Monacaでつくるハイブリッドアプリ
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
PhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OSPhoneGapでハイブリッド開発 for Firefox OS
PhoneGapでハイブリッド開発 for Firefox OS
 
デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方デバイス WebAPI設計の進め方
デバイス WebAPI設計の進め方
 
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
 
Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要Cordovaの特徴と開発手法概要
Cordovaの特徴と開発手法概要
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
PhoneGap勉強会 in 熊本
PhoneGap勉強会 in 熊本PhoneGap勉強会 in 熊本
PhoneGap勉強会 in 熊本
 
PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -
 
ICT ERA+ABC 2012東北講演
ICT ERA+ABC 2012東北講演ICT ERA+ABC 2012東北講演
ICT ERA+ABC 2012東北講演
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
 
Jqm20120804 publish
Jqm20120804 publishJqm20120804 publish
Jqm20120804 publish
 
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
 jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
 
事例で学ぶHTML5スマフォアプリ開発セミナー
事例で学ぶHTML5スマフォアプリ開発セミナー事例で学ぶHTML5スマフォアプリ開発セミナー
事例で学ぶHTML5スマフォアプリ開発セミナー
 
Mobile backend starterを使ってスマホアプリのバックエンドを構築する
Mobile backend starterを使ってスマホアプリのバックエンドを構築するMobile backend starterを使ってスマホアプリのバックエンドを構築する
Mobile backend starterを使ってスマホアプリのバックエンドを構築する
 

Último

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

PhoneGapの始め方

  • 1. PhoneGapの始め方 AKABANA | Eiichi Arikawa © 2012 AKABANA. All Rights Reserved.
  • 2. Contents  PhoneGapについて  PhoneGap 2.0  PhoneGapの始め方  PhoneGap:Build  iOS  Android © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 2
  • 3. PhoneGap © 2012 AKABANA. All Rights Reserved. 3
  • 4. PhoneGap  スマートフォン向けハイブリッドアプリケーション 制作のためのフレームワーク  ハイブリッドアプリ  ネイティブアプリ上のWebアプリケーション  アプリケーションはHTML/CSS/Javascriptを使用  プラットフォーム用のアプリストアでの配布可能  1つのソースで多くのプラットフォームに対応可能 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 4
  • 5. PhoneGap  対応プラットフォームは、7  iPhone / iPhone 3G  iPhone 3GS and newer  Android  Blackberry OS 5.x  Blackberry OS 6.0+  WebOS  Windows Phone 7  Symbian  Bada © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 5
  • 6. PhoneGap  ウェブアプリの弱点をクリアできる  プラットフォームのアプリストアが使える  App Store  Google Play  課金システムも利用できる  デバイス依存機能が使える  カメラ、センサー系、アドレス帳など © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 6
  • 7. PhoneGap  Apache Cordova  Cordova は Nitobi が開発した PhoneGap としてスタート しました  Nitobi は Adobe System Inc. に買収され、PhoneGap フ レームワークは、 Apache Software Foundation の下で、 Apache Cordova と名前を変えてオープンソースになりま した  HTML/CSS/JavaScript コンテンツをホストするための環境 を提供する  JavaScriptからデバイス依存機能を呼べる仕組みを提供 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 7
  • 8. PhoneGap  デバイスに共通する機能にアクセスするためのAPI  Device  Accelerometer  Events  Camera  File  Capture  Geolocation  Compass  Media  Connection  Notification  Contacts  Storage  プラットフォームのAPIの対応表  http://phonegap.com/about/feature © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 8
  • 9. PhoneGapの始め方  Camera API  navigator.camera.getPicture(onSuccess, onFail, { quality: 50,     destinationType: Camera.DestinationType.DATA_URL  }); function onSuccess(imageData) {     var image = document.getElementById('myImage');     image.src = "data:image/jpeg;base64," + imageData; } function onFail(message) {     alert('Failed because: ' + message); © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 9
  • 10. PhoneGapの始め方  AcceleratorAPI  function onSuccess(acceleration) {     alert('Acceleration X: ' + acceleration.x + 'n' +           'Acceleration Y: ' + acceleration.y + 'n' +           'Acceleration Z: ' + acceleration.z + 'n' +           'Timestamp: '      + acceleration.timestamp + 'n'); }; function onError() {     alert('onError!'); }; var options = { frequency: 3000 }; var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 10
  • 11. PhoneGap  PhoneGap Plugin  PhoneGapを拡張するための仕組み  JavaScriptとネイティブコードで作成する  公開されているプラグイン  Twitter  https://github.com/brianantonelli/phonegap-plugin-twitter  Facebook  https://github.com/davejohnson/phonegap-plugin-facebook- connect/  MapKit  https://github.com/phonegap/phonegap-plugins/tree/ master/iPhone/MapKitPlug © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 11
  • 12. PhoneGap Build  PhoneGap 2.0  Cordova WebViewをPhoneGapに統合  Android/iOS/BlackBerry向けのコマンドラインツールの導 入  移行ガイドやプラグインなどの情報をまとめたドキュメン トの強化  リモートウェブインスペクタツール「weinre」を採用  プラットフォーム間で統一されたJavaScriptをサポートする ため「Cordova JS」を導入 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 12
  • 13. PhoneGap  Download  http://phonegap.com/download  Getting Started Guildres  http://docs.phonegap.com/en/2.0.0/guide_getting- started_index.md.html  API Reference  http://docs.phonegap.com/en/2.0.0/index.html © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 13
  • 14. PhoneGap:Build © 2012 AKABANA. All Rights Reserved. 14
  • 15. PhoneGap:Build  https://build.phonegap.com/  HTML/CSS/JavaScriptなどをアップロードすると、 各プラットフォーム向けバイナリへエクスポート © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 15
  • 16. PhoneGap:Build  Dreamweaver CS6 連携  Adobe Dreamweaver CS6でモバイル向けテンプレートで サイト作成  DreamweaverからPhoneGap::Buildを使って各種プラット フォーム向けバイナリを生成・ダウンロード可能  参考記事 ADC  http://www.adobe.com/jp/devnet/phonegap/ articles/phonegap_dwcs6_mobile_app.html © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 16
  • 17. PhoneGap  for iOS © 2012 AKABANA. All Rights Reserved. 17
  • 18. PhoneGap for iOS  事前準備  インストール  Xcode 4.3+  Xcode Command Line Tools  Apple iOS device (iPhone, iPad, iPod Touch)  iOS 開発証明書  ダウンロード  PhoneGap 2.0  http://phonegap.com/download  以降、展開したフォルダを{phonegap}と表す © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 18
  • 19. PhoneGap for iOS  {phonegap}/lib/ios/Cordova-2.0.0.dmgを  Cordova-2.0.0.pkgをインストール  binをローカルディスクにコピーする © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 19
  • 20. PhoneGap for iOS   Xcodeプロジェクト作成  コマンドを使ってプロジェクトを作成  create <project_folder_path> <bundle_id> <project_name>  <project_folder_path>  プロジェクトの保存先  <package_name>  プロジェクトのパッケージ名  <project_name>  プロジェクト名 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 20
  • 21. PhoneGap for iOS   Xcodeプロジェクトを設定  ユーザの書類の中にCordovaLib があることを確認  CordovaLib/CordovaLib.xcodeprojをプロジェクトに Drag&Dropする  CordovaLib.xcodeprojが設定されていない場合 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 21
  • 22. PhoneGap for iOS   Xcodeプロジェクトを設定  TargetのBuild Phasesタブを開いてTarget Dependencies を開いてCordovaLibが設定されていることを確認  設定されていない場合は、+ボタンから選択する © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 22
  • 23. PhoneGap for iOS   Xcodeプロジェクトを設定  ProjectのBuild Phasesタブ を開いてLink Binary with LibrariesにlibCordova.aが 設定されていることを確認  設定されていない場合は、 +ボタンから選択 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 23
  • 24. PhoneGap for iOS  シミュレーターで起動  ターゲットをiOS [version] Simulatorにする  Runボタンをクリックするとシミュレータにアプリが転送 されて起動 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 24
  • 25. PhoneGap for iOS  実機で起動  plistファイルのBundleIdentifierとアプリIDを確認する  Teamプロビジョニングを使う場合には変更不要  ターゲットをデバイス名にする  iOS Deviceは、デバイスの名前が表示される  Runボタンをクリックするとデバイスにアプリが転送され て起動 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 25
  • 26. PhoneGap  for Android © 2012 AKABANA. All Rights Reserved. 26
  • 27. PhoneGap for Android  事前準備  インストール  Eclipse Classic 3.4 +  Android SDK  ADT Plugin  ダウンロード  PhoneGap 2.0  http://phonegap.com/download  以降、展開したフォルダを{phonegap}と表す © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 27
  • 28. PhoneGap for Android  Android プロジェクト作成 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 28
  • 29. PhoneGap for Android  Android プロジェクト作成 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 29
  • 30. PhoneGap for Android  Activityの選択 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 30
  • 31. PhoneGap for Android  Activityの作成 © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 31
  • 32. PhoneGap for Android  Androidプロジェクトにフォルダ作成  Phonegapのコンテンツをいれるフォルダ  assets/www  HTML/CSS/JavaScriptなどを おくことを想定している © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 32
  • 33. PhoneGap for Android  PhoneGapアプリに必要なファイルをコピー  cordova-2.0.0.js を assets/www に コピー  {phonegap}/lib/android/cordova-2.0.0.js  xml を res にコピー  {phonegap}/xml  cordova-2.0.0.jar を libsにコピーして ビルドパスに追加  {phonegap}/lib/android/cordova-2.0.0.jar © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 33
  • 34. PhoneGap for Android  Activityクラスを修正  srcの中にある自動生成されたActivityクラスを開く  import org.apache.cordova.*; を追加する  継承クラスActivity を DroidGapに書き換える  アプリケーションHTMLの読み込み  onCreateメソッドのsetContentViewの代わりに下記を記 述する  super.loadUrl("file:///android_asset/www/ index.html"); © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 34
  • 35. PhoneGap for Android  AndroidManifest.xmlの修正  <application.../>の上ぐらいに権限設定を記述する  <supports-screens>  解像度にアプリを対応させるかなどの設定  <uses-permission>  アプリが端末に要求する機能を許可するかどうかを設定  <activity>  android:configChangesを追加して、アクティビティを再起動せずに 処理を続けさせたい場合の情報を記述する  https://sites.google.com/a/techdoctranslator.com/jp/android/ © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 35
  • 36. PhoneGap for Android  <supports-screens     android:largeScreens="true"     android:normalScreens="true"     android:smallScreens="true"     android:resizeable="true"     android:anyDensity="true" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" / > <uses-permission © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 36
  • 37. PhoneGap for Android  Hello World アプリ作成  assets/wwwにindex.htmlを作成する  <!DOCTYPE HTML> <html> <head> <title>Cordova</title> <script type="text/javascript" charset="utf-8" src="cordova-2.0.0.js"></script> </head> <body> <h1>Hello World</h1> </body> </html> © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 37
  • 38. PhoneGap for Android  エミュレータで実行  プロジェクトを右クリックして[実行…]からAndroid Applicationする  AVDエミュレータを選択  AVDエミュレータがない場合は作成  デバイスで実行  USBで実機を接続  プロジェクトを右クリックして[実行…]からAndroid Applicationを選択する © 2012 AKABANA. All Rights Reserved. © 2012 AKABANA. All Rights Reserved. 38
  • 39. © 2012 AKABANA. All Rights Reserved.

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n