2012-05-05 9 views
11

私は既に完全に機能するウェブサイトを開発しており、このサイトをiPhoneアプリケーション(および最終的には他のプラットフォーム)にエクスポートすることを検討しています。私が与えることができる最も良い例は、基本的にFacebookを作ったことです。今はFacebookのアプリ(ブラウザではなくiPhoneのホーム画面から起動されるアプリ)を作りたいと思います。だから、明らかに、私たちはすでにその機能を持っており、それを別のプラットフォームに変換するだけです。これはどれくらい難しいですか?まったく新しいソフトウェアを作って、すでに持っている既存のPHPコードをすべて無視する必要がありますか?このアプリは基本的にウェブサイトと同じになる予定ですが、いくつかのレイアウトの変更を除きます。カメラの機能にアクセスして写真をアップロードできるようにしたいと思うかもしれません。モバイルアプリケーションを除外すると思いますか?モバイルアプリケーションと、iPhoneのホーム画面から起動するアプリケーションとの間の描写についてはまだ理解していません。皆さんはどこから始めるべきか、これがどれほど難しいかについての提案はありますか?既存のコードを使用することで、われわれが望む機能を手に入れて自分で簡単にできるなら、私たちは喜ぶでしょう。既存のウェブサイトからモバイルアプリケーションを作成する

ありがとう

+0

objective-cをどれくらいよく知っていますか? –

+0

多くのC++バックグラウンドがあり、Ob-Cの違いなどについて一般的に理解しています。 –

答えて

9

を拒否することができるのは、始めましょう基礎。

モバイルサイトは、電話のウェブブラウザからアクセスできるウェブサイトです。 HTMLページはWebサーバーから提供されます(UIは電話レイアウト用に最適化されています)。

ネイティブアプリケーション(「アプリ」と呼ばれることもあります)は、本質的に電話にダウンロードされる実行可能アプリケーションです。 iPhoneの場合、これらはObjective-Cで書かれています。 Androidの場合はJavaで書かれています。

それが目的を使用してコンパイルする必要がありますiPhoneの「ホーム画面」から起動するアプリケーションのため-in:Windows Mobile用これらはC#で書かれている、など

ここであなたが直面している悪いニュースですC. Android/Javaと同じです。

- カメラにアクセスするには、Objective C(またはAndroid用Java)を使用してコンパイルする必要があります。だからここ

があなたのためにいくつかの良いニュースだ:

- あなたは簡単に、純粋にUIのフロントエンドであることと、ビジネスロジックのためのREST APIのモデルを使用して、既存のサーバー側のコードを呼び出すために、あなたのネイティブアプリを書くことができます。あなたは、あなたがアプリに公開する必要がある機能を公開するだけです。それは既存のコードベースを再利用してアプリケーションをよりシンプルにする1つの方法です。 RESTKitのようなObjective Cのフレームワークは、これを簡単にする良いものです。

- あなたのアプリを本当に安くすることができ、本質的にあなたのサイトのウェブブラウザにすることができますが、それはiPhone用にそれをカスタマイズしないとAppleによって承認されないことがあります。また、アプリのように機能することを期待しているiPhoneユーザーにとっては、貧弱な体験となるでしょう。私はこれをお勧めしません。

- 複数のプラットフォームにリリースする予定がある場合や、Objective Cプロジェクト(および今後のJavaプロジェクト)を維持する必要がない場合は、PhoneGap、Appcelerator Titanium、Sencha Touchなどを使用できます。これらは、Webテクノロジー(HTML 5)で書かれたアプリケーションをネイティブアプリにコンパイルするラッパーです。これらのHTML 5アプリケーションはカメラなどにアクセスできます。既存の開発者はObjective-Cを学ぶ必要はなく、既に持っているHTML/JavaScriptスキルを使用できます。これらの技術には多くの利点があります。欠点は、あなたのアプリがネイティブアプリと同じくらいよく見える/感じることができないか、電話の「クール」な機能を使用することです。それは良いモバイルウェブサイトのようなソーシャルを実行します。優れたUI /設計者がいる場合は、これらのWebテクノロジを使用してかなり良いものを作成できます。しかし、ネイティブアプリにウェブサイトをエミュレートしようとしているだけで、次のキラーゲームを作成していないのであれば、それはおそらく多くの理由であなたの最良の賭けです。

Googleのネイティブアプリとphonegap(またはsencha touch)の場合、賛否両論の情報がたくさんあります。それはおそらくあなたが学習を始めるのに良い場所です。

+0

元気です。これは私の研究が私に信じさせたようなものです。たまに人々は「アプリケーション」という言葉を軽く使っていますが、配布できるネイティブアプリケーションやモバイルサイトについて話しているかどうかは必ずしも明らかではありません。 –

0

によって異なります。基本的にUIWebViewsとカスタムスタイルシートを使用して、このアプリをウェブサイトのポータルにすることができます。これはFacebookのアプリが信じるものです。真のネイティブアプリケーションと同様に機能しませんが、メンテナンスを減らして目的を十分に果たすことができます。

1

App StoreのレビューGuideliness

https://developer.apple.com/appstore/resources/approval/guidelines.html#functionality

の参照節2.12 ...単にアプリケーションとしてバンドルされたWebサイトですアプリは...

+0

どのように分化されたfacebookアプリが対象ですか? –

+0

Facebookはウェブラッパーで動作していても、自分のアプリを電話にカスタマイズしました。ネイティブアプリが通常のウェブサイトを指し示す単なるウェブブラウザだった場合、それは拒否されるだろう。しかし、彼らのネイティブのアプリケーションであるSDKは、依然としてリソースを持っている会社にとっては、かなり不自由なものです。 – Joel

2

@Joelの優れた応答に加えて、主な機能がUIWebViewを使用してウェブサイトを閲覧することができれば、ユーザーにどのような機能を提供すればよいのかを最初に理解する必要があります。 @Teofiloはit is not allowedと言っているように、店のアプリ。現在、クロスプラットフォームアプリケーション(すなわちPhoneGap)を開発するためのさまざまなソリューションがあり、html5、ajaxなどのUIWebViewsなどのテクノロジーを使用してさまざまなプラットフォーム用のアプリケーションを開発できます。
ユーザーに提供したい機能のタイプによって異なりますが、ネイティブ開発の場合はアプリケーションとデバイスをより詳細に制御できますが、使用するのが便利なため、パフォーマンスは確かに最適です異なるプラットフォームで同じ結果を得るために、共通の機能を実装するのが簡単な場合は、クロスプラットフォームのソリューションです。バックエンドでどのような技術を使用するかは重要ではありませんが、重要なことは標準形式/プロトコル(つまりhttp/json)を使用することです。 これはちょうど私の見解ですが、私はそれが今日非常に繰り返されていることに気付いたので、誰かがこのトピックについての彼の見解を与えることができることを願っています。
しかし、良い質問です。