見出し画像

アプリ開発を振り返って気づいたこと

こんにちはmigです。

 今回の記事ではプログラミングの入門学習から実際のアプリ開発が進むまでの振り返りを投稿しようと思います。

 改めて私のこの経験を振り返ってみますと、知識0から始めたこの果てしなく長い道のりを完走するために一番大切だったことは「明確な目的・目標を持って取り組む」ということだったのではないかと思います。ここで言う明確な目的・目標とは具体的には「どんなアプリを作りたいのかを明確にする」ということです。

 前回の記事で個人開発をやってみようと思ったきっかけについてお話しましたが、もしプログラミング知識0の私が、
「プログラミングができるようになりたいから」
「プログラミングをやってみたいから」
といった理由で個人開発を始めていたらほぼ100%挫折していたと思います。

 なぜならプログラミングはあくまでもアプリを作るためのただの手段や道具であり、「プログラミングができるようになる」というのはこの場合、明確な目的・目標にはなり得ないからです。

 私も当初は「何かを作ってみたい」という気持ちだけで特に作りたいアプリの具体的な構想も無くプログラミングの勉強をスタートしました。「ゼロから始める」、「絶対に分かる」、「世界一簡単な」というような謳い文句の入った入門書を買い漁って勉強しましたが、「結局読んでみたところでどんなアプリを作ったらいいか分からない」、「何かを作りたい気持ちはあるけれど何から始めたらいいか分からない」というのが正直なところでした。

 入門書は基本的な文法の説明から始まり、その後は延々とView に関する話が続くというのがよくある構成パターンです。入門書を読み進めていく分には挫折することもなく、それなりに良く内容を理解できていたと思うのですが、それでも入門書を一通り読み終えた後で押し寄せる感情が次のようなものでした。

「で?? でどうすればいいの???」

 仮に入門書を2、3冊読破し完璧に理解できたとしても、やはりそれだけでは世の中にリリースされているようなアプリを作ることはできないと思います。
(九九の計算結果を表示したりするだけの本当に単純なアプリを除いて)

 それではなぜ私のような未経験独学で個人開発を目指そうとしている人たちが入門書を読み終えた後でたちまち路頭に迷ってしまうのでしょうか。これについて私なりに考えてみました。

 私が考える原因の1つとして、プログラミングの入門書の内容と実際のアプリ開発の内容に大きな乖離があるからだと思っています。

 入門書を読んでvarもletもfuncもstructもclassも大体一通り何となくは理解できたとしても、結局作りたいアプリのビジョンがまだ無いため、そうした文法とより実践的なコードとの結び付きがイメージできないため、「これでどうしたらリリースされているようなアプリができるの?」という状態に陥ってしまい、途方に暮れて次にやるべきことが分からなくなってっしまうのです。

 確かに今列挙した種々の文法はリリースされているアプリには100%使用されていますが、大切なことは文法が分かったからといってアプリが作れるようになるわけではないということです。

 実際のアプリにはユーザー登録機能があったり、カメラがあったり、マップがあったりするわけです。そして何よりも他ユーザーと情報をやり取りするために使われるデータベースが使われているわけです。ほとんどのアプリにデータベースが使われているのにも関わらず入門書にはデータベースの使い方は載っていません。

 これが私の思う乖離です。確かに入門書はあくまでも入門書ですのでそんなところまで扱うべきではないという気持ちも分かります。そんなことをしていたら内容が膨大になってしまいますし、そうした時点で既に入門書でなくなってしまうというのも理解できますが、入門書を卒業したその後の道標を具体的に提示してくれていないので、基本的な文法とViewに関することだけをばーっと説明されて、それで放り出されてしまうので未経験で開発しようとしている身からするとそこで急に行き詰ってしまうのです。

 私が入門書卒業後に実際に執った方針は、まずデータベースを扱えるようにするということです。これが今回の記事で未経験独学・個人開発を志す皆さんに提案したいことです。

 データベースが自分のアプリで実際に扱えるようになると、チャットアプリやTODOリスト、何かを共有するようなアプリが意外と簡単につくれそう!!と思えるようになりました。すると、作りたいアプリや作れそうなアプリのイメージが一気に膨らみました。データベースが扱えるようになるとできることが増えアプリ開発が一気に楽しくなりましたし、「なんでもできるじゃん・・!」という万能感が得られました。

 データベースの実装をアプリ開発の第一のテーマにすることでより実践的な内容に取り組むことができ、入門書で習った文法を実際に使っていきますのでそれまで一見抽象的だった文法も手を動かして実装していくことでより理解が進みますし、そして何よりも自分のアプリをどのようなものにしようかというアイデアや構想がかなり現実的なものとしてイメージしやすくなるという一石二鳥の方法だと思います。

 私は具体的に作りたいアプリの構想が必ずしも最初からある必要はないと思っています。特に未経験・個人開発でこれから頑張ろうと思っている方であれば尚更です。初めから構想を持っている方の方が稀かと思います。作りたいアプリは開発途中で徐々に決めていけばいいと思います。そのための1つの手法としてまず半ば強制的にデータベースを扱えるようにするというのを皆さんに提案します。

 私は実際にこの方針で開発を行なっていきましたが当然ですが最初は本当に苦労しました。ですが「初心者なのだからすんなり実装できなくて当たり前だ」と思い頑張って少しずつ少しずつ開発を進めていきました。実際にこのフェーズが未経験独学個人開発において一番苦しい時期だったと思います。ですが自分だけのオリジナルアプリに1つ1つと徐々に機能が実装されていき、次第に自分が思い描いているアプリに近づいていくと非常に大きな達成感が得られました。開発の苦労や大変さ、どう実装したらいいかなと日々試行錯誤している過程も楽しいと徐々に思えるようになっていきました。そうなってくると開発が加速度的に楽しくなっていき、ついにはリリースされるところまでやりきることができました。

 ここまで記事を読んで下さりありがとうございました。
これから個人開発を始めようと考えている方の参考になりますと幸いです。

 最後に、私が開発しました「Pikapi - マップと紐づく写真日記SNSアプリ -」と、「Miain - AIにゃんこと学ぶ英語学習アプリ -」は下記からダウンロードできますのでぜひ遊んでみてくださいね。



この記事が気に入ったらサポートをしてみませんか?