これまで相談いただた中でいくつかあったのが、

「ネイティブアプリ(Swift / Kotlin)の開発をしたいけど、Web の方が簡単で応用範囲が広いから、Web の方がいいって言われたのですが、どう思いますか?」

という質問。様々な要因があり、お答えするのが難しい質問です。

Web は、HTML/CSS/JavaScript をメインの言語として、Web ブラウザで動作するコンテンツを開発します。

歴史も古く多くの情報がネットにあり、ブラウザとテキストエディタさえあれば開発が始められるので、最初の敷居は低いです。元々 Web デザインをやっている人が JavaScript を覚えて、Web 開発を始めるケースも多いと思います。

一方、ネイティブアプリの開発は、Swift や Kotlin といった比較的新しめの言語で、約束事も多少覚えることも多いです。また、ツールも Xcode や Android Studio など、使いこなすのも一苦労だったりします。最終的に実行できるのはスマートフォンやタブレットで、インストールも必要で、気軽に開発できる感じではないです。

って書くと、Web の方がいいかもって思うかもしれません。ただ、私がサポートしているメンティーの方には、アプリ(iOS)から始めている方もいらっしゃいます。

実は、簡単と思われる Web の開発も非常に複雑化しており、覚えることがたくさんあります。ネイティブアプリと同じような高品位なプロダクトを Web で開発しようとすると、より厳格な言語である TypeScript、開発環境として使用する Node.js、アプリケーションフレームワークの React や Vue.js、UI フレームワークの Bootstrap や Material UI など、多くのことを学ぶ必要があります。

一方、ネイティブアプリ開発においては、ある程度のツールやライブラリが統合環境として提供されており、最初は使いこなすのが大変です。ただ、慣れれば Web よりもサクサク動くクールなアプリを作りやすいです(センスは必要ですが)。

じゃあ、どうやって選べばいいの?って話ですが、個人的には「何を作りたいか?」が一番重要じゃないかと思います。

開発を始めると、わからないことや難しいことでつまづくことが多くあります。その時に、自分が作りたいと思わないものだと、途中で諦めてしまうことが多いと思います。自分が使いたい、たくさんの人に使ってもらいたいたというモチベーションがあれば、最後までやり遂げることができ、世に出すことで多くのことを学ぶことができます。

とはいえ、じゃあ作りたいものはどう作れば良いか?って話ですが、プロダクトの性質やターゲットユーザー、提供方法、スキルなど、ケースバイケースだったりするので、ぜひご相談いただけれたらと思います(宣伝になってしまってスミマセン)。

Web からでも App からでも、一度マスターすれば、他方を学ぶのもそう難しくはないと思います。まずはどちらかにフォーカスして、世にプロダクトを出せるようになるまで諦めないのがオススメです。ぜひ頑張ってください!