読者です 読者をやめる 読者になる 読者になる

@thorikiriのてょりっき

@thorikiriがWebとかAndroidとかの技術ネタや本を読んだブログです

第4回 PhoneGap UserGroup勉強会 #PhoneGapUG に行って来ました

event phonegap

山手線が止まってたので、ちょっと遅れ気味に到着。以下メモってたことなどを。

PhoneGapBuildの話

  • ライセンスについて
  • 無料版
    • Privateなアプリ1つと、オープンソースのプロジェクトがいくつでも作れる
    • 基本的にはフル機能が使える。
  • プロジェクトを作る
    • デバッグオプションなどを選べる
    • RedyToGoボタンを押せば良い
    • それぞれのプラットフォームごとの状態が見れる
    • 日本ではあんまり見られないプラットフォームのものもあります
    • それぞれのプラットフォームの実行ファイルを意識する必要はない
    • HTMLファイルとかをアップロードするだけでOK
    • そのままだとiOSでは、エラーになるけど、プロビジョニングファイルなどを設定すればOK
    • QRコードからアプリをダウンロードしてインストールする
  • UpdateCodeから、新しいバージョンのアプリを作成
    • Testerや開発者をプロジェクトに追加する事が出来ます
    • 設定画面では、デバッグとハイドレーションの設定が出来ます
    • PhoneGapBuildはバージョン管理機能等はないので、削除ボタンを押すとアプリが削除される
    • Githubとかであれば連携できるので、使いやすい
  • OpenSourceだと、GitHubリポジトリから連携することが可能
  • 毎回Zip作るのはめんどうなので、EdgeCode(Bracelets)を使うと、便利
    • EdgeCodeであれば、PhoneGapBuildと連携出来るので便利
    • 連携のエクステンションを入れると、連携アイコンが出来る
    • 連携アイコンを押して、IDパスを入力すると、連携状態を見ることが出来る
    • Create New PhonegapProjから、設定ファイルなどを作る
  • デバッグとハイドレーション
    • デバッグ
    • ハイドレーション
      • Zipファイルではなくて、ソースコードを変更して保存して、Send PhoneGap Buildを選択すると、再ビルドが行われる
      • ハイドレーションでは、もう一度インストールしなくても、上書きすることが出来る
      • アプリを再起動すると最新版のコードに書き換わっている
      • 新しいバージョンが作られていたら、更新情報を取得するようなコードが自動的に追加される
      • アプリ側でアップデートを押すと、最新版を取得するようになる
      • アプリの削除&インストールは必要なくなる
      • 製品版では、OFFにするが、開発中はONにしておくと良い
  • お値段
    • CreativeCloudの一部として使えます
    • CreativeCloudはAdobe製品全般が月々5000円くらい
    • PhoneGap Buildだけであれば月々1000円
    • 無料で使える1つのプライベートアプリを使い回せば無料で使うことが出来る

PhoneGap 最新情報

  • 2.3 と 2.5の情報
  • 2.3
    • WindowsPhone8対応
    • ダウンロードすると、Windows8とWindowsPhone8が入っている
    • 使い方は、PhoneGapのサイトのGettingStartを見るとわかる
    • InAppBrowser、アプリの中でブラウザを開くもので結構便利
      • window.open()のイベントが取れるようにもなっていて、ハンドリングが出来るようになりました
    • iOS5.X以降をサポート
      • iOS4.Xはサポートしない
      • iOS4.Xをサポートするアプリの場合は、2.2を使う
    • cordva.plistをconfig.xmlを設定出来る
    • ホワイトリストはPhoneGapの設定はアプリのメインWebViewのみ適応
    • デバイスAPIの仕様変更、でプラットフォーム毎の条件分岐方法が変わる
    • LocalNortificationイベントをプラグインが受け取ることが出来るようになった
  • 2.4
  • 2.5
    • プラグインの新機能
    • config.xmlのルートがwidgetから、cordvaに変更
    • NSURLCacheをつかうようになったので、キャッシュを参照するようになって、パフォーマンスが向上
      • 特に、実装上の注意点はありません
    • NativeURLが使えるようになった
      • assets-library:// でカメラロール等にアクセス可能
    • PhoneGap Wiki はじめに読んでおくように
    • Getting Startガイドは読んでおくように
    • プロジェクトを作成するときは、コマンドラインを叩くことになっています
    • Wikiには、デバッグの仕方や、アイコンサイズ、スプラッシュスクリーンなどが書いてあるので、読んでから開発に望むのが良いでしょう
  • Workflow
    • EdgeCodeで編集すると色々捗る
      • ライブプレビューを選択すると、Chromeが起動
      • ライブコーディングが出来る
      • EdgeCodeで変更して保存すると、画面がリロードされる
      • jQueryMobileを使ったりするのもすぐに反映されてテストしやすい
      • JavaScriptも、consoleが使えるし、リソース(LocalStorage等)の中身も見れる
  • PhoneGapエミュレータ
    • PhoneGap Emulation powered by Ripple
    • Chromeのエクステンション
    • HTMLファイルを開いて、右クリックして、エミュレータをenabledにする
    • デバイスのサイズとか、プラットフォームとかを選択する
    • イベントを発行したり、バックボタンを押したり、Geolocationを使ったり、ネットワーキングなどが可能
    • ビルドしなくても、エミュレータで色々と出来るので非常に便利です
      • 残念ながら、EdgeCodeと同期しないので、不便です
  • jQueryMobileが1.3になった
    • codiqaを使えば本当に簡単にモックアップが作れる
    • テーマはテーマローラーを使えば簡単に作れる

HTML5でゲーム

  • HTML5でゲームを作る上での問題点
    • 音楽、複数の音を同時に流すのが難しい
    • Streamingだと、時間がかかってすぐに再生出来ない
    • 最新のブラウザでも、複数の音楽を同時に流せない
    • アセットとしての、画像をどうやって画面上で動かすかも問題になります
    • 仮に、リフレッシュすると、真っ白になってしまう問題もあります
    • リモートで通信する場合には、ユーザにはフィードバックしなければならない
    • オーバーレイも可能であるが、パフォーマンス的に厳しくなってしまう
    • データの解析も結構JavaScriptだけでは限界が来てしまう
    • ネイティブでしかないAPIJavaScriptでは出来ない
  • こう考えると、HTML5は良くなくて、ネイティブが良いんじゃないか?とか思う
  • Audio -> Media API
  • Asset Management -> FileAPI、Storege API
  • スプラッシュスクリーン
  • ゲームセンター(iOS
    • 結構いいところまでいくけれども、まだまだ足りない。
  • PhoneGap プラグイン
  • いくつかのプラグインについて
    • AssetManager
      • シンプルなアセットマネージメント(簡単に使えるように設計されている)
      • サーバにあるファイルを同期するときに良いようにある
      • サーバ側にもアセットのマップがあって、クライアント側にもアセットのマップがある場合、自動的に更新されるようになっている
      • ファイルの場所がわかるので、絶対パスではなく、相対パスで扱うことが出来る
      • Wizcorp · GitHub
    • ViewManager
      • canvasなどのコントロールが出来る。
      • view同士でメッセージングをすことが出来る。
      • createで名前をつけて、名前で参照することが出来るようになる。
      • 内部では、別のSoftwareを使っていて、CanvasAPIと同じだが、ネイティブの機能を使っている
      • loadで、createで作った名前で参照することが出来る
  • いずれ、プラグインを書くことになるかと思います
    • だいたいの機能はPhoneGapが出している
    • 簡単にプラグインは作れるので、あんまり心配しないでください
    • 基本的にPhoneGapはオープンソースなので、誰かが作っている可能性があるので、まずは探してみることをおすすめします