[Tech/一般] WEBサービス及びアプリ開発のキモ〜その①〜

プログラミング言語の選び方


Posted by Ryuichi Yamashita on Nov 7, 2016

今回は、私が特にプログラミング初心者のうちは最も分からなかった、しかしながら誰もがWEBサービスやアプリを開発する際には考えなければならないキモ中のキモについて書いていきたいと思います。それは、まず、プログラミング言語と一口に言っても何を学習すれば良いのか、という問題です。多くの初学者の方がこの問題に悩まされるか、そもそもよく考えないまま適当に言語を選んで学習を始めるのではないでしょうか。(かくいう私もそうでした。。。)

で、本日は少し長くなりそうなので結論から述べると、①サービスをどのプラットフォーム向けに作るか、②バックエンドをどのように構築するのかという二点をを作り始める前にしっかり考え、その結果をもとに学習する言語を選択することで後々困ることなく、効率よく開発できるのでは、ということです。以下、本記事では①のプラットフォーム選びについて解説していきたいと思います。

ここでいうプラットフォームとは3つあり、①インターネットブラウザ(上図のウェブサイトに相当)、②App Store(iOS)、③Google Play(Android)のことなのですが、作り始める際にここをしっかり考える必要があるのです。非常に悩みどころ、かつ私自身正解はまだ出ていないのですが、現時点での私の感想としては、作ろうとしているサービスのUIがインタラクティブ(ユーザにとっての操作性が非常に重要視される性質)を持っているのなら②、③のプラットフォーム向けに作り、そうでなければ①向けに作るのが良いのではないかと思っています。

というのも、ユーザの流入経路を考えてみると、何かしら認知したサービスにアクセスする際に、いきなりApp StoreやGoogle Playで検索し、インストールする人はどちらかというと少数派で、最初の一歩はGoogleの検索エンジンで検索する人が圧倒的に多いのでは、と感じるからです。(感じると書いている通り、データとしての根拠はありませんが・・・)

したがって、まずここがアプリ開発かWEB開発かの分かれ道なのですが、ここをまずはしっかり決めましょう。そしてアプリ開発の場合はさらにその先に、少ない労力でUIインタラクティブ性が中程度以下のアプリをiOS/Androidの両OS向けに同時開発するのか、それとも労力はかなりかかってしまうものの、高度なUIインタラクティブ性を実現できるよう、iOS向け、Android向けと別々に開発するのかという分かれ道が存在します。前者であれば、IONICなどのフレームワークを、後者であれば、iOS向けにはSwift、Android向けにはJavaを学習すれば良い、ということになります。

一方のWEB開発の場合は、いろいろなフレームワークがあるのですが、フレームワーク間で最終成果物にそれほど差が出るかというとそれほど出ないような気もするので、Ruby on RailsかPython Djangoあたりを(ここは適当に選んで)学習すれば良いのではないかと思います。いざ困った時に頼りになるQ&A集のようなドキュメントが豊富なのはやはりRuby on Railsかなと思うので、Railsあたりが個人的にはオススメであったりします。

つらつらと書いてきましたが、まずはいきなり突き進むのではなく、最初に大まかにサービスの展開を想像した上でプログラミング言語は選びましょう、という話でした。今後折を見て、最初に述べたバックエンドの構築方法について触れたいと思います。乞うご期待ください。