iPhoneアプリをJavascriptを使って開発、公開する方法で、Windowsで出来る方法を教えてください。

AppStoreへの登録が必須です。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/03/09 10:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:australiagc No.1

回答回数467ベストアンサー獲得回数90

ポイント60pt

これは、ウェブアプリを開発すると言うことではなく、AppStoreで公開/販売可能なAppleの正規認証アプリを開発すると言うことでしょうか?

それであれば、無理です。とりあえず、この記事を見ていただければJavascriptを使ったiPhoneアプリの開発にどういった制限があるか分かりやすいと思います↓

http://www.atmarkit.co.jp/fwcr/column/ore05/01.html


まずiPhoneアプリをAppStoreへ登録するには、AppleのiPhone開発者プログラムのページから申請を行う必要があります。

http://developer.apple.com/jp/iphone/program/


この審査/登録のシステムは、Xcode上でAppStoreのiPhoneアプリ用にコンパイルされ、

開発者ページから取得したcertificateを組み込まれたパッケージではないとアップロードできません。

Xcode上で全く同じiPhoneアプリのプロジェクトを間違ってデバグ用にコンパイルしてしまったり、

Xcodeのプロジェクトに組み込むcertificateが欠けていたり正しくなかった場合ですら、受け付けてもらえません。


そのソフトウェアパッケージを唯一作成できるXcode自体がWindowsでは動作しない上に、iPhoneSDKはObjectiveCにしか対応していません。

当然、他の言語、ましてやJavascript用のライブラリなどは存在していません。

更に言うなれば、Javascriptはあくまでスクリプト言語であってプログラミング言語ではありません。


ご存知かと思いますが、スクリプトはその言語を解釈してくれるプログラムが存在しないとただのテキストと同じです。

もしJavascriptを使ってプログラムを作成したいのであれば、まず先にJavascriptを解釈してくれるiPhoneアプリを開発しなくてはなりません。

幸い、iPhoneSDKにはSafariのブラウザ環境を再現できるUIWebViewというクラスがあり、Javascriptも当然読んでくれます。


結論を言うと、JavascriptでiPhoneアプリを開発してAppStoreで公開するには;

  • UIWebViewを使った、Javascriptの「受け皿」となるアプリを作る。(MacOS10.5以上およびXcode最新版が必要)
  • アプリ起動時に、リソースに予め保存しておいた(もしくは、初回起動時にサーバからダウンロード・保存した)JavascriptやHTMLのホームページのファイルをUIWebViewに読み込ませるようプログラムする。

上記の方法しかないと思われます。


この手段であれば、解説をしているサイトや書籍もありますのでいくつか参考までに↓

http://www.syuhari.jp/blog/archives/888

http://d.hatena.ne.jp/KishikawaKatsumi/20091229/1262052856

http://building-iphone-apps.labs.oreilly.com/


更に、このアプローチを簡易化するライブラリもあります↓

http://journal.mycom.co.jp/news/2009/05/28/031/index.html

id:dingding

ありがとうございます。だいぶ理解できてきました。

素直にMacを使うのが良さそうですね。

2010/03/02 18:23:02
  • id:b-wind
    >Javascriptはあくまでスクリプト言語であってプログラミング言語ではありません。
    言いたいことは分からなくもないが、すごい迷言だ。
  • id:australiagc
    b-wind さん、

    あは、そうですねw
    いやあつい・・・すみません!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません