0

iOS 開発の基礎を学んでおり、Web サービスに接続する簡単なアプリケーションを作成したいと考えています。私はWebアプリケーション側で多くの経験を積んでいるので、アプリがどのような種類のリクエストを送受信する必要があるかなどについては快適です.私が確信していない部分は、サービスの全体像アーキテクチャです-backed モバイル アプリケーションのように見えます。

アプリケーションを実行するとき、1 つの主要な要件があります。それは、ユーザーが Web サービスに対して認証を受ける必要があるということです。Web サービスはトークンを送り返すことができ、アプリはこれを後続のすべての要求に使用できます。ユーザーが一度ログインできるようにし、ログアウトしない限り、アプリがログインしたままになるようにします (つまり、トークンはそのデバイスに対して有効なままです)。

ユーザーがアプリケーションにログインするまでは、実際には単なるログイン画面である必要があります。ログアウトしても同じです。それ以外の場合、ログイン画面を見る必要はまったくありません。

だから私の質問は、これを構造化する正しい方法は何ですか?

AppDelegate、 を作成してLoginViewControllerに設定しrootViewControllerますか? 次に、ユーザーがログインしている場合は、アプリの残りのメイン ビューにプッシュしますか?

または、アプリの主要部分 (たとえば、UITabBarControllerいくつかのビューを含む) を初期化し、トークンを確認してから、トークンが利用できない場合はモーダル ログイン画面を表示しますか?

私がはっきりしていないのは、rootViewControllerこのようなアプリケーションではどうあるべきか、ユーザーがログインしているかどうかをアプリがどのように追跡し、アプリを開いたときにどの画面を表示するかを決定する方法です。

そのようなアプリをどのように構築するべきかについて、誰かが私に大まかな概要を教えてくれれば、本当に感謝しています。

ありがとう!

4

1 に答える 1

1

これを行う正しい方法はありません。どちらのフローもアプリケーションに適している可能性があります。ユーザーがログインしていない場合に表示される UI またはデータがあれば、それを最初の rootViewController として使用し、モーダル ログイン ダイアログを使用してユーザーにログインを強制します。一方、ユーザーがログインするまで表示するものが何もない場合、ユーザーが現在ログインしていない場合は、ログイン ビュー コントローラーを最初の rootViewController に設定します。

ログインしているユーザーを追跡するには、NSUserDefaults を利用して認証トークンを永続化する必要があります。次に、 application:didFinishLaunchingWithOptions: でアプリ デリゲートを呼び出し、NSUserDefaults でこのトークンを探し (サーバーで検証する可能性があります)、rootViewController を適切に設定します。

于 2013-04-12T17:52:53.587 に答える