Sep 22 2013

Xcode 5 で以前のプロジェクトをビルドしてみる

Version : Xcode 5.0
Xcode5

iOS 7 のリリースと同時に開発環境である Xcode も Ver.5 になりました。Ver.4 時代に作ったプロジェクトはそのままビルドできるでしょうか? また、iOS 7 対応でビルドしようとすると不具合はないでしょうか? その辺り気になったのでまずはインストールして過去のプロジェクトをビルドして動かしてみました。


Pocket

9/18 より Xcode 5 も Mac App Store からダウンロードできるようになりました。すでに Xcode 4 が入っている場合にはアップデートインストールになるため、古い Xcode 4 は消されてしまいます。

Xcode 5 に完全に乗り換えるのは不安だ、、、という場合にはアプリケーションフォルダの Xcode.app を Xcode 4.app などにコピーしておくと両方残しておくことが可能です。私の場合は、下図のように Xcode 4.app という名前でコピーした後に(この時点では Xcode 4.app も Xcode.app も 4 です)、App Store から Xcode 5 にアップデートしました(この時点で Xcode.app だけが 5 になります)。

アプリケーション-2

 

 

Xcode 4 で開発をした FaceSync というアプリを Xcode 5 で読み込ませてみました。

じゃじゃん。何の問題もなく読み込んで、ビルドも今までどおりできました。実機(iPhone 4S, iOS6)につないで動かしてもまったく問題なしです。Xcode 4 と併用しようかと思っていましたが 、Xcode 5 だけでよさげな印象です。(とはいえまだちょっとしか触っていないのでしばらくは共存しておく予定)

FaceSync.xcodeproj_—_FriendTableViewController.xib

過去のプロジェクトも問題なく読み込めてビルドもできました。Xcode 5 の使い方もそれほど変わっていない印象。

 

ビルド設定を見てみると、iPhone 5s に対応した様子が見て取れます。

FaceSync.xcodeproj

アーキテクチャの選択に arm64 が追加されています。これは iPhone 5s で使われている最新の ARM v8 64bit アーキテクチャのことです。試しにこれを選んでみると、、、

スクリーンショット_2013_09_21_18_55

警告が出ました。どうやら、現在のプロジェクトは iOS 6.x をターゲットにしているため警告が出たようです。64bit アーキテクチャのビルドを行うためには iOS 7 をターゲットにしなくてはならないようです。CPU アーキテクチャ、iOS バージョン、画面の大きさを表にするとこんな感じでしょうか。

名称未設定

iPhone 5s の 64bit ネイティブに対応しようとすると、iOS 7 以降をターゲットにせざるを得ません。また、iOS 7 は iPhone 4 から対応しているので、iOS 6 と同じく 3.5inch, 3.5 inch retina, 4inch retina を考慮する必要があります。iPhone 5s はこれまでの 32bit アプリケーションもそのまま動きますので、64bit の恩恵が必要ないアプリでは armv7, armv7s の iOS6 アプリのままでもよいのかもしれませんね。

一方で急激なスピードで iOS 7 が普及しているらしく、iOS の中でわずか1日で iOS 7 が 35% ものシェアに達しているようです。そう考えると、iOS 7 オンリーの対応でもよいのかもしれませんね。

 

Xcode 5 から iOS 7 シミュレータが同梱されています。FaceSync が iOS 7 で動作するかどうかを確認したいところです。実は開発者向けには Xcode 5 のベータ版と iOS 7 のベータ版が配布されているので、もっと前に確認しておけよ(#゚Д゚)ゴルァ!! と言われそうですが、そこは個人開発者なもんで日常使いのマシンと開発マシンが同一だったり、iPhone も自前のものしかないなどの理由でなかなか踏み出せないのですよ…。うぅ。

気を取り直して、シミュレータの言語を日本語にしておきます。これは、シミュレータ上で動いている iOS の設定画面から行います。実機と同じですね。

スクリーンショット_2013_09_21_19_08

 

 

さっそくシミュレータで動作を見てみました。

結論から言うと、動作自体には問題がないのですが見た目に大きな問題が。以下に iOS 7 – 4inch, iOS 7 – 3.5inch, iOS6 – 3.5inch(もともとの動作環境)の順に画面を載せます。

ios7_4inch_2

うーむ、ナビゲーションバーが分厚くなったせいか画面の上部が切れてしまいました。また、ボタンもボタンらしさがなくなっており、ボタンだと気づかないデザインです。iOS 7 からフラットデザインになったので立体的なボタンなどは排除されていますが、押せるところと押せないところが分かりにくくならないような工夫が必要でそうです。とはいえ iOS 7 対応のすべてのアプリが同じ仕様なので、自分だけが逸脱しないことも重要ですね。Apple の UI ガイドラインは厳しいですし。

ios7_3.5inch 2

縦が狭くなって余白がちょうどよくなった以外は、基本的には同じです。

ios6_3.5inch 2

これがもともとの想定環境なので、すべての情報が最適なレイアウトで表示されています。

 

現在 FaceSync は公開を停止していまして、iOS 7 への対応をきちんとしてから再開しようかと思っています。iOS の違いや画面の違いをどう吸収するかを勉強して対応したいと思います。

ゆるゆると頑張ります…。

 

Pocket

コメントを残す