SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
2010/09/23




【 iUIを使ってサクッとiPhone最適化 】


     株式会社 中部システム ⽜⽥吉樹




               Chubu System Co,.ltd [http://www.cscweb.org]
           0
自⼰紹介
 2001年 株式会社 中部システム⼊社
 2002年 RPG中⼼の開発に従事
 2003年 主に製造・販売業を中⼼にSEとして活動
 2005年 IBM iを用いた社内Web開発のメンバーとして活動
 2007年 IBM iを用いたPHPでの開発に着⼿
 2009年 静岡Developers勉強会の運営委員として活動中
 2009年 OS協議会 System i プラットフォーム分科会の
     メンバーとして活動中

             http://twitter.com/ushiday

             ushidayの⽇記   ( http://d.hatena.ne.jp/ushiday/ )

                   1
テーマに取組んだ背景
トレンドであるスマートフォンを活用したい
ホスト上のWebアプリを活用したい
スマートフォンのWebブラウザで、ホスト上のWeb
 サイトを閲覧してみたが、最適化されていないので
 閲覧や操作ともにイマイチだった
既存のWebアプリを活かしつつ、iPhoneに最適化
 させる⽅法を模索
iPhoneになった理由→たまたま周囲にAndroidより
 iPhoneユーザーの⽅が多かった。iPod touchも含
 む
              2
目 標


iPhoneに最適化出来るライブラリやツールの発掘
既存アプリケーションを活かし易い、⽅法やライブ
 ラリの選定
最適な開発環境を整える
プロトタイプ・アプリケーションの作成
開発上の難易度や、学習コストの⾒極め
メリット・デメリット使いどころ等の判断

            3
検証した環境



サーバー:IBM i V5R4M0(オフコン)
PHP:Zend Core for i5 2.6(PHPエンジン)
PCクライアント:Windows XP SP3
PCブラウザ:Safari 4.0.5 or Chrome 6
実機検証:iPod touch iOS4 Safari




                 4
課題と解決策

既存のWebアプリは、PC向けに制作されている為
 全体像を表⽰した時に⼩さい。都度拡大縮⼩を繰り
 返さなくてはならない




→ 画⾯の内容を簡素化して⾒やすいサイズへの最適
 化

              5
JavaScript系UIツール(1)
• jQTouch
  jQueryベースのiPhone風 UIを提供するライブラリ
   公式サイト http://www.jqtouch.com/
   2010/9/13時点の最新バージョン「jqtouch-1.0-beta-2-r109」
   ライセンス MIT License
  イメージ
                           UIが少しリッチに⾒えて、
                           ⼀⾒ウケが良さそうに感じた

                           正確なベンチーマークではない
                           が、体感的に若⼲重たく感じた




                       6
JavaScript系UIツール(2)
• iUI
   iPhone風 UIを提供するライブラリ
   ⼊⼿先 http://code.google.com/p/iui/
   2010/9/13時点の最新バージョン「iui-0.31」
   ライセンス New BSD Licence
   イメージ
                             UIがiPhone標準に準拠という
                             感じがする

                             jQTouchほど、艶っぽさが無
                             いが、これはこれで悪くない




                         7
その他 UIツール(3)
• その他
  Universal iPhone UI Kit (GPLv3)

  iWebkit (LGPL)

  iPhone Web Developer Tool

  Dojo Toolkit - dojox.mobile(BSD License and the Academic Free License )

  sencha touch (デュアルライセンス)


  今回の研究では実際に試してはいないが、前述の2つ以外に、
  上記もよく⾒かけたので、情報として掲載


                                   8
ツールの選択




今回は”iUI”を試してみる事に...




         9
iUIの特徴


 iPhone用のツールバーや画像、リンクやフォームパーツな
 ど、基本的なパーツ/画像を提供
 検索ボックスなどのパーツも標準で提供
 jsファイルを読込後、簡単なHTMLを記述するだけでiPhone
 用のページが作成可能
 画⾯の縦横の検地
 ページ遷移の際のアニメーション機能
 戻るボタンの自動設定(履歴管理を⾏ってくれる)


                10
開発環境する時便利だったモノ
• 詳細のレイアウト確認
 PC上のブラウザは、大枠の動作確認は出来るが、レイ
 アウの詳細確認や、プレゼン用資料の作成には、向いて
 いない
  iPhone用シュミレータ”iBBDemo2(GPLv3)”を使用

                       iPhoneの他に、iPadのシュミ
                       レータも備えている

                       Adobe AIR上で動作する為、
                       AIRが使える環境であれば、ク
                       ロスプラットフォームで動作す
                       る。




                  11
プロトタイプの作成(1)
• ベースとなるWebアプリケーション
  商品検索(ホスト上のPHPで動作)

                    ホスト上で動作している、既存
                    の商品検索をiPhone用にビュー
                    をカスタマイズする




               12
プロトタイプの作成(2)
• アプリケーション全体の構想

 認証   メニュー        商品検索    商品詳細




                  抜粋してこのあたりを説明


             13
プロトタイプの作成(3)
• サーバサイドのiPhoneの判定
 アプリケーションの⼊り⼝で、ユーザーエージェントを
 取得して、iPhoneサイトへ誘導する

  PHPの場合...コーディング例
 //ユーザー端末判定
 $agent = $_SERVER['HTTP_USER_AGENT'];
 if (preg_match("/iPhone|iPod/", $agent)){
     //iPhone・iPod Touchの場合の処理
 }




                                 14
プロトタイプの作成(4)
• iPhone用ビューのヘッダー設定
 通常のWindowの替りに、iPhoneで拡大縮⼩等が動作す
 る、ビューポートを定義をする

  htmlのコーディング例

 <!-- iPhone viewport 設定 -->
 <meta name="viewport" content="width=device-width; initial-
 scale=1.0; maximum-scale=1.0; user-scalable=0;"/>

  width                  Viewportの横幅
  initial-scale          倍率の初期値
  maximum-scale          倍率の最大値
  user-scalable          ユーザーの拡大縮小可否
                                 15
プロトタイプの作成(5)
• iUI用ヘッダー設定
  iUIのJavaScriptを動作させる為の設定

  html , JavaScriptのコーディング例
 <!-- iUI 設定 (CSS , JavaScript)-->
 <meta name="apple-touch-fullscreen" content="YES" />
 <link type="text/css" rel="stylesheet" href="iui.css" media="screen"/>
 <script type="application/x-javascript" src="iui.js"></script>

 <!-- iUI アニメーション開始-->
 <script type="text/javascript">
    iui.animOn = true; (ページ遷移した時のスライドするアニメーション)
 </script>


                                  16
プロトタイプの作成(6)
• iUIの使用⽅法(1)
  iPhoneのツールバー部分の定義
  htmlの<body>タグ以下の例
 <div class="toolbar">
    <h1 id="pageTitle"></h1>
    <a id="backButton" class="button" href="#"></a>
    <a class="button" href="#searchForm">検索</a>
 </div>

                                         決められたタグや、class
                                         を指定するだけで、ボタン
                                         の配置やリンク先を自動的
                                         に⾏ってくれる

                                17
プロトタイプの作成(7)
• iUIの使用⽅法(2)
   iPhoneのボディ部分の定義
  htmlの<body>タグ以下の例
<ul id="home" title="商品Home" selected="true">
   <li><a href="search.php">商品一覧</a></li>
   <li><a href="#editItem">編 集</a></li>
   <li><a href="add.php">追 加</a></li>
   <li>その他</li>
</ul>

       <ul>〜</ul>までが1ページの範囲
       <li>タグで羅列するだけで、iPhone風にメニューを配置
       <a>タグでリンクにするだけで、次のアクションに遷移

                                 18
プロトタイプの作成(8)
• iUIの使用⽅法(3)
商品検索結果画⾯の定義(PHPの場合)
 <ul title="商品一覧">
 <?php
 $url = "edit.php?code=";
 foreach ($rows as $row) {
 ?>
 <li><a href="<?php echo $url.$row["code"] ;?>">
    <?php echo $row["code"] ." : " . $row["name"] ;?></a></li>
 <?php
 }                    前述のメニューと同じく<li><a>タグ
 ?>                   で商品を羅列するだけで、結果の画⾯が
 </ul>                出⼒される

                                19
プロトタイプの作成(9)
• iUIの代表的なUI⼀覧
 toolbar(divタグclass)   ツールバー定義
 pageTitle(id)          ツールバーに表⽰するタイトル
 backButton(id)         ツールバーに表⽰する戻るボタン
 home(ulタグid)          メインページ
 <ul>〜</ul>             1ページの定義
 <li>〜</li>             ページのメニュー
 <a href="#"            ページ内遷移(ulタグのidと連動)
 group(liタグclass)      メニューのグループ化
 button(aタグclass)      ボタンUI
 submit(aタグtype)       サブミットボタンUI

                                     ※他多数あり
                           20
まとめ(1)
• 開発難易度
  htmlのタグや属性のルールを覚えるだけで、特に難しい点は
   なかった
  ベースアプリケーションがあればビューの⼿直しだけで済
   み、思いのほか⼯数も掛からなかった
  htmlやサーバーサイドの技術(例えばPHPなど)の理解が
   有れば、⼗分扱える

• 学習コスト
  ⾯倒なJavaScriptや画⾯遷移の制御は”iUI”側で、⾏なっ
   てくれるので、特に特別な知識は必要が無かった



                 21
まとめ(2)
• iUIのメリット

  既存Webアプリケーションが既に存在する場合は、ビジネ
   スロジックを流用出来る

  シンプルな機能だけなので習得しやすい

  短期間でiPhoneに最適化されたWebアプリが構築できる

  動作も軽快に動く(※但し体感的な印象)



               22
まとめ(3)
• iUIのデメリット
  ドキュメント関係がない。サンプルを⾒て理解する必要が
   ある

  戻るボタンは、自動で履歴の管理しているので、複雑な画
   ⾯遷移には向いていない

  オープンソースの為、商用ソフトの様なサポートは受けら
   れない

  シンプルな機能ゆえ、iPhone独特のマルチタッチなどの動
   作は、別途実装する必要がある

                 23
まとめ(4)
• iUIの使いどころ
  画⾯遷移が単純なアプリケーション
   例 商品検索条件 → 商品⼀覧 → 詳細

  単純な操作(タッチ操作だけ)で済むようなケース
   例 カレンダー表⽰ → スケジュール確認

  表⽰可能な情報量は、限られている為、単純な情報
   例 倉庫選択 → 商品名と在庫を確認

                      ⽐較的シンプルな
                 アプリケーション向き
                 24
ご清聴ありがとうございました




      25

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

JCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放てJCROM で Android の「真の力」を解き放て
JCROM で Android の「真の力」を解き放て
 
Windows Phone / iOS / Android アプリ同時開発のススメ
Windows Phone / iOS / Android アプリ同時開発のススメWindows Phone / iOS / Android アプリ同時開発のススメ
Windows Phone / iOS / Android アプリ同時開発のススメ
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
既存アプリのiOS8対応 #ios8yahoo
既存アプリのiOS8対応 #ios8yahoo既存アプリのiOS8対応 #ios8yahoo
既存アプリのiOS8対応 #ios8yahoo
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介
 
App Extensions in iOS ver JP
App Extensions in iOS ver JPApp Extensions in iOS ver JP
App Extensions in iOS ver JP
 
Firefoxosハンズオン
FirefoxosハンズオンFirefoxosハンズオン
Firefoxosハンズオン
 
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会
 
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahooもしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
もしiOS8のカスタムキーボードがガジェットのSDKを搭載したら Ver.#ios8yahoo
 
Prott's design
Prott's designPrott's design
Prott's design
 
Embedded Master2
Embedded Master2Embedded Master2
Embedded Master2
 
ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -ユーザーの心に刺ささるためには - UX実践編 -
ユーザーの心に刺ささるためには - UX実践編 -
 
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
Unity に於ける iOS ビルド自動化のおはなし - 20141030 第26回 Unity 勉強会
 
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX! UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
 
jQuery Mobile
jQuery MobilejQuery Mobile
jQuery Mobile
 
「その他」のUI Framework 3選
「その他」のUI Framework 3選「その他」のUI Framework 3選
「その他」のUI Framework 3選
 
Panovatty2
Panovatty2Panovatty2
Panovatty2
 
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
"あんざいゆき" x "秋葉ちひろ" はカンファレンスアプリをどう作るのか?
 
きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編きちんと理解できるiOS開発〜Auto Layout編
きちんと理解できるiOS開発〜Auto Layout編
 
デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発デザイナーとエンジニアが話す、iOSアプリケーション開発
デザイナーとエンジニアが話す、iOSアプリケーション開発
 

Semelhante a Css nite(2010.09.23)

Intalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitchIntalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitch
Daisuke Sugai
 
iPhone での旬なWeb開発 (jQTouch編)
iPhone での旬なWeb開発 (jQTouch編)iPhone での旬なWeb開発 (jQTouch編)
iPhone での旬なWeb開発 (jQTouch編)
dora_kou
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
Monaca
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
Satoru Yamaguchi
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
Nobuhiro Sue
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
takeuchi-tk
 

Semelhante a Css nite(2010.09.23) (20)

2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
ネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConViewネットワーク分散型フレームワークConView
ネットワーク分散型フレームワークConView
 
Intalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitchIntalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitch
 
iPhone での旬なWeb開発 (jQTouch編)
iPhone での旬なWeb開発 (jQTouch編)iPhone での旬なWeb開発 (jQTouch編)
iPhone での旬なWeb開発 (jQTouch編)
 
はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情 はやわかりHTML5ハイブリッドアプリ開発事情
はやわかりHTML5ハイブリッドアプリ開発事情
 
スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
JqueryMobile
JqueryMobileJqueryMobile
JqueryMobile
 
2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山
 
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
 
Indigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプIndigo Studio で作るプロトタイプ
Indigo Studio で作るプロトタイプ
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
 
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編
 
20111031 MobileWeb at TDC
20111031 MobileWeb at TDC20111031 MobileWeb at TDC
20111031 MobileWeb at TDC
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
 
jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料jQuery Mobile(開発編)勉強会資料
jQuery Mobile(開発編)勉強会資料
 
UI要素を動的に利用する
UI要素を動的に利用するUI要素を動的に利用する
UI要素を動的に利用する
 

Mais de Yoshiki Ushida (8)

プラットフォーム分科会_20100804
プラットフォーム分科会_20100804プラットフォーム分科会_20100804
プラットフォーム分科会_20100804
 
Ilerpg Study 006
Ilerpg Study 006Ilerpg Study 006
Ilerpg Study 006
 
Ilerpg Study 005
Ilerpg Study 005Ilerpg Study 005
Ilerpg Study 005
 
Ilerpg Study 004
Ilerpg Study 004Ilerpg Study 004
Ilerpg Study 004
 
Ilerpg Study 003
Ilerpg Study 003Ilerpg Study 003
Ilerpg Study 003
 
Ilerpg Study 002
Ilerpg Study 002Ilerpg Study 002
Ilerpg Study 002
 
ILE-RPG Study 001
ILE-RPG Study 001ILE-RPG Study 001
ILE-RPG Study 001
 
Ushiday 20090722 Lt
Ushiday 20090722 LtUshiday 20090722 Lt
Ushiday 20090722 Lt
 

Css nite(2010.09.23)