2011-06-21 7 views
0

私は現在、AndroidとiOSの両方のアプリを開発していますが、事は...私はAndroidで始まりました。私のアプリは、異なるレイアウト(異なるGUIを持つ画面、あなたがアンドロイドに精通していない場合)、それらは非常に異なる内容を表示します。マップ、データベースからのデータを含むリスト、画像、ボタン付きのテキストフィールドなどがあります(ほとんどの場合、画面の向きが変わります)。iOSのWindows、Androidから複数のアクティビティアプリを構築する最も良い方法は?

問題は、iOSが付属しています:

  • にはどうすればIBActionsからより多くのウィンドウを作成するのですか? (これは正しいアプローチですか?)

  • 私はウィンドウを作成したら、どのように私は新しいインターフェイスを作成するのですか? (私は別の.xibファイルは必要ですか?)

  • ユーザーが1つのWindowsで終了したら、前のウィンドウは、メモリ内に残り、再び開くことができない場合はどうなりますか? (最初のウィンドウがそれを使用していなかったとしても、ナビゲーションタブを使うことはできますか?)これはiPhoneには戻るボタンがなく、アンドロイドはそれらに多くの依存しているので大きな問題です...

  • また、私のプログラムを複数のウィンドウで分割できない場合、私のアプリはビューを破壊して構築するために多くのメモリを使用しないでしょうか?

私はココアの開発に新たなんだと私はすでにそれらのすべてを1つのウィンドウ内で行われた(構文のみを教えるなど)Objective Cのプログラミング、シンプルなiPhoneのアプリについて、別の1(約本を読みました、プログラムでビューを変更する)と私は現在、別のものを読んでいるが、私は私の問題に簡単な答えを見つけることができませんよ...

私は私がobj-Cとどれだけ(iPhoneアプリを構築することを取得する意味しますちょっとした問題は、私がAndroidでもっと真っ直ぐ進歩してきたことから来ているということです。私がiOSプロジェクトを見るたびに、私はそれが完全な混乱のように見える、そしてdeveloper.apple.comのドキュメンテーションはあまり役に立たない、私は欲しいものを見つけることができない。

ホープ誰かがすでにこの経て、右方向に私を指すように喜んでいる、あなたに感謝!それは、Visual Studioの一部ですXAMARINをお試しください:

答えて

1

私はあなたがView Controller Programming Guideで始めることをお勧めしますアップルの開発者のウェブサイトで。私はあなたがそれが非常に役に立つと思うと思います。

は、あなたの質問に答えるために、あなたは独立して自分の意見のそれぞれを開発することができます。あなたはあなたの目的次第で、それぞれのファイルを開発することができます。私が今作業しているアプリでは、プログラムで開発したものと、NIBファイルから取り込んだものがあります。それはすべてあなた次第です。上記のガイドでは、両方のアプローチについて説明します。

ボタンを押すからロードビューについて、あなたはそれを行うことができます。使用するビューコントローラによっては、非常に簡単に実行できます。ナビゲーションコントローラ上では、たとえば、ビューのインスタンスを作成してスタックにプッシュするだけです。ビューが終了したら、それをポップアップして前のビューに戻します。

メモリに関しては、常に懸念されます。The Memory Management Programming Guideをご覧ください。

幸運。私は自分自身でAndroid開発を始めています。

+0

ありがとうございました!あなたがアンドロイドの助けが必要な場合は、私に教えてください! – CodeKrieger

+0

もう一度お邪魔しますが、クリス...別の画面につながる3つのボタンでメインメニューを作るにはどうすればいいですか?私のメインメニューは、Appロゴのタイトルイメージとイメージを使用する3つのボタンで構成されています...私はすでにボタンを機能させました(警告ダイアログを開きます)が、ドキュメントを読むと、画面の内容を変更する、それは正しいですか?どのように私はそれを行うのですか? Navベースのアプリケーションとテーブルビューを使用した例だけが見つかりました... – CodeKrieger

+0

@CodeKrieger - ナビゲーションコントロールを開始する場所として見てください。たとえば、3つのボタンをナビゲーションコントローラの最初のビューとしてビューに配置します。各ボタンのメソッドで、そのボタンに関連付けるビューコントローラを作成し、ビューコントローラスタックにプッシュします。これらのビューは、必要に応じてインタフェースビルダで個別に定義することができます。最終的には、ナビゲーションコントローラを捨てることを選択することもできますが、開始するには良い方法です。申し訳ありませんが、あなたに戻るにはとても時間がかかりました。 – Chris

-1

Flash Builderの4.5.1は、今、あなたは一つのアプリケーションを構築し、複数のデバイスに

UPDATEをコンパイルすることができます https://www.xamarin.com/

+0

しかし、これは本当に良いアプローチですか?私はそれを実際に見てきましたが、ゲームは素晴らしいですが、もっと複雑なアプリはどうですか?何人かは遅くなると言います...そして私は母国語での開発を好みます、つまり、私はiOS開発者になることを楽しみにしています... – CodeKrieger

+0

私は同意しますが、一度コードを作成して複数のプラットフォームにデプロイするには、Adobe Flash BuilderまたはPhoneGapのようなものを用意する必要があります – Khattab

1

クリスは既に素晴らしい答えを出していますが、私は特定の質問にアドレスを追加したい点がいくつかあります。

通常、iOSアプリケーションには1つのUIWindowしかありません。そのウィンドウ内に複数のビューを表示することができます。

アプリは、通常、いくつかのUIViewControllerサブクラスで管理されるコンテンツの価値のある論理スクリーンに編成されます。

各UIViewControllerインスタンスには、多くのサブビューを含むルートビューがあります。 UIViewControllerのビューは、Appleのコンテナビューコントローラクラス(UINavigationController、UITabBarController、UISplitViewControllerなど)のいずれかによって提供されるウィンドウまたは一部のフレームを埋めると予想されます。 UIViewControllerのビューを別のUIViewControllerのビューのサブビューとして追加しないでください。

ビューが表示されていない場合、アプリケーションがメモリ警告を受け取ると、UIViewControllerはそのビューをアンロードしようとします。クラスのライフサイクルメソッド(-viewDidUnloadなど)を参照してください。この動作をサポートして、メモリフットプリントを削減する必要があります。ビューがロードされていない状態でメモリ内にUIViewControllerを保持すると、オーバーヘッドが最小限に抑えられ、永続的な状態を維持でき、必要に応じて各コントローラのビューを再ロードできます。

通常、ビュー間で遷移するために、コントロールは(多くの場合、IBActionバインディングを介して)現在のビューコントローラにメッセージを送信します。現在のコントローラは、別のビューコントローラへの遷移をトリガします。これは、新しいView Controllerを作成し、それを現在のナビゲーションコントローラにプッシュするか、新しいコントローラをモーダルとして表示することで可能です。既存のコントローラーを参照しているかもしれません。以前のコントローラを明らかにするために、ナビゲーションスタックからそれ自体を却下するかもしれません。いくつかの親が目に見えるタブを切り替えるか、モーダルを消したり提示したりするまで、コントローラーの階層の上にメッセージを渡すことさえできます。

UIViewControllerのルートビューのサブビューを追加、削除、非表示、または移動して、IBActionに応答することで、より小さな遷移をトリガすることもできます。

+0

クリスが私に提供したドキュメントの一部を読んでいて、あなたが言うことのほとんどを得て、残念ながら私はまだ固執しています...私は思ったナビゲーションベースのアプリケーションが必要でしたが、ほとんどの例ではテーブルビューを使用していますが、そのようなものは使用していません...ドキュメントもテキストもコード例もありません...異なる画面につながる3つのボタンを持つメインメニューのような単純なことをしてください...私はまだそれを達成することはできません、任意のアイデア? – CodeKrieger

+0

ナビゲーションベースのアプリは正しい構造のように聞こえる。既存のView Controllerをルートコントローラとしてナビゲーションコントローラを作成します。これらのボタンに応答するIBActionメソッドで新しいView Controllerをナビゲーションコントローラにプッシュします。 – Jonah

+0

このようなnoobであることを申し訳ありませんが、そのような容易さでそれを言う...ハハハあなたはいくつかのサンプルコードを見つけることができますか? – CodeKrieger