iPhoneアプリをiPadに移植するためのヒント

ほんの数日前、私は1つの小さなアプリケーションをiPhoneからiPadに移植しなければなりませんでした。 一般に、すべてが非常に簡単に進みましたが、私が踏まなかったレーキがいくつかありました。 したがって、上記の移植に関するいくつかのヒントを提供したいと思います。 この短い記事に基づいて、私自身のヒントとコメントをいくつか追加しました。

ヒント1:nibファイル。


Appleのアドバイスに従い、「 iPadの現在のターゲットをアップグレード... 」メニュー項目からアプリケーションの移植を開始します。このメニュー項目は、Xcodeの現在のターゲット( ターゲット )のコンテキストメニュー(気付いていない場合は右クリック)で簡単に見つけることができます。 したがって、ユーザーインターフェイスのすべてのnibファイルは「 Resources-iPad 」フォルダーに複製され、「 -iPad 」という接尾辞が各ファイルの名前に追加されます。

次のステップは、新しく作成したnibファイルを処理して、Appleタブレットの広々としたXGA画面で見栄えを良くすることです。 この時点で、いわば、2つのオプションがあります。 最初のオプションは、「 Interface Builder 」で各nibファイルを開き、「 File 」メニューで「 Create iPad Version 」を選択することです。 個人的には、私はまさにそれを行い、一般に、望ましい結果を達成しました。 ただし、インターネットは別の方法を推奨しています。各ペン先で、次のように属性を設定します。

[サブビューの自動サイズ変更]チェックマークに注意してください!


ここで、「 サブビューの自動サイズ変更」 チェックボックスに注意してください。名前が示すように、すべての子のサイズを自動的に変更するこの特定のUI( View )要素を担当します。 このオプションを使用すると、最上位レベルの( View )要素のサイズを変更するだけで、いわば要素の階層全体のサイズを変更できます。

さらに、ビューのサイズと場所の設定( View )をすぐに確認することをお勧めします。これまでサイズが320x480の画面のみに焦点を合わせていた場合、これらの設定はほとんどの場合正しく設定されないためです。

ビューのサイズと場所を忘れずに確認してください!


ヒント2:コントローラークラス。


コントローラークラスでは、おそらくユーザーインターフェイス要素を動的にサイズ変更する必要があります。 ここでは、次の条件付きコンパイル構成が役立ちます。

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2
// , iPad
#else
// – iPhone OS , 3.2
#endif


さらに、SDK 3.2では、 UIDeviceクラスの目立ったプロパティ-userInterfaceIdiomUIUserInterfaceIdiomなど)が登場しました。 タイプの定義は次のとおりです。

typedef enum {
UIUserInterfaceIdiomPhone,
UIUserInterfaceIdiomPad,
} UIUserInterfaceIdiom;


このプロパティの値を確認することで、特定のデバイスでiPadまたはiPhoneタイプのインターフェイスを使用すべきかどうかを簡単に確認できることが肉眼で確認できます。

ヒント3:ターゲット。


同じインターネット上で、アプリケーションが動作するデバイス(iPhone、iPad、またはその両方)を事前に決定することをお勧めします。 この設定はInfo.plistファイルで明示的に指定できますが、プロジェクトプロパティの[ ビルド ]タブと[ ターゲットデバイスファミリ ]項目を選択することで、コンパイラに明示的に選択を明示することをお勧めします。

iPadのみをサポートする場合でも、アイテム「 Base SDK 」で「 iPhone Device 3.2 」を指定する必要があります。 もちろん、少し奇妙に聞こえます(iPhoneはまだ3.1.3です)が、これはあなたが必要なポイントです。 いずれにせよ、このような素晴らしいオプション「 iPhone OS Deployment Target 」があります。これにより、アプリケーションが動作するはずのデバイスを区別することができます。iPadタブレットのみをサポートし、OSバージョン「3.2」を指定し、iPhone および iPadバージョンをサポートします「3.1.3」。

ヒント4:提出する。


アプリケーションをAppStoreに追加しようとすると、ほぼ間違いなく、よくある間違いに遭遇します。 ここにあります!

The binary you uploaded was invalid. The bundle did not contain an icon for iPhone and iPod of exactly 57x57 pixels, in .png format.

また、 iTunes Connectは、iPad用のサイズが72x72のアイコンがないことを通知する場合もあります。 実際には、両方のタイプのデバイスに両方のアイコンを提供する必要があります。 また、Xcodeはすべてのバンドルリソースを1つのルート、つまり「名前空間」にコピーするため、これら2つのリソース(iPhoneアイコンとiPadアイコン)の名前は異なるはずです。 個人的には、他のリソースと同様に、タブレットのアイコンに「 icon-iPad.png 」という名前を付けることをお勧めします。 その後、Info.plistファイルで、より大きなアイコンのファイル名、つまりこの場合は「 icon-iPad.png 」を指定する必要があります。

The binary you uploaded was invalid. The bundle identifier is already in use by a different software package.

注意:アプリケーションがiPhoneに移植可能であっても、iPadタブレットでのみ動作します。現在のiPhoneアプリケーションとの名前の競合を避けるために、 バンドル識別子を変更する必要があります。

さらに、このようなエラーの説明に出会いました:

Your binary indicates support for iPhone/iPod touch. You must provide an iPhone/iPod touch screenshot.

さらに、アプリケーションをダウンロードしたユーザーでもエラーが発生し、「iPadのみ」とマークされています。 おそらく答えは、Info.plistファイルの「 ターゲットデバイス 」設定が誤ってチェックされたという事実にあります。 ほとんどの場合、バグは修正されています。

ヒント5:スクリーンショット


そしてもちろん、Appleタブレットをサポートするアプリケーションの新しいバージョンにスクリーンショットを追加することを忘れないでください。これについては、一般的に、ダウンロードが成功した直後にiTunes Connectから通知されます。 ローカライズごとにスクリーンショットを追加する必要があることを忘れないでください!

ヒント6:オリエンテーション


もちろん、ここでは、デバイスの位置に応じたUIの向き(ポートレートとランドスケープ)を意味します。 事実、タブレットのリリースに伴い、Appleは推奨事項(iPadヒューマンインターフェイスガイドライン)に準拠するための要件を厳しくしました。現在、たとえば、可能性のあるあらゆる方向の作業を気にせずにアプリケーションを更新したい場合、Appleは強く推奨します。この機会を追加します。

まとめ


さて、上記のすべてのヒントが少なくとも少し時間を節約することを願っています。 素敵なポートがあります!

Source: https://habr.com/ru/post/J90861/


All Articles