なれる!FE 
HTML5minutes! 〜triton-js〜 
© IMJ Corporation. All Rights Reserved. 
IMJ Corporation. Misaki Shibata 
2014.11.25
© IMJ Corporation. All Rights Reserved. 
エンジニア 
柴田美咲Misaki Shibata
これは好きな本の一つ「なれる!SE」 
IT業界を題材としたライトノベルです。 
© IMJ Corporation. All Rights Reserved.
こんな事やってます。 
・スマホアプリ開発(主にAndroid、時々iOS) 
・サーバーサイドプログラム(Java、PHP) 
・サーバー/インフラ 
etc… 
最近になって、フロントエンドに携わるようになっ 
てきました。 
まだまだ勉強中です。 
© IMJ Corporation. All Rights Reserved.
今回は、スマホ関連の話をしたいと思います。 
© IMJ Corporation. All Rights Reserved.
WebViewベースのアプリ開発をやっています 
か? 
© IMJ Corporation. All Rights Reserved.
WebViewベースのアプリはハイブリットアプリと 
呼ばれています。 
JSを通しアプリを連携させ、相互にプログラムを 
実行させることが可能です。 
© IMJ Corporation. All Rights Reserved.
Androidの実現方法としては 
・addJavascriptInterface方式 
・カスタムURLスキーム方式 
・JsAlert方式 
・ローカルHTTPサーバ方式 
などが既に用意されており、容易に実現するこ 
とができます。 
© IMJ Corporation. All Rights Reserved.
しかし、セキュリティの問題やiOSでも使えること 
などを考慮すると、 
必然的に“カスタムURLスキーム方式”を選択 
することになるかと思います。 
JSからの実行例 
// ネイティブ側に通知させる処理 
locathon.href = 'apicall://' + action; 
© IMJ Corporation. All Rights Reserved.
WebViewについて、最近トピックスを紹介しま 
す。 
© IMJ Corporation. All Rights Reserved.
Android4.4 からWebViewが 
Chromium ベースのものに変わりました。 
https://developer.chrome.com/multidevic 
e/webview/overview 
© IMJ Corporation. All Rights Reserved.
iOS8から「Nitro JavaScript」が使えるようにな 
りました。 
© IMJ Corporation. All Rights Reserved. 
http://gori.me/ios/ios8/53263
WebViewの表示速度改善に関する内容です 
が、このあたりから、他のコンポーネントより、注 
目されていることが伺えます。 
© IMJ Corporation. All Rights Reserved.
せっかくなので、このWebViewをどんどん使っ 
てハイブリッドアプリを作っていきましょう! 
© IMJ Corporation. All Rights Reserved.
© IMJ Corporation. All Rights Reserved. 
最近のAndroid事情
機種名Nexus 6 iPhone 6 Plus 
OS Android 5.0 Lollipop iOS 8 
ディスプ 
レイ 
© IMJ Corporation. All Rights Reserved. 
5.96インチ(1440×2560、 
493ppi) 
5.5インチ(1080×1920、 
401ppi) 
CPU 
Qualcomm Snapdragon 805 
(2.7GHzクアッドコア) 
Apple A8 
(1.4GHzデュアルコア) 
GPU Adreno 420 PowerVR GX6650 
RAM 3Gバイト1Gバイト 
ストレー 
ジ 
32/64Gバイト16/64/128Gバイト 
サイズ159.26×82.98×10.06ミリ158.1×77.8×7.1ミリ 
重さ184グラム172グラム 
左からNexus 6、iPhone6 Plus、 
Galaxy Note Edge 
この解像度は 
27型液晶ディスプ 
レーに相当します。
Android developers blog 
「Getting Your Apps Ready for Nexus 6 and Nexus 
9」 
アプリをNexus 6 とNexus 9 に備えましょう 
© IMJ Corporation. All Rights Reserved. 
という記事がありました。 
http://android-developers. 
blogspot.jp/2014/10/getting-your-apps- 
ready-for-nexus-6-and.html
要約すると、 
WQHD (1440×2560 px)ディスプレイ向けの 
アプリを作る場合は、従来のxxhdpi(Full-HD) 
向けの画像ではなくxxxhdpi (4K)向けの画像 
を使うことを推奨します。 
という内容でした。 
© IMJ Corporation. All Rights Reserved.
これはアプリに限ったことだけではなくて、Web 
でも、端末の性能を100%引き出すのであれば、 
同じようなことが言えます 
© IMJ Corporation. All Rights Reserved.
現行機種のAndroidのブラウザサイズは、ほぼ 
360×640pxになっています。 
しかし、実際には360×640pxで扱えるように 
なっているのに過ぎません。 
© IMJ Corporation. All Rights Reserved.
ブラウザサイズの求め方 
ブラウザpx = デバイスpx / デバイス・ピクセル比 
(css pixel) (device pixel) (device pixel 
ratio) 
XperiaZ, GalaxyS4 (1080 × 1920) 
幅: 360 px = 1080px / 3 
© IMJ Corporation. All Rights Reserved. 
高さ: 640 px = 1920px / 3 
Galaxy Note Edge (1440 × 2560) 
幅:360 px = 1440px / 4 
高さ: 640 px = 2560px / 4
メディアクエリーから、このdevicePixelRatioを 
使ってメインビジュアルの出しわけをしてみては 
いかがでしょうか? 
@media screen and (-webkit-min-device-pixel-ratio: 4){ 
/* 高解像度向けのスタイル*/ 
background-image: url('main-image.png'); 
© IMJ Corporation. All Rights Reserved. 
}
© IMJ Corporation. All Rights Reserved. 
最後に告知です。
株式会社アイ・エム・ジェイは、チームラボ社・LIG社との3社合同採用イベン 
ト「CREATORE‘S KITCHEN presented by Lab×LIG×IMJ」を12/7(日) 
© IMJ Corporation. All Rights Reserved. 
に開催いたします。
Facebook 
https://www.facebook.com/events/15032765132 
56305/ 
Wantedly 
https://www.wantedly.com/projects/12508 
© IMJ Corporation. All Rights Reserved.
© IMJ Corporation. All Rights Reserved. 
ご清聴ありがとうございました。

Html5minute #5

Editor's Notes

  • #2 なれる!FE <0:05>
  • #3 まずは自己紹介します。 フロントエンド側ではない ただのエンジニアの 柴田美咲です。 <0:10>
  • #4 タイトルの元ネタが分からない人の為に紹介させていただきますと、 これは私の好きな本の一つ「なれる!SE」からいただきました。 IT業界を題材としたライトノベルです。 <0:20>
  • #5 こんな事やってます。 ・スマホアプリ開発(主にAndroid、時々iOS) ・サーバーサイドプログラム ・サーバー/インフラ etc… 最近になって、フロントエンドに携わるようになってきました。まだまだ勉強中です。 <0:35>
  • #6 ということで、今回はスマホ関連の話をしたいと思います。 <0:40>
  • #7 いきなりですが、WebViewベースのアプリ開発をやっていますか? <0:45>
  • #8 WebViewベースのアプリはハイブリットアプリと呼ばれています。 JSを通しアプリを連携させ、相互にプログラムを実行させることが可能です。 <0:55>
  • #9 Androidの実現方法としては ・addJavascriptInterface方式 ・カスタムURLスキーム方式 ・JsAlert方式 ・ローカルHTTPサーバ方式 などが既に用意されており、容易に実現することができます。 <1:10>
  • #10 しかし、セキュリティの問題やiOSでも使えることなどを考慮すると、 必然的に“カスタムURLスキーム方式”を選択することになるかと思います。 JSからの実行例はこちらです。 <1:25>
  • #11 ついでに、WebViewについて、最近トピックスを紹介します。 <1:30>
  • #12 Android4.4 からWebViewがChromium ベースのものに変わりました <1:35>
  • #13 iOS8から「Nitro JavaScript」が使えるようになりました。 <1:40>
  • #14 WebViewの表示速度改善に関する内容ですが、このあたりから、他のコンポーネントより、注目されていることが伺えます。 <1:45>
  • #15 せっかくなので、このWebViewをどんどん使ってハイブリッドアプリを作っていきましょう! <1:55>
  • #16 もう一点、最近のAndroid事情を紹介させていただきます。 下の写真は、12月上旬以降にYモバイルから発売されるNexus6です。 <2:10>
  • #17 Nexux6とiPhone6 Plusの比較表がこちらになります。 Nexus6で注目すべきは、ディスプレイ解像度です。 端末サイズは、iPhone6 Plusとほぼ同じなのにもかかわらず、 1440×2560pxの有機ELディスプレイを搭載しています。 この高解像度を有する端末はNexus6だけではなく 既に販売されている。 DocomoのGALAXY Note Edge auのisai FL(イサイ・エフ・エル) も同じ解像度になっています。 ちなみにこの解像度は、27型液晶ディスプレーに相当します。 <2:40>
  • #18 Android developers blogに 「Getting Your Apps Ready for Nexus 6 and Nexus 9」 という記事がありました。 <2:50>
  • #19 要約すると、 (WQHD)ディスプレイ向けのアプリを作る場合は、従来の(Full-HD)向けの画像ではなく(4K)向けの画像を使うことを推奨します。 という内容でした。 <3:00>
  • #20 これはアプリに限ったことだけではなくて、Webでも、端末の性能を100%引き出すのであれば、同じようなことが言えます。 <3:10>
  • #21 現行機種のAndroidのブラウザサイズは、ほぼ360×640pxになっています。 しかし、実際には360×640pxで扱えるようになっているのに過ぎません。 <3:20>
  • #22 詳しく説明するとこういう関係になっています。 ブラウザサイズを求めるにはデバイスピクセル ÷デバイス・ピクセル比 で求めることができます。 このデバイス・ピクセル比は逆算でも求められますが、 Javascriptでも取得することが可能で「window.devicePixelRatio」とすると取得することができます。 Ratio = レーシオ <3:50>
  • #23 メディアクエリーから、このdevicePixelRatioを使って メインビジュアルなどを高解像度対応しみてはいかがでしょうか? <4:00> 3秒沈黙 <4:03> でこの話には続きがあって、 実際にテストして見比べてみたのですが、思ったほど効果が出ませんでした。 iPhoneのRatinaディスプレイのRetinaが「網膜」という意味で、 「画素が細かく、人間の目で識別できる限界を超えている」ということから命名されたわけですが、 今回の件をまとめると、Ratinaより高解像度になっても人の目では判別できないし、処理が重くなるので無駄なのでは?という結論に至りました。 <4:30>
  • #24 最後に告知です。 <4:35>
  • #25 株式会社アイ・エム・ジェイは、チームラボ社・LIG社との3社合同採用イベント「CREATORE‘S KITCHEN presented by ラボ×リグ×IMJ」を12/7(日)に開催いたします。 <4:45>
  • #26 Facebook/wantedlyどちらからもご応募頂けます。興味のある方は是非ご参加ください。よろしくお願いします。 <4:55>
  • #27 ご清聴ありがとうございました。