2014年8月23日土曜日

[cocos2d-iphone]ついにXcodeから直接android用にビルド・デバッグできるようになるッ…!SpriteBuilder Pro の private beta開始

どうも@miyahira_goです。

最近、Objective-CでもAndroidのアプリがつくれるApportableが話題になってますが、
Apportableが出資している(?)SpriteBuilderもなかなかepicな進化を遂げてます。
なんてったって、Xcodeから直接android用にビルドできたり、gdbでデバッグできたりするんです





で、まだprivate beta test中ですが、SpriteBuilderのウェブサイトから参加待ちできるので、Objective-Cでandroidアプリ作りたい人は是非参加。


epicな機能が多すぎて、ドキュメントを読むだけでワクワクが止まらん…(まだ触ってないw)
とりあえずアツイ機能を簡単にまとめてみました。



Xcodeから直接Android用にビルドできる

黒い窓が怖い人に朗報!もうコマンドラインで「apportable load」って打たなくても、xcodeから直接ビルドできちゃいます。


なんでもXcode用のpluginも作成しているらしく、xcodeから離れることなくandroid用にビルドできるらしいです。
つか、このスクリーンショットのインパクトが凄いw

Xcodeからそのままブレークポイントが設定できたり、デバッガーでデバッグできたりする

黒い窓が怖い人にry
今でもコマンドラインでstep in, step outとかコード実行したりとかできるけど、
まぁXcode上でできた方が楽だよね!
あとvariables viewとbacktraceが表示されてるときっと超楽。


ブレークポイントも今でも、コマンドラインで設定・解除できたり、「apportable debug」実行時に設定してあるブレークポイントを読み込んで設定してくれたりと、
今でもある程度apporatableがやってくれるけど、もう少し強くなる(実行中も、設定・解除できるようになる、とか)と予想。

Objective-Cで簡単にAndroidのクラス・関数が利用できる

今のapportableでも、BridgeKit 使って、#if ANDROID とかでandroidだけで実行されるコードを追加できるから、目新しい機能じゃないかもだけど、
どちらにしてもアツイ機能なので紹介。
apportableの、Objective-Cからjavaのクラス・関数を呼び出せるシステムが、BridgeKitって言うんだけど、

まぁ例えばiOSでダイアログを表示したいときは以下のようにやるじゃん?
#if __CC_PLATFORM_IOS    // iOS用ビルド時には、__CC_PLATFORM_IOS = 1
UIAlertView *builder = [[UIAlertView alloc] initWithTitle: @"This is an alert" message:@"Alert"
    delegate:nil cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
[builder show];
#endif
「iOS用の処理は#if __CC_PLATFORM_IOS で囲むんだな」ってくらいの認識でOKです。

で、android。
#if __CC_PLATFORM_ANDROID    // ANDROID用ビルド時には、 __CC_PLATFORM_ANDROID = 1 
    dispatch_async(dispatch_get_main_queue(), ^{
        AndroidAlertDialogBuilder *builder = [[AndroidAlertDialogBuilder alloc] initWithContext:self theme:AndroidAlertDialogThemeHoloDark];
        [builder setTitleByCharSequence:@"This is an alert"];
        [builder setPositiveButton:@"Yes" onClickListener:nil];
        [builder setNegativeButton:@"No" onClickListener:nil];
        [builder show];
    });
#endif
という感じで、Android触ったことある人なら、「見覚えのあるクラスが…!」と思うだろうけど、そう、AndroidAlertDialogBuilderクラスがそのまま使えるんです。用意してくれてるんです。
ちょっとandroidの機能が使いたいだけなのに、わざわざplugin作ってjarにしないといけない、ってことがないのは素敵だね!!!!

(dispatch_asyncしないと、uithreadで実行されないのかな…要確認)

しかも、なんでもここらへんの追加・拡張してあるクラス・関数は
Xcodeの補完も効いてくれるらしいです。さすがSpriteBuilder!




というわけで、新しいSpirteBuilder Pro/Apportable のカッコよすぎる機能を
いくつか抜粋して紹介。
Objective-Cに慣れてる人でも、魔法のようにandroidのAppが作れてしまうので、
cocos2d-iphoneが好きな人なら、試してみない手はありません。なんてったって無料(プランもある)!
# あ、でもSpriteBuilder Proが正式リリースするまで、apportableダウンロードできないかもメール送ると、SDK送ってもらえるらしい

というわけで実際にbeta触ってみるので、また追記したり記事書いたりしたいので、乞うご期待。


関連記事/出典