intelliJ IDEA
昨年マヤ暦が終わっちゃう記念で75%OFFセールがあったのでなんとなく買ってたのですが、せっかく買ったので触ってみました。
とりあえずはFlashプロジェクトでipaを作ってみたのですが、普段使ってるFlashDevelop(以下FD)との使い勝手の違いに悩まされましたので、その辺のメモ。
基本的なFlashプロジェクトの作り方は、katapadさんがまとめてくれているこちら記事どおりやったら問題なくできました。
IDEAでのFlashプロジェクトの作り方
ちょっとだけ悩んだのは、記事はver11.1でかかれていて、ボクは12.0.2で試したのでUIのレイアウトが微妙に異なってるところもありました。
具体的には、「ライブラリに追加」の項目での[+]ボタンの位置
11.1では下にあったのが、12.0.2では横になったようです。
11.1
![4d57a47b329187e7f7f342757014346b](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/4d57a47b329187e7f7f342757014346b.jpg?resize=500%2C503)
12.0.2
![12](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/12.jpg?resize=500%2C261)
■FlashMobileプロジェクトの手順
File->New Projectで、Other:FlashModuleを選択してNext
(ここではProject名はMobileTestにしとく)
![99965e99517bd4bf7b8b3dfb1a1f5767](https://i2.wp.com/memo.393.bz/wp-content/uploads/2013/02/99965e99517bd4bf7b8b3dfb1a1f5767-e1359683260234.png?resize=500%2C623)
Target PlattformをMobileに。
Pure actionScriptにチェック(チェックしないとmxmlになる)
FlexSDKは自分で用意して指定する
![f775311a67e35423decbf6b32301ab82](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/f775311a67e35423decbf6b32301ab82.jpg?resize=500%2C371)
■SWFの基本設定
swfのwidth、height、frameRateの設定はIDEから入力できるところはなさげ
SWFタグで指定するのがいいかも。
(指定しないと、width:500,height:375,frameRate:24になるっぽい)
package {
import flash.display.Sprite;
import flash.text.TextField;
[SWF(width="640",height="960",frameRate="60")]
public class MobileTest extends Sprite {
public function MobileTest() {
var textField:TextField = new TextField();
textField.text = "Hello, World";
addChild(textField);
this.graphics.beginFill(0xFF0000);
this.graphics.drawRect(0,0,100,100);
trace(stage.stageWidth, stage.stageHeight);
}
}
}
■書き出しの各種設定
File->Project Structure
Modules->MobileTest(app)を選択するとこんな画面
![ffe78124e78958bafdd8b7e059b1701f](https://i0.wp.com/memo.393.bz/wp-content/uploads/2013/02/ffe78124e78958bafdd8b7e059b1701f.jpg?resize=500%2C450)
iOSタブでプロビジョニングプロファイル,証明書ファイル,applicationXMLの設定などができる。
![1b0be155773854d9babde8eecd958658](https://i2.wp.com/memo.393.bz/wp-content/uploads/2013/02/1b0be155773854d9babde8eecd958658.jpg?resize=500%2C522)
applicationXMLはApplication descriptorでGeneratedにチェックが入ってると自動で生成してくれる。
ただ、IDE上で各種XMLの項目を設定する機能はないようなので、Generatedではなく、Custom templateを選択したほうがよさげ。
(GeneratedだとappIDがプロジェクト名なってしまうし)
Createボタンを押すとTemplateウィドウで基本的な設定ができる。
![9e7431335116ff1f25c06075e14a7b93](https://i0.wp.com/memo.393.bz/wp-content/uploads/2013/02/9e7431335116ff1f25c06075e14a7b93.png?resize=420%2C568)
これで任意のxmlファイルが生成されてipaのパッケージに使える。
(Templateで設定できなかった項目に関しては直接XMLを編集)
■実行
Edit Configrations…というところから設定可能
![Clipboard01](https://i2.wp.com/memo.393.bz/wp-content/uploads/2013/02/Clipboard01.jpg?resize=500%2C218)
こんな設定画面
![d60a6db2cace261ff99a595d7f5ea885](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/d60a6db2cace261ff99a595d7f5ea885.jpg?resize=500%2C384)
Run onという項目でEmulatorを選択すればPC上で確認できるのはありがたい。
(FDのモバイルプロジェクトだとできなかった気がする)
Emulatorには主要な端末データが入っていて、ステージサイズが設定されるっぽいのだけど実際に書き出されるSWFには反映されてないっぽい。
たとえばiPhoneRetinaに設定してRunするとEmulatorは幅:高さは640:960の枠サイズで表示されるけども、中に表示されるswfは(SWFタグを指定していないと)500:375で表示されてる。
明示的にSWFタグで幅と高さは指定してあげる必要がありそう。
実機テストは、
Run onの、iOS deviceにチェック
OptionsのDebug on device overをUSB,port:7936にチェック
PCにUSBでiPhoneを接続した状態で、Run->MobileTestを実行するとipaが生成されてiPhoneにインストールされるところまでやってくれる。
(USBのポート番号はデフォルトのままでうまくいった)
複数の端末をつないでるときは
must specify -device parameter when more than one device is available
というアラートがでた。
「複数の端末がつながってるときは指定デバイスのパラメータは必須」という意味らしい。
ちなみに、Run->Run MobileTestで生成されるipaの形式は、”ipa-test”
(もしくはipa-test-interpreter:fast_packagingにチェックした場合)
デバッグモードは、Run->Debug MobileTestで”ipa-debug”が生成
(もしくはipa-debug-interpreter:fast_packagingにチェックした場合)
store用やaddhoc用のipaを作るには、
Build->Package AIR Applicationを選択すると以下のウィンドウがでるので、
iOS package typeのセレクトボックスから選択可能。
![4f57fe8d9b3428da392bfe62d49fae61](https://i0.wp.com/memo.393.bz/wp-content/uploads/2013/02/4f57fe8d9b3428da392bfe62d49fae61.jpg?resize=500%2C303)
store用やaddhoc用のipaの実機へのインストールは手動でやるしかないみたい。
Runで生成される”ipa-test”だとパフォーマンスが落ちるので、addhocかstoreで動作テストしないといけなかった経験があるのでstore/addhocビルドを自動インストールする仕組みがないとちょっとめんどくさい気がする。。。
あとipaファイルの出力はデフォルトでoutフォルダとなるけど、outフォルダはIDEA上のProjectパネルには表示されない。
![dad6a6607501b64f71952382fd9feddb](https://i0.wp.com/memo.393.bz/wp-content/uploads/2013/02/dad6a6607501b64f71952382fd9feddb.png?resize=330%2C346)
見えて欲しいところだけど、プロジェクト上での出力フォルダと定義されたものはExcluded扱いとなるので無理っぽい。
(Project Structureパネルでも、Excludedを解除することもできない)
![e111a8b13e6608a09dc2d57ba7003c26](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/e111a8b13e6608a09dc2d57ba7003c26.jpg?resize=500%2C177)
表示するようにするにはProject Structureパネルで、
Projectを選択し、Project compiler output:の項目に記載されてるoutまでのファイルパスを削除する
![823904a7878a5d7ceeca0c7b0f877ffc](https://i2.wp.com/memo.393.bz/wp-content/uploads/2013/02/823904a7878a5d7ceeca0c7b0f877ffc.jpg?resize=500%2C385)
プロジェクト上での出力フォルダの定義を消しちゃうとどこに出力されることになるのか?と思うけど、Modules側のOutput folderで設定されていれば特に問題ないみたい
![8404208c0a32b8be4cd05208d0781efa](https://i0.wp.com/memo.393.bz/wp-content/uploads/2013/02/8404208c0a32b8be4cd05208d0781efa.jpg?resize=500%2C237)
IDEAを再起動するとoutフォルダが見えるようになります。
![bbf2cefc1496661e2f94c93ed2cf8e8c](https://i1.wp.com/memo.393.bz/wp-content/uploads/2013/02/bbf2cefc1496661e2f94c93ed2cf8e8c.png?resize=279%2C341)
挙動がよくわからなくて調べるのに結構苦労してるわけですが、まだIDEAに完全移行しようという気にはなれず。
もうちょっと触ってみないと、よさがわからない。