目次


Eclipse で開発する iPhone の Web アプリケーション

Aptana の iPhone Development プラグインと iUi フレームワークを使って iPhone Web アプリケーションを作成する

Comments

Apple の iPhone プラットフォーム向けの開発は非常に興味深い作業です。小さなフォーム・ファクターとインタラクティブなタッチスクリーンとによって、iPhone と iPod Touch は瞬く間に数百万を超えるユーザーを獲得しました。しかし、この斬新な設計と独自のプラットフォームは、アプリケーション開発者に対しては新たな一連の課題を突きつけます。Apple が2008年2月にソフトウェア開発キット (SDK) をリリースするまで、このプラットフォームをターゲットとする開発者は iPhone 特有のルック・アンド・フィールを真似た Web アプリケーションを作成するしか手はありません。

幸いなことに、そんな開発者の作業を楽にするオープンソースの新しいツールがあります。その 1 つは Eclipse を対象とした Aptana の iPhone Development プラグインで、このプラグインは iPhone 固有のプロジェクトを作成し、回転可能なビュー・ファインダーにアプリケーションをプレビュー表示します。そしてもう 1 つのツールは、Joe Hewitt の iUi です。このカスケーディング・スタイル・シート (CSS) と JavaScript のフレームワークには、iPhone ならではのエクスペリエンスをエミュレートする多種多様なウィジェットとページが含まれています。

この記事では、Aptana と iUi を使って新しいアプリケーションを作成します。そのアプリケーションとは、iPhone 用の単純な Javadoc ビューアーです。まず、iPhone 上で Javadoc をブラウズするためのユーザー・インターフェース (UI) を設計し、それからあらゆるソース・コードから Javadoc ページを生成することが可能なカスタム・ドックレットを作成します。この手順に沿って、iPhone をターゲットとする場合に持ち上がってくる UI の問題、この記事で使用するオープンソースのツールが開発とデバッグを容易にする仕組み、そして iPhone 開発の今後の動向について説明します。

ツールの概略

まずは Aptana をインストールして、iUi をダウンロードしてください。

  1. Eclipse V3.2で、Help > Software Updates > Find and Install の順に選択します。
  2. Search for new features to install を選択します。表示されるウィンドウには、プラグインをダウンロードしたサイトに加え、Eclipse が事前定義しているプラグインのサイトのリストが表示されます。
  3. このリストに Aptana を追加するため、New Remote Site をクリックして URL をhttp://update.aptana.com/update/3.2/ の URL を指定します。
  4. 新しく定義した Aptana のサイトをリストから選択したら Next をクリックし、利用可能なすべての機能をインストールします。ウィンドウには基本 Aptana Editor の設定を入力してください。
  5. Eclipse を再起動します。
  6. Window > Open Perspective > Other の順に選択し、表示されたウィンドウから Aptana を選択します。ツールバーに新しい一連のアイコンが表示されます。
  7. ホーム・アイコンをクリックして、Aptana 機能の概要を表示します。
  8. Apple iPhone Development セクションにある Download and Install をクリックします。
  9. すべての機能をインストールし、次にウィンドウで iPhone 固有の機能が設定されるように Aptana を構成します。
  10. Eclipse を再起動します。
  11. iUi の最新バージョンをダウンロードします (「参考文献」を参照)。

上記の手順が完了したら、iDoc という名前の新規 iPhone Project を Eclipse で作成します (図 1 を参照)。

図 1. 新規 iPhone Project の作成
新規 iPhone Project の作成
新規 iPhone Project の作成

図 2 に示すように、作成したプロジェクトには単純な iPhone アプリケーションが表示されます。

図 2. Eclipse で作成した iPhone Project
Eclipse で作成した iPhone Project
Eclipse で作成した iPhone Project

構文のハイライト機能は Aptana の基本エディターによって提供されたものです。この機能は、HTML、CSS、JavaScript をサポートします。

iPhone Preview モードとアプリケーション・サーバー

テキスト・エディターの下端には、Source タブ、iPhone Preview タブ、そしてシステムにインストールされているブラウザー別のタブがあります (Safari PreviewFirefox Preview など)。iPhone Preview をクリックして、iPhone でサンプル・アプリケーションがどのように表示されるかを見てください。ブラウザーの外側をクリックすると iPhone が回転し、iPhone のタイトル・バーをクリックするとナビゲーション・バーが非表示になります。以下に示すのは、iPhone を横置きした場合の iPhone Preview モードの表示例です。

図 3. 横置きした iPhone の iPhone Preview モードでの表示
横置きした iPhone の iPhone Preview モードでの表示
横置きした iPhone の iPhone Preview モードでの表示

iPhone Preview モードを使うとかなりの時間の節約になります。なぜなら、このモードでは新しい設計案を素早くテストし、コンピューターを離れずにインタラクティブに開発できるからです。一方、実際の iPhone でアプリケーションを試しに実行する段階になると、Aptana の組み込みアプリケーション・サーバーが活躍します。このサーバーは Eclipse ツールバーの Run アイコンをクリックすると起動します。図 4 に、Eclipse で実行中のアプリケーション・サーバーを示します。

図 4. ページをホストし、URL が含まれた E メールを作成する Aptana の iPhone Application Server
ページをホストし、URL が含まれた E メールを作成する Aptana の iPhone Application Server

WiFi 接続でローカル・ネットワークに接続されている iPhone は、サーバー・ウィンドウに表示された URL にアクセスすることができます。E-mail this url をクリックして、お持ちの iPhone の E メール・アカウントにメッセージを送信してみてください。受信した E メールのなかにあるリンクをタップすると、iPhone の Web ブラウザーにアプリケーションが立ち上がります。

iUi のデモ: 映画館情報の Web アプリケーション

Aptana のスターター・アプリケーションには iPhone 固有の HTML ファイルと CSS ファイルが含まれていますが、これらのファイルの機能には限りがあります。そこで、それよりも有効な手段となるのが iUi フレームワークを使うことです。iUi には、iPhone 特有のインターフェースを正確に再現するカスタム・ウィジェットと JavaScript エフェクトが豊富に揃っています。

ダウンロードした iUi ディストリビューション (iui-0.13.tar) を解凍して、ファイルを Eclipse の iDoc Project にコピーしてください。図 5 に、iUi が含まれた Project を示します。

図 5. iUi フレームワークおよびサンプル・プロジェクトが含まれた iDoc Project
iUi フレームワークおよびサンプル・プロジェクトが含まれた iDoc Project

上記の図で展開されている samples フォルダー内の iUi 向けデモ用 Web アプリケーションには、音楽ブラウザー、映画館情報、そして Digg のようなサイトがあります。これらのアプリケーションは、Aptana の iPhone Preview モードで Eclipse に表示することができます。図 6 に示すのは、映画館情報の Web アプリケーション (samples/theaters/index.html) の検索ページです。

図 6. iUi による映画館情報のサンプル Web アプリケーション
iUi による映画館情報のサンプル Web アプリケーション
iUi による映画館情報のサンプル Web アプリケーション

このデモが iPhone 特有のルック・アンド・フィールにどれだけ似ているかに注目してください。事前にパッケージ化されたこれらのウィジェットによって、iPhone Web アプリケーションを迅速に開発することが可能になります。

UI の設計

この記事では例として、iDoc という名前の iPhone 用 Javadoc ビューアーを作成します。Sun Microsystems の標準 Javadoc 生成プログラムを使ってきちんと作成された HTML ファイルはデスクトップでの見栄えは素晴らしいものの、iPhone でナビゲートしたり内容を読んだりするには困難です。そこで、iDoc では iPhone で使いやすい Javadoc を生成します。この Javadoc は、地下鉄でアプリケーション・プログラミング・インターフェース (API) をブラウズするのにも、一緒に組んでいるプログラミング・チームのオブザーバーが参加できるようにするのにも最適です。

iPhone ヒューマン・インターフェースについての指針

iDoc の UI を設計し始める前に、iPhone の開発を通常の Web 開発とは違うものにしている理由を理解することが重要です。その理由をわかりやすく要約しているのが、Apple の iPhone Dev Center (「参考文献」を参照) から引用した図 7 です。つまり、指はマウスとは違うのです。そのためデスクトップ・アプリケーションで見られるようなピクセルの精密さは不要になり、タップ操作 (指で軽くたたくこと)、フリック操作 (指で軽くなぞること)、そしてピンチ操作 (指でつまむようにすること) によるリッチで新しいユーザーとの対話モデルが可能になります。さらにユーザーと行動を共にする iPhone は気の散るような環境で使われることも多いため、目的の情報に素早く簡単にアクセスできるアプリケーションでなければなりません。

図 7. 指はマウスではありません
指はマウスではありません
指はマウスではありません

Apple の iPhone Human Interface Guidelines (「参考文献」を参照) では、iPhone Web コンテンツとして以下の 3 つのタイプを定義しています。

iPhone の Safari で表示可能なコンテンツ
ページの一部が Adobe Flash や Java™ アプレットといったサポートされないプラグインに依存しているとしても適切に表示することが可能な Web ページであれば、このタイプに該当します。
iPhone の Safari 用に最適化されたコンテンツ
コンテンツの大きさを iPhone に合うように適切に調整し、iPhone でサポートしてないプラグインには依存してない Web ページのことです。
iPhone アプリケーション
iPhone のルック・アンド・フィールをエミュレートし、必要に応じて電話、E メール、Google マップなどの iPhone サービスと統合する、ネイティブ・アプリケーションに似た Web ページのことです。

標準 Javadoc ページは上記のうち、最初のカテゴリー「iPhone の Safari で表示可能なコンテンツ」に分類されます。なぜなら、正しく表示することはできますが、該当する情報を見つけるにはかなりのピンチ操作とフリック操作が必要になるからです。iDoc では、完全な iPhone アプリケーションを目指します。他のサービスと統合する可能性はないものの、iDoc のインターフェースは iPhone にすんなり馴染みます。

iDoc の UI

iPhone をターゲットにするときに大事な点は、焦点から外れないようにすることです。アプリケーションに考えられるあらゆる機能を組み込もうとするのではなく、特定のタスクを素早く実現するアプリケーションでなければなりません。iDoc では、クラス名、メソッド名、メソッド・シグニチャー、コメントなどの Java クラスに関する基本的な文書をユーザーが見つけられるようにする必要があります。この情報は、宛先となる詳細ページに至るまでの 3 レベルのナビゲーションで提供します。

パッケージのナビゲーション
最上位にあるパッケージ
クラスのナビゲーション
パッケージに含まれるクラス、インターフェース、例外、エラー
クラス詳細のナビゲーション
クラスに含まれる説明、フィールド、コンストラクター、メソッド
詳細ページ
コメント、シグニチャー、パラメーター

iDoc を整然とした状態に保ち、タスクに焦点を合わせるため、iDoc では従来の Javadoc 機能のいくつかはサポートしていません。例えば、パッケージを説明するコメントは表示されません。大抵の場合、これらのコメントは情報として役に立たないものだったり (acme.client にクライアント・コードが含まれるなど)、コメント自体がまったくなかったりするため、iDoc からは除外してインターフェースを単純にしているのは当然な話です。

3 レベルのナビゲーションについては、画面いっぱいに表示される Edge-to-Edge リストを使用します。これはネイティブ iPhone アプリケーションではお馴染みのリストで、連絡先や E メール、それに音楽をブラウズする際に使用されています。Edge-to-Edge リストではいずれも高さが 44 ピクセルの同じサイズの行に項目が表示され、大量の情報をスクロールしやすくなっています。Apple の iPhone Human Interface Guidelines には、フォント、フォント・サイズ、境界線の間隔をはじめ、エッジ・ツー・エッジ・リストの構成基準が記載されています。これらの構成基準を CSS と JavaScript 言語で実装する iUi フレームワークでは、iPhone 特有のコンポーネントのように表示される単純な HTML リストを作成することができます。

リスト 1 に、ページ・ヘッダー、そして java.applet および java.rmi パッケージの最初の 2 レベルのナビゲーションを記載します。

リスト 1. ページ・ヘッダーと最初の 2 レベルのナビゲーションが含まれる HTML 文書
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>iDoc</title>
<meta name="viewport" content="width=320; initial-scale=1.0; 
   maximum-scale=1.0;
   user-scalable=0;"/>
<style type="text/css" media="screen">@import 
   "iui/iui.css";</style>
<style type="text/css" media="screen">@import 
   "iDoc.css";</style>
<script type="application/x-javascript" 
   src="iui/iui.js"></script>
</head>

<body onclick="console.log('Hello', event.target);">
   <div class="toolbar">
     <h1 id="pageTitle"></h1>
     <a id="backButton" class="button" 
        href="#"></a>
   </div>
  <ul id="home" title="Packages" selected="true">
      <li><a href="#java.applet">java.applet</a></li>
      <!-- more packages...-->
      <li><a href="#java.rmi">java.rmi</a></li>
  </ul>
  <ul id="java.applet" title="java.applet">
      <li class="group">Interfaces</li>
      <li><a href="java.applet.AppletContext.html">
         AppletContext</a></li>
      <li><a href="java.applet.AppletStub.html">
         AppletStub</a></li>
      <li><a href="java.applet.AudioClip.html">
         AudioClip</a></li>
      <li class="group">Classes</li>
      <li><a href="java.applet.Applet.html">Applet
         </a></li>
      <li><a href="java.applet.Applet.AccessibleApplet.html">
         AccessibleApplet</a></li>
  </ul>
  <ul id="java.rmi" title="java.rmi">
      <li class="group">Interfaces</li>
      <li><a href="java.rmi.Remote.html">
         Remote</a></li>
      <li class="group">Classes</li>
      <li><a href="java.rmi.MarshalledObject.html">
         MarshalledObject</a></li>
      <li><a href="java.rmi.Naming.html">
         Naming</a></li>
      <li><a href="java.rmi.RMISecurityManager.html">
         RMISecurityManager</a></li>
      <li class="group">Exceptions</li>
      <li><a href="java.rmi.AccessException.html">
         AccessException</a></li>
      <li><a href="java.rmi.AlreadyBoundException.html">
         AlreadyBoundException</a></li>
      <li><a href="java.rmi.ConnectException.html">
         ConnectException</a></li>
      <li><a href="java.rmi.ConnectIOException.html">
         ConnectIOException</a></li>
      <li><a href="java.rmi.MarshalException.html">
         MarshalException</a></li>
      <li><a href="java.rmi.NoSuchObjectException.html">
         NoSuchObjectException</a></li>
      <li><a href="java.rmi.NotBoundException.html">
         NotBoundException</a></li>
      <li><a href="java.rmi.RemoteException.html">
         RemoteException</a></li>
      <li><a href="java.rmi.RMISecurityException.html">
         RMISecurityException</a></li>
      <li><a href="java.rmi.ServerError.html">
         ServerError</a></li>
      <li><a href="java.rmi.ServerException.html">
         ServerException</a></li>
      <li><a href="java.rmi.ServerRuntimeException.html">
         ServerRuntimeException</a></li>
      <li><a href="java.rmi.StubNotFoundException.html">
         StubNotFoundException</a></li>
      <li><a href="java.rmi.UnexpectedException.html">
         UnexpectedException</a></li>
      <li><a href="java.rmi.UnknownHostException.html">
         UnknownHostException</a></li>
      <li><a href="java.rmi.UnmarshalException.html">
         UnmarshalException</a></li>
  </ul>

図 8 は、リスト 1 の HTML 文書の最上位レベルのナビゲーションです。このナビゲーションで、エッジ・ツー・エッジ・リストを使ってパッケージを選択します。

図 8. ネイティブ iPhone アプリケーションにそっくりな Javadoc パッケージのナビゲーション
Navigate Javadoc packages just like a native iPhone application
Navigate Javadoc packages just like a native iPhone application

図 9 は、iPhone Preview モードでの java.rmi パッケージの表示です。

図 9. java.rmi パッケージに含まれるインターフェース、クラス、例外のナビゲーション
java.rmi パッケージに含まれるインターフェース、クラス、例外のナビゲーション
java.rmi パッケージに含まれるインターフェース、クラス、例外のナビゲーション

iDoc の宛先詳細ページでは iPhone のもう 1 つのリストである角を丸くした Rounded-Rectangle リストを使用します。情報をグループ分けする上で便利なこのリストは、iPhone のすべての設定パネルで使用されています。メソッド・シグニチャーとパラメーターおよび例外のリストを分けるには、この Rounded-Rectangle リストを使用します。しかし、V0.13 の iUi でサポートしている Rounded-Rectangle リストは、フォーム入力用のみなので、このリストを静的テキストに使うと崩れたフォーマットのブロックが作成されてしまいます。そこで、このリストに静的テキストを表示するため、CSS をカスタム iDoc.css ファイル (リスト 2 を参照) で拡張して textRow 要素を追加します。

リスト 2. 静的テキストを正しく表示するためのカスタムの textRow CSS 拡張
/* Adding a new row CSS style to iUi for displaying blocks of text */
.textRow  {
    position: relative;
    border-bottom: 1px solid #999999;
    -webkit-border-radius: 0;
    text-align: right;
}

.textRow > p {
    text-align: left;
    margin: 5px 8px 5px 10px;
    padding: 0px 0px 0px 0px;
}


fieldset > .textRow:last-child {
    border-bottom: none !important;
}

リスト 3 は、java.math.BigDecimal のコンストラクター・メソッドのうちの 1 つに対応する詳細ページです。

リスト 3. textRow 要素を使用した HTML 詳細ページ
<div id="java.math.BigDecimal(long,java.math.MathContext)" title="BigDecimal"
        class="panel">
    <fieldset>
        <div class="textRow"><p><b>
           public BigDecimal(long, MathContext)</b></p></div>
        <div class="textRow"><p>Translates a 
           <code>long</code> into a
        <code>BigDecimal</code>, with rounding according to the context settings.
        The scale of the <code>BigDecimal</code>, before any rounding, is zero.
      </p></div>
    </fieldset>
    <h2>Parameters</h2>
    <fieldset>
        <div class="textRow"><p><b>long val
           </b>: <code>long</code> value to be converted
         to <code>BigDecimal</code>.</p></div>
        <div class="textRow"><p><b>MathContext mc
           </b>: the context to use.</p></div>
    </fieldset>
    <h2>Throws</h2>
    <fieldset>
        <div class="textRow"><p><b>ArithmeticException
           </b>: if the result is inexact but
    the rounding mode is <code>UNNECESSARY</code>.</p></div>
    </fieldset>
</div>

<fieldset> タグに含まれるすべてのものは、textRow <div> によって行が分割された Rounded-Rectangle リスト内に表示され、<h2> タグで囲まれたヘディングがグループ・ラベルとしてリストの上に表示されます。その結果、ページの表示は図 10 のようになります。

図 10. java.math.BigDecimal のコンストラクター詳細ビュー
java.math.BigDecimal のコンストラクター詳細ビュー
java.math.BigDecimal のコンストラクター詳細ビュー

このように、3 つのレベルのナビゲーションと宛先詳細ページで UI が構成される iDoc では、ユーザーを特定の作業に集中させることができます。さらに iUi フレームワークとカスタム CSS を利用すると、その表示はネイティブ iPhone アプリケーション同様となります。

iDoc の開発

UI の設計が終わったところで、次に必要となるのは HTML ファイルを生成するコードです。そこで、Sun の javadoc コマンドに追加する単純なドックレットを作成します。この例では標準 java.* パッケージを使いますが、iDoc ではあらゆるソース・コードから Javadoc を生成することが可能です。OpenJDK ソース・コード (「参考文献」を参照) を使用する理由は、これが一般に普及していて、Javadoc を GPL (GNU Public License) V2 ライセンスによって生成、配布できるようになっているからです。

iDoc で単純にパッケージとクラスを繰り返し処理し、前述したフォーマットの静的 HTML ページを出力するためのメソッドを呼び出してください。リスト 4 に、宛先詳細ページを出力する場合のメソッドを記載します。

リスト 4. 詳細ページを出力するドックレット・コード
private void printDetail(PrintStream p, ProgramElementDoc doc, 
    String id, String name) {
    divHeader(p, id, name, "panel");
    textHeader(p, null);
    textRow(p, getSignature(doc));
    textRow(p, getCommentText(doc.commentText()));
    textFooter(p);
    if (doc instanceof ExecutableMemberDoc) {
        printMethodDetail(p, (ExecutableMemberDoc) doc);
    }
    divFooter(p);
}

private void printMethodDetail(PrintStream p, ExecutableMemberDoc field) {
    if (field.parameters().length > 0) {
        textHeader(p, "Parameters");
        for (int i=0; i<field.paramTags().length; i++) {
            textRow(p, "<b>" + field.parameters()[i].typeName() + " "
                    + field.paramTags()[i].parameterName()
                    + "</b>: "
            + getCommentText(field.paramTags()[i].parameterComment()));
        }
        textFooter(p);
    }
    if (field.throwsTags().length > 0) {
        textHeader(p, "Throws");
        for (int i=0; i<field.throwsTags().length; i++) {
            textRow(p, "<b>" +  field.throwsTags()[i].exceptionName()
                    + "</b>: "
            + getCommentText(field.throwsTags()[i].exceptionComment()));
        }
        textFooter(p);
    }
}

上記のコードは、printDetail() がクラスの説明、フィールド、コンストラクター、メソッドの出力を処理するように一般化されています。コンストラクターとメソッドは ExecutableMemberDoc のサブクラスであるため、それぞれのパラメーターとスローされた例外についての追加情報が出力されます。

パフォーマンス上の問題

Aptana の iPhone Preview モードは出力されたファイルのデバッグに役立ちます。繰り返し処理が終わるたびに、すぐにアプリケーションの至るところをクリックして設計したインターフェースとの矛盾を見つけることができるからです。ただし、Preview モードを使用すると、パフォーマンス上の問題が隠されてしまう可能性があります。最近のコンピューターの処理速度は、iPhone に搭載された620-MHz のARM プロセッサーの 3 倍から 5 倍の速さです。さらにユーザーが時間のかかるセルラー・ネットワークでページをダウンロードすることもよくあるので、アプリケーションを実際の iPhone で実行することが肝心です。

iPhone で iDoc を表示してみると、非常に大きな HTML ファイルを出力するときに動画が飛んでパフォーマンスが劣化することがわかります。この問題を修正するには、パッケージ名/クラス名をナビゲートするためのメイン・ファイルを 1 つ作成し、それぞれのクラスごとにコメントとメソッドの詳細が含まれる個別のファイルを作成してください (リスト 5 を参照)。このプロセスでは多数のファイルが作成されることになりますが、個々のファイルはサイズが小さいのでアプリケーションは円滑に動作します。

リスト 5. 各パッケージを繰り返し処理してからクラス別のファイルを作成するドックレット・コード
out = new FileOutputStream(index);
p = new PrintStream(out);
printHeader(p);

PackageDoc[] packages = root.specifiedPackages();
Arrays.sort(packages);

printPackages(p, packages);

for (int i=0; i<packages.length; i++) {
    printPackageDetail(p, packages[i]);
}
for (int i=0; i<packages.length; i++) {
    ClassDoc[] classes = packages[i].allClasses();
    Arrays.sort(classes);
    for (int j=0; j<classes.length; j++) {
        // Creating a separate file for each class.
        PrintStream p2 = new PrintStream(new FileOutputStream(getFilename(classes[j])));
        printClassDetail(p2, classes[j]);
        p2.close();
    }
}
printFooter(p);
p.close();

iDoc の実行

上記のようにパフォーマンスを強化したら、いよいよ iDoc を実行する番です。OpenJDK で合計 51 の java.* および javax.* パッケージの Javadoc (1,304 のクラスに相当) を生成した後、すべてを Web サーバーにアップロードしてください。ファイルのサイズは 16 MB を超えますが、メインのナビゲーション・ページはわずか 112 KB で、個々のクラス詳細ページの平均サイズは 13 KB しかありません。そのため、EDGE ネットワークを使用している場合でも、アプリケーションの応答性はかなり優れた結果となります。iPhone を入手したら、iDoc サイト (「参考文献」を参照) にアクセスして試してみてください。あるいは iDoc をダウンロードして、自作のコード・ベースを対象に iPhone 固有の Javadoc を生成することもできます。図 11 に、完成したアプリケーションを示します。

図 11. 51 のパッケージすべてを網羅した iPhone 対応 Javadoc
51 のパッケージすべてを網羅した iPhone 対応 Javadoc
51 のパッケージすべてを網羅した iPhone 対応 Javadoc

iDoc の拡張としては、Java 5 Generics の表示サポートや、Javadoc コメントに含まれるタグを取り込んでページ間のリンクを実装するなどの機能が考えられます。iDoc の機能追加に興味がある方は、オンラインでソース・コードの完全版を入手してください (「参考文献」を参照)。

これからの iPhone 開発の行方

2007年10月、Steve Jobs 氏は Apple が 2008年2月に iPhone SDK をリリースすると発表しました。この記事は 2007年12月に執筆しているため、SDK の詳細はわずかなことしかわかりませんが、SDK によって Safari がなくても iPhone 上でネイティブに動作するアプリケーションを作成できるようになります。基礎となる iPhone アーキテクチャーから考えると、開発プラットフォームは Mac OS X と同じく Cocoa と Objective-C になるでしょう。Apple 経営陣の最近のコメントによると、サード・パーティー・アプリケーションには何らかの認証プロセスが必要になるようです。

高度なアニメーション、グラフィック、そしてネットワーク・アクセスが必要なアプリケーションには、iPhone 上でネイティブに実行することによるメリットがありますが、SDK がリリースされても iPhone を Web 上で開発することに魅力があることには変わりありません。Web アプリケーションは作成しやすく、デプロイするのも簡単です。Aptana や iUi などのツールが開発を単純化し、Web アプリケーションの作成を素早くできるようにします。iDoc で実証したように、SDK のリリースを待つ必要はありません。完全な機能を備え、iPhone 独特のルック・アンド・フィールを持つ iPhone Web アプリケーションは、現在利用できるツールを使って作成することができます。


ダウンロード可能なリソース


関連トピック

  • OpenJDK は、Sun Microsystems によってリリースされているオープンソースの Java 開発キットです。
  • Eclipse の推奨読み物リスト」を読んでください。
  • Eclipse の初心者は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源とアーキテクチャー、そしてプラグインで Eclipse を拡張する方法を学べます。
  • IBM developerWorks の Eclipse project resources を調べて、Eclipse のスキルを磨いてください。
  • オープンソース技術を使用して開発し、IBM の製品と併用するときに役立つ広範囲のハウツー情報、ツール、およびプロジェクト・アップデートについては、developerWorks Open source ゾーンを参照してください。
  • iUi フレームワークの最新バージョンをダウンロードしてください。
  • IBM alphaWorksEclipse 技術の最新ダウンロード を調べてください。
  • Eclipse Foundation から Eclipse Platform およびその他のプロジェクトをダウンロードしてください。
  • IBM 製品の評価版をダウンロードして、DB2®、Lotus®、Rational®、Tivoli®、および WebSphere® のアプリケーション開発ツールとミドルウェア製品を使ってみてください。

コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source, Java technology
ArticleID=291579
ArticleTitle=Eclipse で開発する iPhone の Web アプリケーション
publish-date=01292008