関西IBMユーザ研究会 IT研究会 H23Z1チーム
今日から始めるモバイルサイト構築
今日から始めるモバイルサイト構築
〜 〜 iSUC iSUC モバイルサイトの開発で学んだ モバイルサイトの開発で学んだ
開発方式と考慮点
開発方式と考慮点 〜 〜
今日から始めるモバイルサイト構築
今日から始めるモバイルサイト構築
〜 〜 iSUC iSUC モバイルサイトの開発で学んだ モバイルサイトの開発で学んだ
開発方式と考慮点
開発方式と考慮点 〜 〜
アジェンダ
21.はじめに
2.モバイル開発手法の紹介
3. iSUC モバイルサイトのアーキテクチャー
紹介
4.考慮点と改善策
5.まとめ
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
31.はじめに
a. 当チームの紹介
b. 今年度の活動テーマ
c. 作成したアプリの紹介
1-a.当チームの紹介
4当チームはiSUCのWebサイトである「iSUC
ポータル」に対し、
新しいテクノロジーを投入し、
機能の改善・高度化にチャレンジし続けて いま
す!
平成 平成 23 23 年度 年度 関西研Z1チーム 関西研Z1チーム
1-b.今年度の活動テーマ
52012 年の iSUC 仙台大会をターゲッ
トに、 「 iSUC ポータルのセッションア
ジェンダを
スマートフォンでも利用できる」
サービスを提供すること。
1-b.今年度の活動テーマ
6スマートフォン市場の急成長
スマートフォン市場の急成長
昨今のITトレンド
は・・・
※出典:「スマートフォン市場規模の推移・予測( 12 年 3 月)」 株式会社 MM 総研
2016年には、携帯電話の8割以上がスマートフォンとなる
見込み
1-b.今年度の活動テーマ
7タブレット市場も急成長
タブレット市場も急成長
昨今のITトレンド
は・・・
※出典:「タブレット端末利用動向調査報告書 2012 」 株式会社インプレ
2016年には、2012年の約3倍 ( 1500万台 ) の台数
となる見込み
1-b.今年度の活動テーマ
8もはやモバイル・デバイスは、なくてはならない存在
もはやモバイル・デバイスは、なくてはならない存在
モバイル向けアプリの重要
性
・スマートフォンやタブレット端末の普及によって、モバイル向
けアプリ の利用ニーズが急速に高まっている。
・モバイル・デバイス向けのアプリ開発、サービス開発を第 1 に
考えた いわゆる「モバイルファースト」が注目されている。
モバイルファーストによる開発で期待される効果
モバイル特有の最新機能を利用することで、
斬新なサービス提供が可能
拡大するモバイル市場をターゲットにできる
1-c.作成したアプリの紹介
9紹介いたします!! デモにて
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
102.モバイル開発手法の紹介
a. モバイルアプリの開発形態
b. 開発ツール
2-a.モバイルアプリの開発形態①
11モバイル特有機能の活用
モバイル特有機能の活用
移植性 移植性
ネイティブ
アプリケーション
ネイティブ
アプリケーション
高
高
低
低
開発言語 開発言語
ハイブリッド
アプリケーション
ハイブリッド
アプリケーション アプリケーション アプリケーション Web Web
開発方法 開発方法
モバイル特有
機能の活用
モバイル特有
機能の活用
移植性 移植性
iPhoneは Objective-C
Android は Java HTML 、 JavaScript
スマートフォン向けネイティブ
アプリケーションとして開発 UIはWeb技術で開発し、機能 はサードパーティの API を利用
HTML 、 JavaScript
スマートフォン向けWeb アプリケーションとして開発
全ての機能が利用可能 スマートフォンの種類によって
サポート機能が異なる 利用不可
OS、バージョンによって
モジュールの修正が発生 対応するスマートフォンに
よってモジュールの修正が発生 (画面サイズの変更程度)基本的に不要
開発ツール 主な
開発ツール 主な
iPhoneは Mac OS 、 XcodeAndroidは Eclipse Titanium Mobile EclipseなどPhoneGap
2-a.モバイルアプリの開発形態②
12モバイル向けアプリケーション(ネイティブ/ハイブリッド)
モバイル向けアプリケーション(ネイティブ/ハイブリッド)
モバイル向けアプリケーション(ネイティブ/ハイブリッド)
モバイル向けアプリケーション(ネイティブ/ハイブリッド)
•PC では動作を再現できないため、実機でのテストが必要である
• ネイティブアプリケーションの場合、 OS によって開発言語が異なる
• iOS 向けのネイティブアプリケーション/ハイブリッドアプリケーシ
ョンの場合、マーケットによる審査がある
配布 ダウンロード
【開発言語】
iOS ⇒
Objective-C
Android ⇒ Java
【開発言語】
iOS ⇒
Objective-C
Android ⇒ Java
【マーケットの審
査】 iOS ⇒ あり
Android ⇒ なし
【マーケットの審
査】 iOS ⇒ あり
Android ⇒ なし
開発者 ユーザ
2-a.モバイルアプリの開発形態③
13モバイル向けアプリケーション(
モバイル向けアプリケーション( Web Web ) )
モバイル向けアプリケーション(
モバイル向けアプリケーション( Web Web ) )
デプロイ リクエスト
レスポンス
• ネイティブ/ハイブリッドに比べ、機種依存による影響が小さい
• PC では動作を再現できないため、実機でのテストが必要である
• クライアントサイドとサーバサイドで開発言語が異なる
• ユーザは Web ブラウザからアクセスし、アプリケーションを利用する
【開発言語】
クライアントサイド:
HTML 、 CSS 、 JavaScript
サーバサイド: Java 、 .NET 、軽量言
語など
【開発言語】
クライアントサイド:
HTML 、 CSS 、 JavaScript
サーバサイド: Java 、 .NET 、軽量言
語など
開発者 ユーザ
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
2-b.開発ツール ~ネイティブ・ハイブリッド
~
• HTML や JavaScript を使って、 iOS と Android 向けのアプリケーション
を同時に開発
14
ネイティブアプリケーション
ネイティブアプリケーション
ネイティブアプリケーション
ネイティブアプリケーション
ハイブリッドアプリケーション
ハイブリッドアプリケーション
ハイブリッドアプリケーション
ハイブリッドアプリケーション
J2ObjC
Google 社が提供する
、 Java のソースコード
を Objective-C に変換
するためのツール
J2ObjC
Google 社が提供する
、 Java のソースコード
を Objective-C に変換
するためのツール
PhoneGap
Adobe Systems 社が
提供する開発フレーム
ワーク
PhoneGap
Adobe Systems 社が
提供する開発フレーム
ワーク
Titanium
Mobile
Appcelerator 社が提供
する開発フレームワー
ク
Titanium
Mobile
Appcelerator 社が提供
する開発フレームワー
ク
Monaca
アシアル社が提供する
開発フレームワーク
Monaca
アシアル社が提供する
開発フレームワーク
• iOS 向けは Objective-C 、 Android 向けは Java を使って、アプリケーションを開発
2-b.開発ツール ~ハイブリッド・ Web ~
• モバイル向けアプリケーションの外観と動作を実現する
JavaScript プログラムの集合
– UI 部品(ボタン、リストビューなど)
– 画面効果(ページ遷移、ダイアログの表示)
– デバイス間の差異を吸収
15
JavaScript
JavaScript ライブラリ ライブラリ
JavaScript
JavaScript ライブラリ ライブラリ
概要 提供元
jQuery
Mobile
jQuery をベースとしたライブラリ
PhoneGap や Worklight などのフレーム
ワークとも互換性を持つ
The jQuery
Project
Dojo Mobile Dojo Toolkit ライブラリ群の一つ
IBM の RAD にも同梱されている
Dojo Foundation
jQtouch Zepto.js をベースとしたライブラリ
iOS / Android 向けのデザインを用意
Sencha Labs
Sencha
Touch
Ext JS をベースとしたライブラリ
バージョン 1.0 から無償化
Sencha Inc
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
163. iSUC モバイルサイトのアーキテクチャー
紹介
a. 基本方針
b. システムデザイン
c. 要素技術紹介
d. レコメンデーション機能
3-a.基本方針① ~機能方針~
17現在のパソコン向け
現在のパソコン向け iSUC iSUC セッションアジェンダをモバイル向けに新規構 セッションアジェンダをモバイル向けに新規構
築 築
現在のパソコン向け
現在のパソコン向け iSUC iSUC セッションアジェンダをモバイル向けに新規構 セッションアジェンダをモバイル向けに新規構
築 築
具体的な実装機能
具体的な実装機能
具体的な実装機能
具体的な実装機能
スマートフォン 対応 スマートフォン
対応
・モバイル端末で見たい
・会場で見たい
・その他便利な機能がほしい
・モバイル端末で見たい
・会場で見たい
・その他便利な機能がほしい
• セッションアジェンダの閲覧機能
• お気に入り機能
• レコメンド機能(おすすめセッション)
• 検索機能
• アンケート機能
モバイル特有機能の活用
モバイル特有機能の活用
3-a.基本方針② ~方式~
18ネイティブアプリ~
ネイティブアプリ~ Web Web アプリまで形態は大きく アプリまで形態は大きく 3 3 種類 種類
ネイティブアプリ~
ネイティブアプリ~ Web Web アプリまで形態は大きく アプリまで形態は大きく 3 3 種類 種類
移植性 移植性
ネイティブ
アプリケーション
ネイティブ
アプリケーション
高
高
低
低
開発言語 開発言語
ハイブリッド
アプリケーション
ハイブリッド
アプリケーション アプリケーション アプリケーション Web Web
開発方法 開発方法
モバイル特有
機能の活用
モバイル特有
機能の活用
移植性 移植性
iPhoneは Objective-C
Android は Java HTML、 JavaScript
スマートフォン向けネイティブ
アプリケーションとして開発UIはWeb技術で開発し、機能 はサードパーティの API を利用
HTML 、 JavaScript
スマートフォン向けWeb アプリケーションとして開発
全ての機能が利用可能 スマートフォンの種類によって
サポート機能が異なる 利用不可
OS、バージョンによって
モジュールの修正が発生 対応するスマートフォンに
よってモジュールの修正が発生 (画面サイズの変更程度)基本的に不要
開発ツール 主な
開発ツール 主な
iPhone は Mac OS 、 Xcode
Androidは EclipseTitanium Mobile EclipseなどPhoneGap
採用
3-a.基本方針③ ~利用基盤~
19利用基盤として
利用基盤として IBM SmarterCloud Enterprise IBM SmarterCloud Enterprise を利用 を利用
利用基盤として
利用基盤として IBM SmarterCloud Enterprise IBM SmarterCloud Enterprise を利用 を利用
• 場所・端末を問わず利用できる環境
• 必要な時にすぐ環境を準備可能
• モバイル端末からの検証環境
セッションアジェンダ
ミドルウェア
OS
ハードウェア
Eclipse
サクラエディタ
Internet
jQuery Mobile
20
Windows
Node.js MySQL
3-b.システムデザイン
iSUC ポータル
採用アーキテクチャ
採用アーキテクチャ
採用アーキテクチャ
採用アーキテクチャ
アーキテクチャの選定理由・メリット
アーキテクチャの選定理由・メリット
アーキテクチャの選定理由・メリット
アーキテクチャの選定理由・メリット
HTML5
HTML5 CSS3CSS3 Java Script Java Script
jQuery Mobile
Node.js
IBM クラウド
モバイル向けユーザインターフェースの提供が可能
JavaScript ベースのサーバサイドスクリプトとして注目
すぐに開発に着手できる/スマートフォン上でもすぐにテストできる
IBM SmarterCloud Enterprise
3-c .要素技術紹介① ~フロント開発技術~
• jQuery Mobile とは
– モバイルアプリケーションの外観や動作を実現する
JavaScript ライブラリ
– 開発者はマークアップのみで、ユーザインターフェースを構築できる
•HTML5の新しいタグへの対応( section 、 header 、 footer など)
•CSS3の Transform 機能を用いた画面遷移やダイアログ表示
21
j j Query Mobile Query Mobile
j j Query Mobile Query Mobile
Internet リクエスト
レスポンス
サーバ Webブラウザ
カスタム属性が指定された要素を取り出し、
マークアップ、 CSS クラス、イベントハンドラを追加する
3-c .要素技術紹介② ~ jQuery Mobile の使い
方~
22
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<link href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
コンテンツの本文
</body>
</html>
③ 表示領域を設定
①HTML5 の文書型宣言
②HTML5 の文字コード指定
④jQuery と jQuery Mobile を読み込む
(1)利用準備
(1)利用準備
(1)利用準備
(1)利用準備
3-c .要素技術紹介③ ~ jQuery Mobile の使い
方~
23
(2)ページの定義
(2)ページの定義
(2)ページの定義
(2)ページの定義
3-c .要素技術紹介④ ~ jQuery Mobile の使い
方~
24
(3)リストの表示
(3)リストの表示
(3)リストの表示
(3)リストの表示
3-c. jQuery Mobile の紹介
25紹介いたします!! デモにて
3-c.要素技術紹介⑤ ~サーバサイド開発技術
~
26
サーバサイドにおける JavaScript 実行環境。( V8 ( Google 謹製の JavaScript エンジ
ン)上で動作。)
以下の特徴を持ち、 「大量のアクセス」を「簡単かつ高速」に処理することを目指してい
る。
シングルスレッド
非同期 I/O
⇒ シングルスレッドにてパラレル処理を実現する為の技術
イベントループ
⇒イベントが発生するまでループを回り続け、イベントがあれば処理する。 マルチスレッド
非同 期 I
/ O 他処
理
非同 期 I
/ O
非同 期 I
/ O
シン グル スレ ッド
マルチスレッド
マルチスレッド
I/O
I/O
I/O
メモリ
の消費が 少なく、大量のアクセ スに強いNode.js
Node.js
Javaアプリケーションの一例
node .js
• HaaS (IaaS) 型のパブリッククラウドサービス
– 仮想のサーバー(ハードウェア、OS)を提供
– Windows 、 Linux の技術サポート契約の締結も可能
– IBM 主要ミドルウェアが同梱されているイメージの選択可能
• 従量課金制
– 初期費用不要で OS が稼動している時間だけ課金される。
– CPU スペック・メモリ容量で金額が変わる(最小構成で1時間 10 円~)
3-c.要素技術紹介⑥ ~基盤技術~
27IBM SmarterCloud Enterprise
IBM SmarterCloud Enterprise
利用イメージ
利用イメージ
利用イメージ
利用イメージ
IBMデータセンター
(幕張)
仮想サーバ
Internet
・開発
・実機検証
3-d.レコメンデーション機能①
28レコメンデーションとは
レコメンデーションとは
レコメンデーションとは
レコメンデーションとは
「このセッションを見ている人はこんなセッ
ションも見ています」
ユーザーが好みそうなアイテムを提示する機能
3-d.レコメンデーション機能②
29レコメンデーションとは
レコメンデーションとは
レコメンデーションとは
レコメンデーションとは
協調フィルタリング
行動履歴からユーザーの好みを推測する手法
大きく分けて2種類
- ユーザーベース
似ているユーザーが好むアイテムをおすすめす
る - アイテムベース
似ているアイテムをおすすめする
今回使った手法
3-d.レコメンデーション機能③
30仕組み( 仕組み( 1/5 1/5 ) )
仕組み( 仕組み( 1/5 1/5 ) )
セッション
ユーザー
アイテムベース
の協調フィルタ
リング ユーザーがセッション
を見るという行動の履
歴からユーザーの好み
を推測する
3-d.レコメンデーション機能④
31仕組み( 仕組み( 2/5 2/5 ) )
仕組み( 仕組み( 2/5 2/5 ) )
セッション1 セッション2
ユーザー
同じユーザーが
見たセッション
どうしをつなげ
る
3-d.レコメンデーション機能⑤
32仕組み( 仕組み( 3/5 3/5 ) )
仕組み( 仕組み( 3/5 3/5 ) )
たくさん見られ
ているセッショ
ン
1 本
2 本
行動履歴 を集計す
る
3-d.レコメンデーション機能⑥
33仕組み( 仕組み( 4/5 4/5 ) )
仕組み( 仕組み( 4/5 4/5 ) )
1 本
2 本
おすすめ度
=つながりの強さの比率
= セッション間
の
つながりの強
さ
あるセッショ
ンが
見られた回数
2 本
67% 67%
3-d.レコメンデーション機能⑦
34仕組み( 仕組み( 5/5 5/5 ) )
仕組み( 仕組み( 5/5 5/5 ) )
おとなりのセッ
ションをおすすめ
3-d.レコメンデーション機能⑧
35実装 実装
実装 実装
SELECT S1, S2, R1/R2 FROM
(SELECT
LOG1.GET_MANAGEID AS S1 , LOG2.GET_MANAGEID AS
S2 , COUNT(*) AS R1
FROM access_log AS LOG1 , access_log AS LOG2
WHERE
LOG1.USERID = LOG2.USERID
AND LOG1.GET_MANAGEID <> LOG2.GET_MANAGEID
GROUP BY LOG1.GET_MANAGEID , LOG2.GET_MANAGEID) AS
COMBINATION ,
(SELECT
LOG3.GET_MANAGEID AS S3 , COUNT(*) AS R2
FROM access_log AS LOG3 , access_log AS LOG4
WHERE
LOG3.USERID = LOG4.USERID
GROUP BY LOG3.GET_MANAGEID) AS SUMMARY
セッション間の
つながりの強さ
セッション間の
つながりの強さ
あるセッション
が見られた回数
あるセッション
が見られた回数
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
364.考慮点と改善策
a. 操作性を向上する為の秘訣
b. 端末上でのパフォーマンスチューニン
グの秘訣
4-a.操作性を向上する為の秘訣①
• タッチ操作向けの設計をする
⇒ jQuery Mobile を使用し、タッチ操作に適した UI を提供
• もっとも頻繁に使用される情報を最上部の近くに配置する
⇒メニューはページの上部に配置
• できるだけログイン要求を遅らせる
⇒お気に入り登録&アンケート機能以外はログイン不要
• ユーザに要求される入力の手間を最小限にする
⇒検索キーワード・ログイン認証以外は文字入力不要
37
iOS iOS ヒューマンインターフェイスガイドラインより( ヒューマンインターフェイスガイドラインより( Apple Apple 社公開) 社公開)
iOS iOS ヒューマンインターフェイスガイドラインより( ヒューマンインターフェイスガイドラインより( Apple Apple 社公開) 社公開)
4-a.操作性を向上する為の秘訣②
38モバイルのディスプレイの大きさを考慮
モバイルのディスプレイの大きさを考慮
モバイルのディスプレイの大きさを考慮
モバイルのディスプレイの大きさを考慮
• 画面が小さい為、メニューボタンが多い場合、視認性低下
⇒操作方法に悩む可能性あり。
• メニューボタンが小さいと、タッチ操作性低下
⇒誤動作による想定外の挙動。
(ユーザは誤動作の原因が理解できない)
改善策 改善策
改善策 改善策
• メニューは必要最低限に絞り込む
• メニューボタンは大きめに確保
・メニューボタンは5つのみ
・ボタンサイズは、jQueryの
デフォルト定義を使わず
cssを修正し、大きく配置
初めての実装では・・・
初めての実装では・・・
初めての実装では・・・
初めての実装では・・・
4-b.端末上でのパフォーマンスチューニングの
秘訣①
インターネット
リクエスト
・遷移に時間がかかる
⇒携帯がゆえに帯域が細い
⇒ページ遷移の度に通信が発生
レスポンス
39
4-b.端末上でのパフォーマンスチューニングの
秘訣② 改善策 改善策 改善策 改善策
• 複数のページを1つの HTML にまとめ、要素の表示・非表示でページ遷移
を実現
• 詳細ページのコンテンツは Ajax で非同期に取得
サーバとの通信量を極力削減し、ストレスの少ない操作性を実
現!
非表示 表示 非表示
40
4.考慮点と改善策
41紹介いたします!! デモにて
関西 IBM ユーザ研究会 IT 研究会 H23Z1 チーム
425.まとめ
a. j Query Mobile を使ってみて
b.Node.js を使ってみて
c. クラウド開発をやってみて
5 -a.j Query Mobile を使ってみて
43良かったこと
良かったこと
良かったこと
良かったこと
モバイル開発の経験がなくても、短期
間で高品質・高機能な画面設計を実現
できる。
見た目のバリエーションが少なく、 jQuery Mobile を
使用した他のサイトと、デザインが似通ってしまう。
⇒ デザインのカスタマイズは可能。
ただし大掛かりなデザインの変更を行うには
CSS や jQuery Mobile の仕様に関する知識が
必要。
気づき 気づき
気づき 気づき
5- b. Node.js を使ってみて
44良かったこと
良かったこと
良かったこと
良かったこと
サーバサイドを JavaScript で作れるため、
学習コストが低く済み、開発期間短縮にも繋がる
気軽に扱える。
ソースのビルド不要、実行モジュールも軽い
気づき 気づき
気づき 気づき
Java 等に比べて統合開発環境が整っていない
⇒ 今回は環境規模もあまり大きくなかったため、
テキストエディタを使用しての開発を実施した。
シングルスレッド /非同期 IO での処理の為, CPU 又は
ディスクが
ボトルネックになる可能性がある(?)
5-b . Node.js パフォーマンステスト
45Jmeter を使用して、 Node.js のボトルネックとなる要素を負荷テストで検
出
内容 内容
内容 内容
結果 結果
結果 結果
評価 評価
評価 評価
⇒ メモリ空き容量・ディスクアクセスは変わらないが CPU の使用量がアクセス数に
比例して大きくなる ⇒ CPU リソースの割り当てが重要となりえる。
CPU 使用量 空きメモリ
( MB)
ディスク使用量 スループット
(秒) レスポンス (ms)
シス テム リソ
|ス
測 定
結 果
同時60アクセ 程度でレスポンス ス、スループッ
トが悪化 同時60アクセ 程度でレスポンス ス、スループッ
トが悪化
5- c.クラウド開発をやってみて
46利点 利点
利点 利点
開発環境の統一が可能
開発環境のメンテナンスが容易
使いたいときに使え、低コストでの開発が可能
ロケーションフリーによるアクセス
気づき 気づき
気づき 気づき
パブリッククラウドの考慮点について意識する必要あり
⇒ネットワーク遅延
⇒セキュリティ対策
⇒コスト
最後に・・・
47 目的に応じ、最適な開発手法を検討する
(ネイティブ、ハイブリッド、Web )
モバイル開発ツールの活用は有効
「使いやすく、ストレスのない操作」を実現す
る
実機での動作確認は必須
提言 提言 提言
提言
さぁ!皆さんも今日からモバイル開発を
はじめてみませんか!
ご清聴ありがとうございました!
48活動メンバー
・
小池 岳春 株式会社ブレーンスタッフコンサルタンツ
・
塩見 登志和 マツ六株式会社
・
藤原 匠子 コベルコシステム株式会社
・
丸橋 弘明 SCSK 株式会社
・
水内 一九昌 オルタネート
・
柳井 弘嗣 株式会社 JIEC
・
吉田 圭佑 スミセイ情報システム株式会社
・
和田 夏帆 スミセイ情報システム株式会社
アドバイザー
・
幸田 健 コベルコシステム株式会社
・
田村 晋一 日本アイ・ビー・エム株式会社
・
師井 学 日本アイ・ビー・エム株式会社
Special Thanks to
・
関西 IT 研究会事務局の皆様
・