2010年9月16日木曜日

androidアプリとiphoneアプリを開発して思ったこと その4

~技術者視点で見るスマートフォンアプリ開発 ~の巻

さてさて、今回はiphoneアプリの開発とandoidアプリの開発を技術者目線から見ていきたいと思います。

いきなり結論から入りますが、開発しやすいのはiphoneアプリだと思います。
ただ、開発者・エンジニアとして魅力を感じるのはandroidです。androidはまだまだ発展途上であり、無限の可能性とパワーを感じます。

iphoneは本当にiphoneアプリためだけの技術を習得するという感じです。
マイナーなobjective-C + Cocoaという開発環境なので、余計にそういう印象を強めます。
また、一番のメジャー言語javaで開発できるandroidと違い、objective-Cは汎用性がない印象です。
javaなら他分野の開発スキルの向上にもつながりますからなおさらそういう思いが強くなりますね。

私もこれまではobjective-Cを使ったことがなく、iphone開発が初めての経験でした。
しかし、最初こそ癖があって少し戸惑いましたが、objective-Cは良い言語だと思います。
私は仕事ではjavaで開発を行っているプログラマなのですが、個人的には凄く気に入りました。
ちなみに私の好きな言語は、
Ruby > scala > objective-C => java > その他言語 >>>>>> php
といったとこでしょうか。

今後、iphoneの開発はobjective-C + Cocoa以外では不可能になるようです。
これに対し、多くの開発者がこのアップルの方針を批判しています。
しかし、私にはこのアップルの決断が間違っているとは思えません。
アップルの経営方針は、不特定多数のみんなに使ってもらう製品の開発というより、アップルを支持してくれるユーザを満足させることにあるように思えます。

となると、メーカーが想定できないミスを混入させないために、環境を限定してしまうのは、ひとつの手段として有効です。ユーザーもそんなアップルを支持しているのですから、開発者が口を出す問題ではありません。
 言語が使えないなら、覚えれば良いのです。きちんと基礎を身につけて経験を積んだプログラマーなら、すぐに使いこなせるようになる言語です。

一方のandroidはJavaで開発できるので、敷居が低く、開発しやすいです。何が疑問があっても、ググレば多くの解決手段が発見できます。今後scalaでも開発できるようになれば、工数もぐっと減るだろうし、なによりどんどん進化していくので楽しいです。
 ただ、間口は広いですが、開発の難易度は高いです。javaでありながら、メモリの使用には注意を払う必要がありますし、バックグラウンドでの処理はかなり複雑です。また、一般的に良いとされるjavaのコーディング方法が、良い方法でないのもマイナスです。javaだからこう書くのがいい。という既存の方法でコードを書くとかなりパフォーマンスの悪いアプリになります。

つまり、どちらのアプリを開発するにしろ開発者は結局勉強しなければいけないのです。
となると、やはりiphoneのxcodeを使った特殊環境での開発に問題があるとは思えません。
確かにobjective-Cには技術としての将来性や汎用性はありませんが、安定したアプリを使いたいユーザーと、提供したいappleの立場を考えると、appleのやり方は正しいです。

ジョブスは傲慢だし、腹黒だし、性格最悪だけど、この慧眼ぶりだけは本物ですね。
実際、iphoneアプリで生活費を稼ぐのは難しいですが、コーヒー代くらいなら稼いでる人は多いでしょう。
androidアプリでは明治時代で米も買えませんが・・・。どちらにしろ、生活するのは無理という点では同じですけどね。


さて、次回はスマートフォンアプリでお金をかせぐ方法を考えてみましょう。

でわ

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...