
【2021】スマホアプリの作り方 | 初心者でも分かる!スマホアプリを開発する方法【保存版】
スマホアプリの開発手段の選び方。
ゲームならUnity
個人開発ならFlutter
社内にWeb系の人しかいなければReact Native
資金豊富でこだわるならSwiftとJava
社内アプリや競争が激しくなければNo code
メディアなら側ネイティブコストと環境に寄って変えればいいかなと。#プログラミング
— りょすけ (@ryosuke_hu) September 19, 2021
今回の記事では、スマホアプリの作り方を紹介します。
一言でスマホアプリの作り方と言っても、かなり多くの選択肢があるので、技術面、コスメ面、利用用途など… etc 様々な側面から検討できるようにまとめています。
なので、プログラミングができるエンジニアの方だけではなく、プログラミングができない方でも参考になると思いますので、是非参考にしてみてください。
[st-kaiwa1]プログラミングができるエンジニアから、プログラミングができない非エンジニアの方まで分かりやすく解説します![/st-kaiwa1]
プログラミングが分からなくてもスマホアプリ開発は可能?
通常、ソフトウェアを開発するにはプログラミング言語のコードを書いて開発する必要があります。
スマホアプリを開発するのも同様、AndroidやiOSで動くプログラミング言語を使って、開発をする必要があります。
しかし、昨今ではプログラミングが出来なくてもスマホアプリを自力で開発する方法もあります。
例えばノーコード(No Code)と呼ばれる技術を活用すると、プログラミングをしなくても自力でソフトウェアは開発できたります。
後で、詳しくノーコード(No Code)のサービスも紹介していきます。
プログラミングができると本格的なスマホアプリが開発できる
まず、プログラミングをしてスマホアプリを開発するのは、最も本格的なスマホアプリを作る手段になります。
ネイティブ言語ならSwiftかJava
OSの母国語を使う場合は、Androidであれば、Javaか、Kotolinか、C言語を使うのが主流です。
OSの母国語を使うメリットは、こだわると高品質なUIとUXが実現できたり、OSのアップデートに追随して機能もすぐに追随できるところです。
同様に、iOSでだと今はSwiftが一択です。
Javaか、Kotolinか、C言語のそれぞれのメリットとデメリットは下記の記事をご覧ください。
マルチプラットフォーム言語を使ってスマホアプリを開発できる
OSの母国語のプログラミング言語を使うデメリットがあります。
それは、SwiftやJavaなど複数のプログラミング言語を覚えたり、専属のエンジニアを雇うコストが掛かるという点です。
この欠点をカバーするように、マルチプラットフォーム技術を使って、一つのプログラミング言語を使うだけで、スマホアプリを開発することができるようになってきました。
React NativeやFlutterがおすすめ
例えば、Webのフロントの技術にReactがあります。Reactを拡張させたReact Nativeという技術を使うと、Webの技術を使ってスマホアプリを開発することができます。
また、Flutterという言語も最近ではかなり伸びてきています。これは、Dartという言語を使って、よりネイティブに近いレイヤーでマルチプラットフォーム開発ができます。
Flutterの紹介記事は過去に書いたので、良ければ読んでみてください。
ゲームエンジンを使ってもスマホアプリは開発できます。
ところで、Unityというゲームエンジンがあります。これを使ってもスマホアプリは開発することができます。
ゲームエンジンのUnityでもスマホアプリは作れる
Unityは、ゲームエンジンなので、通常は2Dアプリや3Dアプリのゲームを作るプラットフォームですが、
スマホで動くアプリを作るという点に置いては、別に普通のアプリもUnityで十分に開発できるはずです。
例えば、3時間で作れる割り算電卓アプリ by Unityという記事もあります。完成形の画像を見ても、普通のスマホアプリと遜色ないですよね。
プログラミングをしてスマホアプリを開発するメリットとデメリット
スマホアプリ開発をプログラミングでやるメリット
本格的なスマホアプリが開発できたり、マルチプラットフォーム技術を使えば、コストも下げられる
プログラミング言語は色々とありますが、どれを使ってもスマホアプリは開発できます。
スマホOSの母国語のプログラミング言語を使えば、徹底的にこだわった高品質なUIとUXが実現できるでしょうし、
マルチプラットフォームのプログラミング言語を使えば、開発コストや学習コストを下げることができます。
しかし、いずれにせよデメリットは結構あります。
スマホアプリ開発をプログラミングでやるデメリット
スマホアプリ開発を覚えるまでに掛かる時間
例えば、スマホアプリを作るのに掛かる時間です。
プログラミング経験がない人が、スマホアプリを開発するために0からプログラミングの勉強をしても、
半年かけても簡単なアプリを作り切れるかかなり微妙です。
おそらく、3年以上Webの開発の経験がある人であれば、3ヶ月くらいで簡単なアプリは作れるようになるでしょう。
しかし、プログラミング経験がない人は、学習コストがめちゃくちゃ高いです。
スマホ開発の為にエンジニアを雇うのも難しい
また、スマホアプリ開発者を雇うのも結構難しいです。
特にモダンなマルチプラットフォームの技術であればあるほど、エンジニア人口も少ない。
その上、給料が高いので、一個のアプリを作り切るだけでも、200万くらいコストが掛かるかもしれません。
もし、あなたにプログラミングの技術があって、正しい見積もりやスキル判定、もしくはコネがあれば、
50万以内でも簡単なアプリは作れるかもしれない。
プログラミングができない人はNo Code(ノーコード)サービスなどを駆使してスマホアプリを作ることが出来ます
では、ここからは、プログラミング未経験の方へ向けて、スマホアプリを開発する方法をお伝えしていきます。
最初の方にも書きましたが、昨今、No Code技術の発展により、プログラミングをしなくてもスマホアプリが自分で開発できるようになってきました。
私自身も、No Code 技術を使ってみた経験があるので、その経験をもとに、メリットととデメリットを書きます。
その後に、各種ノーコードのサービスを紹介していきます。
No Codeのデメリット
まず、No codeのデメリットです。
本格的なアプリは作れない
本格的なアプリを作るのはかなり困難です。例えば、ウェブサイトであれば、WordPressを使えば、かなり本格的なウェブサイトやメディアが作れます。
でも、スマホアプリでは、まだそういうレベルまで到達していません。メルカリみたいな複雑で優れたUIとUXを持つアプリを作るには、まだまだエンジニアがプログラミングしないと難しいです。
ですから、業務用のアプリとか、社内で使う簡易的なアプリなど、コンシューマー向けに競争しないアプリであれば、No Codeが便利に活用できると思います。
運用コストがかなり高い
No Codeサービスを使うと、サービスの利用料金がめちゃくちゃ高いです。毎月数千円かかるところもザラです。
もしも、スマホアプリが利益につながらなければ、お金にならないサービスに毎月かなりの金額のコストを支払うことになります。
プログラミングしたアプリであれば、iOSであれば毎年1万円くらいでアプリの運用が可能です。Androidに至っては最初の登録料で数千円かかるのみです。
他の技術と連携が難しい
私がAdaroというNo codeサービスを活用したときに、データベースのクラウド化などができずに困ったことがあります。
ノーコードでアプリ開発したとき、クラウド化できるならすごい便利だなって思ったんだけど、最近のノーコードはクラウド化とかできるん?firebaseとかと連携できたらメチャクチャ良いと思うんだけどな。詳しい人教えてえー #ノーコード #プログラミング #プログラミング学習 #プログラミング初学者
— りょすけ@プログラマー (@ryosuke_1997) September 5, 2021
詳しくは解説しませんが、アプリを商用的により拡大させようと思った時は、様々な弊害がまだまだ出てきます。
No Codeのメリット
次は、Nocodeのメリットは、学習コストが低いです。プログラミングが出来ない方でも、数ヶ月頑張れば、アプリのリリースまでたどり着けると思います。
もちろん、シンプルなアプリでNocosaサービスのできる範囲にはなりますが、ブロックを組み立てるように、アプリを作れます。
一番有名なのは、Adaloというノーコードサービスだと思いますが、他にも色々とあると思うので、ぜひ調べてみてください。
Adalo
綺麗なUIと直感的な操作で、簡単にスマホアプリ開発が可能です。
Adaloの料金プランは、以下のような感じです。
無料プラン | プロプラン : 50ドル / 月 | ビジネスプラン : 200ドル / 月 |
|
|
|
他も大体同じような金額体制だと思います。参考に下記の記事も読んでみては如何でしょうか。
スマホアプリ開発。技術選定、コスト
では、最後に、スマホアプリ開発の技術選定を考えてみます。
もし、現在あなたがプログラミングができるのであれば、自分で書くのが一番早いです。
No Codeサービスは、簡単なアプリであれば本当にサクッとできますが、そのくらいであれば、コードがもともとかけてたなら自分で書いて覚えてもそんなに変わらないと思います。
もしあなたがマネジメントする側で、お金があれば、JavaとSwiftを書けるプロのエンジニアを雇ってそれぞれアプリを書くべきだと思います。
もし、あなたがプログラマーで個人開発するのであれば、React NatveかFlutterを使ってマルチプラットフォームのアプリで開発して、DBはFIrebaseなどを使うと、Webサービスとしてクラウド化もし易いです。
もしあなたが、スマホアプリ開発でゲームを作りたければ、Unityを使うべきです。
以上です。