あったらしくるえるはてなくしょん

id:kskmeuk あったらしく

Mac OS X Mountain Lion でとりあえず、 android の開発環境構築して、遅いエミュレータの対策もしてみる。

docomoだけ iPhone 売ってない状態も解消されて、iOS 関連の方はというと、恐らく今後もそれなりに計算は出来ると思うのですが、ずっと食わず嫌いで、さらに、そもそもあんまり好きじゃ(中略)、みたいな事情はあるんですけど、ずっと知らないのもいかがなものかというのと、Nexus とか Kindle Fire とかある程度はどうにかなってくれるでしょうというのもあり、開発環境すら整えられてないのはいい加減どうなのだと、多方面から突き上げをくらっていたこともあり、開発環境を構築してみました。
ちなみに、Eclipse とか Java とか、正直、昔からかなり苦手です。
Eclipse はぐう遅い開発環境っていうイメージがありまして、太古の昔、Java で仕事してたときとか、私と隣の席のお師匠だけ、テキストエディタとコンソールだけで開発してて変な子と呼ばれてました。

まず、EclipseAndroid SDK まわりの取得

Mac(OS X Mountain Lion)にAndroidの開発環境を構築
こちらに書いてある通りで、概ねうまく行きました。今は Eclipse Classic ではなくて、Eclipse Standard っていうのがたぶんそれで良さそうで、そちらでインストールしています。
余談ですが、Eclipse もコードネーム Kepler ということで、隔世の感がありますね。どうでもいいけど、大学受験でケプラーの法則が出たのとか未だに覚えています。当時、微妙に物理が苦手だったのですが、私あの問題だけそこそこ得意で、まあ人生は運です。
それで、上記手順に従えば、まあ出来ます。出来ますが、エミュレータがとんでもなく重いです。

次にその対策をします。本当に遅いので、 この対策は必須だと思います。

Macandroid エミュレータが遅いので Android SDK Manager から、いろいろ入れる。

Qiita 先生のおかげですが、Android再入門 - エミュレータの作成 - Qiita こちらに従って出来ました。
注意事項としては、Android SDK Manager から、Intel x86 Emulator Accelerator ( HAXM ) を選択して install packages したつもりでは、実はダウンロードまでしかされていなくて、後から、Eclipse で参照している android sdk のフォルダ配下の extras/intel/Hardware_Accelerated_Execution_Manager/intelHAXM.dmg を別途インストールする必要があること、各 android の version 配下のパッケージの Intel x86 Atom System Image も取得してあることが必要といったところでしょうか。

あとは、各設定を間違っていなければ、ばっちり動きます。これなら何とかなりそうかもと思えてきました。

あとは、iOS のアプリの感じわかったら、android も出来ますよって多方面から言われたんですけど、そうでもない気もしています。まあ鬼門です。
iOS よりは Windows Phone に似ているような気もしますね...。

ただ、とりあえず、画面にアプリの部品置いて、部品とイベントとリンクして処理を書くとかは、だいたいそんな感じなのだろうとは思います。
iOS アプリだと、なんだか結局、xib でも storyboard でもなくて コードでいろいろ書くみたいな終着駅がまってますが、Windows Phone や android だと、もう少し、XAML なり、activity.xml が偉そうにしてるのかなとか思います。後、データソースとリンクして表示をどうこうあたりとかについては、それなりにガクガクブルブルしています。

とりあえず androidiOS については、iOS アプリ的な ViewController 的なものが、activity 的らしいとかそういう感じと、アプリケーションライフサイクルはちょっと似てるかもとは思いました(こなみ

ついでに雑談です。

MacXcodeiOSアプリ開発 / EclipseAndroid アプリ開発 / Windows 8Windows Phone アプリ開発 の様々な違い

Android はまだデモを動かしただけですが、いちおう3パターン触ってみたことがあるという形にはなりました。それぞれ、ケータイ端末で動かすということで基本の思想は似ていますし、開発においても、画面つくって、入出力やりとりして...というところは似通っています。ただ、開発環境は三者三様です。

MacXcodeiOS アプリ開発がいちばん入りやすい

とりあえず、今、普通にいちばん入りやすいのは、MacXcodeiOS アプリだと思います。今でしょ的なきっかけもありますしね。Mac の開発環境でとりあえず、最新版に近い Mac OS があって、Xcode を入れたら、まず開発環境までは、それでだいたい整うし、対象のデバイスiOS 7 からと割り切れば、縦長以外は iPhone 4系しかないし、全部Retina なので、かなり楽ですね。だいたい S ついてる iPhoneiOS 最新バージョンに対して寿命長いですが、次回は切られるかもしれないですね。そしたら、また、iPhone については縦長一本になるので、みんな楽だし。

こう、バージョンまたぎすると、微妙なところで20px ずれたり、44px ずれたりしてこわいですよね。auto layout で旧バージョン即死とかははは。

まあ、日本で3キャリで出た iPhone というところを考えると、新しく何か始める人は、もう iOS 7 からと割り切るのが幸せだと思います。Apple 自体が過去をあんまり振り返らないところありますし...。特に、iOS 5iOS6 の縦長の有無の断絶とか、iOS 6 と iOS 7 はキーボードの見た目すら違うとかは、インパクト大きいですね。

とりあえず、そこそこな Mac をひとつ調達して、Xcode 入れたら OK っていうのは、楽ですね。シミュレータもそれなりにちゃんとしていますし。ただ、シミュレータは縦が長いので大きい画面が必要になります。さらに、もうひとつ Objective-C という壁がたちはだかるので、やはり大きい画面があるといいと思います。

EclipseAndroid アプリ開発は、いろいろな環境で動くけど、セットアップめんどい

今回、Android 用の開発環境を Mac で構築したのですが、こちらはセットアップが正直めんどくさかったですw。その代わり、WindowsLinux なんかでもそれぞれ環境構築出来るというのは、良いことなのかなと思います。めんどくさい代わりにいろいろ出来るという感じですね。それから、Mac でも Windows でも Linux なんかでも動かせるというのは金銭的にはリーズナブルではあります。手間はかかるけど。

あとは、エミュレータが初期状態だと悲惨だとか、Eclipse は他にもいろいろ出来ることがありすぎて、Android SDK Manager とか、AVDM とかも、なんだかいろいろ項目あってふぎゃってなります。
こう、Xcode と比べると初見の取っ付きにくさがありますが、いろいろちゃんと出来ると、そこまででちょっと達成感あるので、じゃあもうちょっとやっちゃおうかなーみたいな、変なモチベーションのドライブ能力はありますね...。
エミュレータ遅かったけど、ちょっと速く出来たし、じゃあアプリも試してみよう的な...。

というわけで、今使ってる環境でそのままという向きだと、EclipseAndroid アプリ開発はそこそこ良い道かと。

あと、iOS アプリ開発はかつては、まず Mac という壁あったのですが、今はそんなに珍しくもなくなったし、上述のようにとっつきにくいところが少ないので逆に入りやすいです。だけど、android アプリについては、これは私もそうだったのですけど、はじめめんどいとか、いろいろな食わず嫌いとかあってはじめの壁が高いし、これからどうなるかわからないとかもあります。

その代わりに、当面は逆に仕事取ってきやすい... とか、逆に話題つくりやすい...みたいなところはあると思います。ある程度 Nexus あたりはこの先生きのこると思うので、iOS でつくったものを、android でもだいたい作れる... というのは、ちょっとしたわかりやすいメリットにはなるかもしれないですね。言語の上では Java なわけですし、Eclipse なわけですし。

Windows 8Windows Phone アプリ開発

日本では、だいたい端末が出てないとか、8 より 7 、そしてそれより XP でしょ的な風潮もあって、Windows 8Visual Studio 最新版があったほうがいい事情があるWindows Phone や、かつて Metro とよばれたスタイルのアプリ開発は、おまけ感が漂っていますが、Visual Studio の流儀をしってて、Visual C# あたりがそこそこわかって、Blender なんかのことを知っていれば、EclipseAndroid アプリ開発よりも、Windows Phone や、かつて Metro とよばれた Store スタイルのアプリ開発の方が楽だったりしないかなーと思います。赤い狐とか緑の狸とかのアプリとか作って、ほんと、どうもすいません...。

なお、とりわけ日本では端末が出とらん模様...というのがいちばん問題ではありげふんげふん。私、Windows Phone の 8 の機能は少し蛇足と思うのですが、7のホームというか、メニューというか、あれ好きなのでちょびっと残念なんですよね。

まとめ

というわけで、まとめると、当面、入門も主流も iOSまわりが、とりあえずは強そうですね。逆に仕事みたいなところとかお小遣い稼ぎとかとして、ちょこちょこ狙うのなら、当面は android が地味におすすめ。
一発逆転にかける人と、かねてから Visual Studio にある程度慣れ親しんでる人は、Windows あたりを捨てるのはもったいない... みたいなところだと思います。

あと、年とともに物忘れがはげしい... 以外にも、いろいろ少年のころのことを忘れがちなのですが、ケータイデバイスのアプリケーションみたいなのを、個人や独学でもそこそこ、それなりにひょいっと、公式ドキュメントと、Google 先生と、StackOverflow 先生と、それなりの本で、入って行けるように扉が開かれているのはよいことだとは思います。

では、良い人生を。