ラベル その他 の投稿を表示しています。 すべての投稿を表示
ラベル その他 の投稿を表示しています。 すべての投稿を表示

2012年4月23日月曜日

Titanium StudioでのXcode選択を4.2から4.3へ変更

前回の投稿で、Titanium Studioを2.0.1にアップデートし、Xcode 4.3.2を使ってテストした話を書きました。その際に少しだけ面倒な手順を踏んだので、その話を書きましょう。

 

アップデートの順番が関係しているため、行なった順に説明します。最初はTitanium Mobile SDK 2.0.1.GAの通知が来て、それをインストールしました。続いて同GA2の通知が来て、それもインストールしました。この時点で、2.0.1はまったく使っていません。そのまま1.8.2を使い続けていると、Titanium Studio 2.0.1のアップデート通知が届きました。すぐにインストールして、少し使ってみます。問題なく使えました。

Titanium Studio 2.0.1は、Xcode 4.3に対応していたことを思い出し、Xcode 4.3をインストールすることにしました。アップルの開発者向けサイトにアクセスすると、最新版のXcode 4.3.2は、Mac App Storeからダウンロードする形になっていました。App Storeアプリを使ってアクセスしたら、ダウンロードのページが開きます。使用者の感想が書いてあって、Xcode 4.3からはボリューム直下の「Developer」フォルダがなくなり、アプリ内に移動したことへの文句などがありました。おかげで、そのことを知ることができました。

余談を少しだけ。文句を言ってる人もいましたが、「Developer」フォルダをアプリ内に持つことは良い改良だと思います。ボリューム直下の「Developer」フォルダだと、マシン上には、Xcodeアプリを1つだけしかインストールできません。インストールはできるのですが、細かな互換性の問題などで1つしか正常に動かないでしょう。反対にアプリ内に持つ形だと、バージョンの異なるXcodeアプリを何個でも併用できます。「Developer」フォルダが別々な場所にあることで、互いに影響を受けないからです。もちろん、別々のフォルダになっているため、追加するファイルを両方に入れなければならない欠点も生まれます。しかし、その欠点も、入れる入れないを別々に決められる利点と背中合わせなので、一概に欠点とは言えないでしょう。Xcodeに付属するアプリに関しても、別々に持つ形になりますが、これもバージョンの異なるアプリを混在できるというか、それぞれ別々に持てる点でメリットが大きいと言えます。

話を戻しましょう。Xcode 4.3.2のインストールです。Mac App Storeからダウンロードを選ぶと、ダウンロードからインストールまで自動で行なわれます。気付いたときには、「アプリケーション」フォルダ内にXcode 4.3.2がインストールされていました。

 

さて、ここからが本題です。Titanium Studio 2.0.1を先にインストールしたためか、Titanium Studioからシミュレータなどを起動させると、古いXcode 4.2が使われてしまいます。まあ当然の結果でしょう。試しに、古いXcode 4.2が入っている「Developer」フォルダをゴミ箱に入れてからTitanium Studioを動かしても、エラーが出るだけで、Xcode 4.3.2に切り替わってはくれません。これは少し残念だけど、当然でしょうね。

ビルドしたアプリを、とりあえずXcode 4.3.2動かそうと思い、古いXcode 4.2の「Developer」フォルダに入っているTitanium Mobile関係のファイルを、Xcode 4.3.2側にコピーしてみました。Xcode 4.3.2側というのは、Xcode 4.3.2アプリの中に含まれている同様の位置関係のフォルダです。その後、ビルドで生成されたアプリのXcodeプロジェクトファイルをXcode 4.3.2で開き、再ビルドしてシミュレータを起動できました。

 

こんな形で動かすのはダメですから、普通にXcode 4.3.2が使えるように設定しなければなりませんね。Titanium Studioの環境設定を探すと、それらしい設定がありました。環境設定で「Aptana Studio」の「Titanium」を開いて、上から2番目に「iOS SDK Home」の設定があります。設定中のパスの文字列から、ここが指定箇所だと判断できました。古いXcode 4.2のフォルダを指しています。ここをXcode 4.3.2のフォルダに変更すれば、Xcode 4.3.2のシミュレータなどが普通に呼び出されるはずです。

この部分の設定方法が少し変わっていて、普通には設定できません。xcode-selectコマンドを打つようにとの記述があります。「More Details」のリンクがあるので表示させると、詳しい説明ページがウェブブラウザで開きました。説明どおりに実行するために、ターミナルを動かします。最初はTitanium Studioに含まれているターミナルのウィンドウを使おうとしましたが、コピーした文字列をペーストできません。仕方がないので、Mac OS Xのターミナルを起動し、xcode-selectコマンドとオプション、Xcode 4.3.2のパスをペーストして実行しました。最後に、Titanium Studioの環境設定に戻り、「iOS SDK Home」設定の「Refresh」ボタンをクリックして切り替えが完了です。正しく切り替えられたか確認するために、プロジェクトをクリアーしてからビルドして、シミュレータを動かしました。Xcode 4.3.2に付属のシミュレータ5.1が起動して、正常動作が確認できました。ちなみにシミュレータ5.1は、新しいiPadのRetinaディスプレイに対応しています。

おそらくターミナルで実行したコマンドか「Refresh」ボタンが、必要なファイルをコピーしてくれるのでしょう。でも私の場合は、先に手作業でコピーしてしまったため、コピーしてくれるか確認ができませんでした。正しい方法で行なわないと、正常な動きを知ることができないという駄目の典型ですね。消して再実行すれば確認できないことはないのですが、面倒なので行ないません。興味のある方は試してみてください。

Xcode 4.3.2を先にインストールしてから、。Titanium Studioを2.0.1にアップデートすると、Xcode 4.3.2に切り替えてくれるのでしょうか。少し興味がありますけど、古いTitanium Studioを再インストールしないと調べられないので試しません。これも、興味のある方は試してみてください。試すというより、Xcode 4.3.2を先にインストールしてから、Titanium Studioをアップデートしたほうが良いでしょうね。

今回はXcode 4.2から4.3へ変更しましたが、同じ操作方法で逆の変更も可能です。試しに変更してみても、簡単に戻せるから安心でしょう。ただし、切り替え方法が少し面倒なので、もう少し簡単になると嬉しいのですが。

 

以上のように、もうXcode 4.3.2に切り替えて使っています。まだXcode 4.2.1を残してありますが、4.3.2で問題なく使えると判断した時点で削除する予定です。

2012年4月20日金曜日

Objective-Cも併用することに決めました

Titanium Mobileでアプリ開発を始め、さくさくと作れる点は非常に気に入っているのですが、バグとの格闘に疲れ気味です。また、最新iOSや純正の開発環境に追いつかず、少し前のバージョンで使う状況にも、少し残念な面があります。そこで、Objective-Cも勉強し、Xcodeのみでの開発もマスターすることにしました(ちなみに、Titanium Mobileによる開発でもXcodeが一部で使われてます)。

簡単にまとめると、Titanium Mobileでのアプリ開発と、Xcodeのみのアプリ開発を併用すると言うことです。使い分けの基準は、Titanium Mobileでバグに当りそうなときはXcodeのみ、それ以外はTitanium Mobileという感じでしょうか。同じ画面内でImageViewを複数使うようなアプリでは、Titanium Mobileを使わないようにします。

 

Xcodeのみの開発に必要が勉強は、昨日から始めました。まずObjective-Cの勉強で、友人から良い資料を教えてもらい、それを読み終わりました。約5時間ぐらいで、全体像が把握できました。記憶に頼ると忘れるので、特徴をメモしながらの勉強です。そのメモを見直すことで、いつでも素早く使えるようにしてます。Objective-Cは、もう大丈夫です。

続いて、アプリ開発の全体像と、フレームワークの理解です。簡単なアプリを作り始めていて、少しずつ理解していく感じでしょうか。少し悩んだのですが、Interface Builderを使わない開発を選択しました。現在進行中の、Titanium Mobileでのアプリ開発と似た形になりますね。2週間ぐらいで、だいたい把握できれば良いのですが。

 

Titanium Mobileでのアプリ開発の現状も、少しだけ。前の投稿で、画面回転したときに位置が変になるのは、ImageViewだけだと書きました。もっと違う条件でテストしていたら、Labelも位置が変になる症状を見付けました。もちろん、Labelだけなら問題ないでしょう。複数のImageViewと一緒に回転させるから、症状が出たのだと思います。これもImageViewのように、同じサイズのViewで囲むと直るのか、後でテストする予定です。

こんな風に格闘している間に、Titanium Mobile 2.0.1GAと同2が来ました。もしかして、今まで遭遇した症状が直っているのでしょうか。まあ、それ以外の部分でのバグ取りがまだでしょうから、さっそく使うわけにもいきませんね。Titanium Mobileは非常に開発しやすいだけに、今までの症状が2.0で消えることを、強く願っています。