SlideShare a Scribd company logo
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.

More Related Content

PDF
Java/Androidセキュアコーディング
Masaki Kubo
 
PDF
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
feedtailor
 
PDF
CodePushとReact Nativeで緊急OTAリリース!了解!
Masayuki Iwai
 
PDF
エンタープライズにおける iOSアプリ開発・導入のいろは
feedtailor
 
PPTX
企画者が押さえておきたいHtml5アプリ開発の要点
Monaca
 
PPTX
いまさら聞けない!HTML5超入門
Monaca
 
PDF
フィードテイラー紹介(2014.11.15版)
feedtailor
 
PPTX
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Shuhei Kawasaki
 
Java/Androidセキュアコーディング
Masaki Kubo
 
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
feedtailor
 
CodePushとReact Nativeで緊急OTAリリース!了解!
Masayuki Iwai
 
エンタープライズにおける iOSアプリ開発・導入のいろは
feedtailor
 
企画者が押さえておきたいHtml5アプリ開発の要点
Monaca
 
いまさら聞けない!HTML5超入門
Monaca
 
フィードテイラー紹介(2014.11.15版)
feedtailor
 
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Shuhei Kawasaki
 

What's hot (19)

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

Similar to PhoneGapの始め方 (20)

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

Recently uploaded (10)

PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 

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.

Editor's Notes