SlideShare una empresa de Scribd logo
1 de 22
ネイティブ機能を利用する
   We b アプリの実例
 ~ Pho ne G a p × Ra ils ~




             201 2/04/1 0
       ドリコム ソーシャルラーニング事業
      ディレクター兼プログラマ 二ッ森 大介

                      © Drecom Co.,Ltd. All rights Reserved
自己紹介
二ッ森 大介(ふたつもり だいすけ)

2007 年 4 月に新卒として入社

モバイル SN S 開発したり

きせかえビルダー開発したりして


バイナリの海を漂ったりもしつつ


                     © Drecom Co.,Ltd. All rights Reserved
自己紹介
2011 年 4 月より、ソーシャルラーニング事業の

ディレクター
兼
プロジェクトマネージャー〜タスク管理〜
兼
プログラマ

自分で考えて自分で作るを体現
最初の申請まではほぼ 1 人。




                        © Drecom Co.,Ltd. All rights Reserved
えいたま
ソーシャルラーニングアプリ第1弾
『聴いて育てる英会話 えいたま』
 英会話リスニング学習 × 育成ゲーム
 AppStore ランキング
  教育カテゴリ 無料 1 位(広告なし)
 iOS 版のみ
 10 万ダウンロード突破
smacolo (スマコロ)
 ソーシャルラーニングプラットフォーム
 一緒に学習する友達を作ったり、
 メッセージをつぶやいたりしながら、
 学ぶ楽しみを共有できる

                        © Drecom Co.,Ltd. All rights Reserved
えいたまの企画の話
大変ありがたいことに好調でして

企画寄りの話に興味があります、という

声もいただくのですが、、、

技術勉強会なので企画の話は懇親会で。

そんなわけでえいたまで使っている技術の紹
介。
                  © Drecom Co.,Ltd. All rights Reserved
実例紹介:えいたまの構成
PhoneGap×Rails




 ネイティブアプリ
     using    通信・同期     Rails
   PhoneGap




                      © Drecom Co.,Ltd. All rights Reserved
PhoneGap ?
 概要
  http://phonegap.com/
  WebView 機能を拡張して
  Web アプリをネイティブ化する framework


 iOS/Android/Windows
 Phone/BlackBerry etc.. に対応

 Adobe が買収
  Apache Cordova
    今のところだいたい同じ

                              © Drecom Co.,Ltd. All rights Reserved
PhoneGap×Rails の基本形
Web アプリ Wrapper としての PhoneGap
 フルスクリーンの WebView
 HTML レンダリングを Rails がすべて行いそれを表
示
              リクエスト
 ネイティブアプリ
                      WEB/AP サーバ
     using
                         (Rails)
   PhoneGap    HTML




                        © Drecom Co.,Ltd. All rights Reserved
PhoneGap×Rails の基本形
、、、とはいえそのままだと

Apple に Reject されます。
「それ Safari で見たらいいと思うの」

ユーザメリットも特にない。
「ブックマークでいいよね」

ネイティブ拡張でユーザに何が提供できるのか



                         © Drecom Co.,Ltd. All rights Reserved
実例紹介:えいたまの構成 詳細版


   PhoneGap (標準ライブラリ)

 ローカル              デバイス
          音声再生
 ファイル              情報取得



         拡張プラグイン


          課金処理
                            同期・通信                    Rails


   ネイティブ ( 自作プラグイン )

  ローカル    追加データ
                   スマコロ連携
 データ管理   ダウンロード




                                    © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:標準ライブラリ
(1/2)
  標準ライブラリ
 ローカルファイル
 デバイス情報の取得 Device
 音声・動画再生 Media
 ファイル管理 File
 プッシュ通知・ローカル通知 Notification
 etc..




                         © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:標準ライブラリ
(2/2)
ローカルファイルを使う=通信しない WEB アプ
リ
  サーバとの通信ができない状態でも
  なんらかの表示ができる
  がんばれば通信なしで普通に遊んでもらうこ
  とも
   えいたまはがんばりました




                  © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:拡張プラグイン
拡張プラグイン
 課金処理 InAppPurchaseManager
 バーコードスキャン BarcodeScanner
 etc..

 オススメ(というか公式? phonegap plugis でぐぐ
 る)
  https://github.com/phonegap/phonegap-plugins
  たくさんあるので自作する前にまず探そう
  OS 毎に大きく仕様が異なもの
  標準ライブラリに取り込まれる前のもの


                                      © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:自作プラグイン
(1/3)
  自作プラグイン
 JS から呼び出して callback で値を戻せる
 WebView も当然ながら View の 1 種なので
 別の View を上に表示するとかできる
 ネイティブのボタンを設置して、 JS を叩くことも可
 能
 とりあえず HTML ベースで作って
 重要なポイントをネイティブ拡張なんてこともできる




                      © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:自作プラグイン
(2/3)
  えいたまでは、、、
 学習データのローカル管理
 追加データのダウンロード管理
  複数ファイルの一括 DL と進捗プログレスバー表示
  そもそもファイル DL の仕組みがなかったので自作
  プラグイン公開検討してたけど公式が対応してた




                    © Drecom Co.,Ltd. All rights Reserved
ネイティブ機能を使うよ:自作プラグイン
(3/3)
スマコロとの連携
 ソーシャルラーニングプラットフォーム=
 Rails アプリ
 中央管理用の Controller を root に追加
 PhoneGap が持っている WebView と
 スマコロ用 WebView を適宜切り替える
 普通の P ho ne G a p   えいたま版
     ro o t                  ro o t
    PhoneGap                  Root
    WebView                 Controller




                 PhoneGap                    スマコロ
                 WebView                     WebView



                                  © Drecom Co.,Ltd. All rights Reserved
PhoneGap メリット:えいたま経験談
対 Web アプリ
  AppStore に出せる
  オフラインでも動くようにできる
    どれくらい動くかは設計と努力による
    やり過ぎは禁物


対ネイティブアプリ
  Web 技術が活かせる
    取っ付き易い
    開発工数がかからない(特に Rails なら)
  複数 OS 対応が楽
                        © Drecom Co.,Ltd. All rights Reserved
PhoneGap デメリット:えいたま経験談
対 Web アプリ
  AppStore に申請しないと更新できない
    ネイティブ部分・ローカルファイル利用部分
  ネイティブ拡張し過ぎると Web アプリ版は作りづら
  くなる
    Web で体験版とか


対ネイティブアプリ
  動きがもっさりしている
   HTML の限界にどこまで挑戦するか
   どこまでネイティブ拡張するか

                        © Drecom Co.,Ltd. All rights Reserved
ネイティブアプリ vs Web アプリ
 ひとつの着地点としての PhoneGap
  それぞれのよさを活かす中間点


 下手な構成にすると
 デメリットの集合体になりかねない諸刃の
 剣
  とはいえ、初心者にもオススメします
  やってみるのは簡単、基本形から始めよう




                      © Drecom Co.,Ltd. All rights Reserved
もう一度ゼロからえいたまを作るなら…
1st phase
  基本 Web アプリ+ PhoneGap
  最低限のネイティブ,ローカルファイル
  PDCA サイクルを早くして改善に努める


2nd phase
  コア部分のネイティブ化によるレスポンス改善


3rd phase
  ほぼ全ての部分をネイティブ化・ローカル化


                     © Drecom Co.,Ltd. All rights Reserved
まとめ
PhoneGap いい子だよ
 Web アプリのよさとネイティブアプリのよさを活か
 した
 アプリ開発ができる
 オフライン性と更新性のバランス大事
 基本形から始めて徐々にネイティブ化・ローカル化


えいたまがんばります
 英語・英会話の勉強に是非どうぞ




                    © Drecom Co.,Ltd. All rights Reserved
おわり




     ありがとうございました
  ※ ドリコムよろしくお願いします




               © Drecom Co.,Ltd. All rights Reserved

Más contenido relacionado

La actualidad más candente

TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
Shinichiro Yoshida
 

La actualidad más candente (13)

⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発
 
if-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェアif-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェア
 
SORACOM Discovery 2019 B2 カメラデバイスを使ったIoTシステム構築の実践
SORACOM Discovery 2019 B2 カメラデバイスを使ったIoTシステム構築の実践SORACOM Discovery 2019 B2 カメラデバイスを使ったIoTシステム構築の実践
SORACOM Discovery 2019 B2 カメラデバイスを使ったIoTシステム構築の実践
 
Startup on Heroku Demo Day - Dozens
Startup on Heroku Demo Day - DozensStartup on Heroku Demo Day - Dozens
Startup on Heroku Demo Day - Dozens
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
 
Eguchi web techstudy_01
Eguchi web techstudy_01Eguchi web techstudy_01
Eguchi web techstudy_01
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
OSC2011 Tokyo/Spring 『Red5とFlexで「簡易電子会議室システム」を作ってみよう!』
OSC2011 Tokyo/Spring 『Red5とFlexで「簡易電子会議室システム」を作ってみよう!』OSC2011 Tokyo/Spring 『Red5とFlexで「簡易電子会議室システム」を作ってみよう!』
OSC2011 Tokyo/Spring 『Red5とFlexで「簡易電子会議室システム」を作ってみよう!』
 
20131026 i beaconワークショップ
20131026 i beaconワークショップ20131026 i beaconワークショップ
20131026 i beaconワークショップ
 
Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介
Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介
Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
携帯Webアプリケーション開発の基本とフレームワーク「mobylet」の紹介
携帯Webアプリケーション開発の基本とフレームワーク「mobylet」の紹介携帯Webアプリケーション開発の基本とフレームワーク「mobylet」の紹介
携帯Webアプリケーション開発の基本とフレームワーク「mobylet」の紹介
 

Destacado

Destacado (11)

エフスタ!! 20140517 html5でネイティブアプリ
エフスタ!! 20140517 html5でネイティブアプリエフスタ!! 20140517 html5でネイティブアプリ
エフスタ!! 20140517 html5でネイティブアプリ
 
【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!
【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!
【Monaca×mobile backend】 プッシュ通知をカンタン実装! スピード感ある開発をしよう!
 
enterprise agile lean modeling
enterprise agile lean modelingenterprise agile lean modeling
enterprise agile lean modeling
 
Android概要資料
Android概要資料Android概要資料
Android概要資料
 
Androidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったことAndroidアプリで日商100万円達成した時にやったこと
Androidアプリで日商100万円達成した時にやったこと
 
モデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だモデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だ
 
視聴者に優しいプレゼン資料の作り方
視聴者に優しいプレゼン資料の作り方視聴者に優しいプレゼン資料の作り方
視聴者に優しいプレゼン資料の作り方
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
【Monaca×mobile backend】プッシュ通知をカンタン実装!スピード感ある開発をしよう!-準備編(iOS)-
【Monaca×mobile backend】プッシュ通知をカンタン実装!スピード感ある開発をしよう!-準備編(iOS)-【Monaca×mobile backend】プッシュ通知をカンタン実装!スピード感ある開発をしよう!-準備編(iOS)-
【Monaca×mobile backend】プッシュ通知をカンタン実装!スピード感ある開発をしよう!-準備編(iOS)-
 
見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版見やすいプレゼン資料の作り方 - リニューアル増量版
見やすいプレゼン資料の作り方 - リニューアル増量版
 

Similar a ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~

2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
dynamis
 
iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論
Takakuni Furukawa
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
 

Similar a ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~ (20)

PhoneGapの始め方
PhoneGapの始め方PhoneGapの始め方
PhoneGapの始め方
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
Herokuとrails
HerokuとrailsHerokuとrails
Herokuとrails
 
DroidKaigi_devicefarm
DroidKaigi_devicefarmDroidKaigi_devicefarm
DroidKaigi_devicefarm
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論iPhone、Android両対応アプリ開発講座 概論
iPhone、Android両対応アプリ開発講座 概論
 
いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門
 
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
ハイブリッドアプリについて-PhoneGapアプリ制作の入り口-
 
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
ハイブリッドアプリ開発最前線から見たHtml5の理想と現実
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
20110824 android apps_endo
20110824 android apps_endo20110824 android apps_endo
20110824 android apps_endo
 
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発【16-D-4】3分ではじめるスマホアプリのビジュアル開発
【16-D-4】3分ではじめるスマホアプリのビジュアル開発
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発PhoneGapとハイブリッド開発
PhoneGapとハイブリッド開発
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 

ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~