未経験からのスマホアプリ通信

開発言語の違い

開発言語の違い


どの言語を学ぶか

アプリを開発するためには言語を学ばなくてはいけません。しかし、言語と言ってもJava、C、C#などといろいろな種類があります。PerlやRubyのようなスクリプト言語は、(一般に公開し、普及させるかどうかは別として)小規模な物なら個人でも作れますから、これを含めればそれこそ無数に存在することになります。このような多くの言語の中から何を学ぶべきか、二つの視点から考えてみましょう。

主流言語か、将来性のある言語か

現在、開発の現場で主に使われている言語を学ぶ、ということであれば、Androidの場合はJava、iPhoneの場合はObjective-Cということになります。Javaに関しては他の開発でも使えますが、Objective-CはほぼiPhoneの開発専用となります。(Macのソフトも開発できますが、こちらはCやC++でも開発可能です)
iPhoneの場合はSiwftという新しい言語も使えるようになりました。いろいろな点で便利になっていますが、現時点では普及しておらず、今後の展開もまだわかりません。また、AndroidとiPhone、どちらの場合でも、「Xamarin」や「Titanium Mobile」といった「クロスプラットフォーム開発ツール」を使うことで、C#やJavaScriptなどの言語で開発を行うことができます。しかも、クロスプラットフォームと呼ばれるように、Android版のアプリもiPhoneのアプリもリリースできます。ただし、Android固有、iPhone固有の部分はそれぞれ作らなくてはいけませんから、移植作業が無くなるわけではありませんし、どうしても大がかりになってしまうため、小型のアプリにはあまり向かない、という欠点もあります。もし両方でのリリースを考えていないのなら、無駄に手間がかかるばかりです。そして、まだそれほど多くの職場で使われているわけではありませんから、「Androidアプリ開発経験あり(Xamarin使用)」とアピールしても効果が無いこともあります。もちろん、逆にこうしたツールを利用している、または導入予定という職場もあります。「あまり多くの人が使っていない言語」を扱うスキルは転職の際の武器になりますから、スマホアプリ以外である程度開発経験のある方なら、SwiftやC#に手を出すのも良いでしょう。しかし、情報の少なさなども考えると、未経験の方が最初に手を出すのは難しいかもしれません。

ネイティブアプリかWeb型アプリか

Web系の仕事をされていて、HTML5やJavaScriptなら自信があるという方なら、アプリ側には特定のサイトを表示するだけの機能を組み込み、本来の機能はサイト側で用意する、という形式のアプリであれば比較的簡単に作ることができるでしょう。Flashという手もありますが、今後を考えるとあまりおすすめできません。この方法は新しい言語を覚える必要も無く、手軽ですが、常にオンラインでないと動かないという欠点があります。また、操作ごとにネットからのレスポンスを待つため軽快さも無くなりますし、カメラや各種センサーのような端末の機能を使うアプリも作れません。一方、Javaなどで作ったネイティブなアプリはこうしたことが可能です。幅広く仕事が得られる、という点を重視するならネイティブ系の言語を覚えるべきですし、今使える言語を活かしたいということであればWeb型アプリの開発について学ぶべきでしょう。

ページの先頭へ戻る