スマホアプリ開発未経験者がはじめに学習したこと

## はじめに

はじめまして、@taikiti（たいきち）と申します。

運良くアプリ開発プロジェクトに携わることになり、スマホアプリの開発を始めておよそ２年が経ちました。
これまでの自分の歩みを振り返る目的も兼ねて、未経験者がアプリ開発の基礎を学んだ過程をまとめてみたいと思います。

## この記事がおすすめの方

- プログラミング未経験者
- スマホアプリ開発未経験者

## 目次

- 学習した内容
- 動画と書籍どっちがいいの？
- 使った教材たち
- おわりに

## 学習した内容

学習期間はおよそ２ヶ月。
その後は実践的な開発練習として、サンプルアプリの開発を予定していました。
今回は、初めの２ヶ月間で何を学んだのか、基礎学習の部分をご紹介します。

業務上の都合で、アプリのリリース予定まで期間が短かったため、開発言語はReactNativeで決まっていました。
なので、ReactNativeの基礎知識習得をゴールに設定し、最低限必要な知識を順番に学習していきました。

ざっくりですが、重点的に学習したのはこんな感じです。

- JavaScript
- TypeScript
- React
- ReactNative
- Git

## 動画と書籍どっちがいいの？

僕のような初学者には動画がオススメだと思います。
理由は以下の２つです。

:::note info
- これから作るものの動きを確認できる
- コピペができない
:::


それぞれ補足していきます。

### これから作るものの動きを確認できる
動きを確認できるというのは動画ならではのメリットだと思います。
書籍だと完成形が静止画で載っているだけなので、開発初心者だとイメージがつきにくいのではないでしょうか。

自分がこれから作るものはどんな動きをするのか、このコードを書くとアプリがどう変化するのか、このあたりは動画の方が直感的に分かると思います。

### コピペができない
コピペができないというよりは、「コピペをしない」という選択肢を取りやすいと言った感じです。
動画でも書籍でも、「ソースはこちら」みたいに出来上がったファイルが用意されています。

しかし、動画では講師が１行ずつコードを書いていくので、見ている側も同じように手を動かすことができます。
これにより、コーディング中に起きる些細な警告やエラーに気づくことができたり、その対処法を学べたりと、初心者にとって重要な経験を積むことができると思います。

### 結論：自分の好きな方でOK

動画推しだと思われるかもしれませんが、決してそんなことはありません。
学習内容や環境、個人の考え方によって意見が分かれて当然だからです。

例えば、動画のデメリットとして、教材の数が少ないことが挙げられます。

恐らくですが、より詳細な説明をしようと思うと文章量が多くなるため、動画に向かないのだと思います。
書籍の方が圧倒的に数が多いので、学びたい内容が動画にない場合には書籍を探せば見つかるかもしれません。

あとは、動画だと頻繁に一時停止して内容を確認する必要があるのも手間です。
タイピングしているだけでは、頭に入れて理解するというステップが追いつかないので仕方ないのですが。。

結局、書籍を１ページずつ読み進めるように、動画も適度に止めながら試聴することになるので、そういったことが面倒という方には書籍をお勧めします。

:::note warn
必要な知識を吸収できれば動画でも書籍でもいい
:::

また、開発に慣れてきたら公式リファレンスを読んでみるのも手です。

基本的に英語サイトとなりますが、翻訳すればある程度内容は理解できると思います。
分かりやすいかはさておき、確かな情報が載っているのが公式リファレンスなので、少しずつ触れて慣れていきましょう。




## 使った教材たち

それでは、僕が基礎学習に使用した教材をご紹介していきます。
学習を始めたのがおよそ2年前ということもあり、うろ覚えなので思い出したら追記するかも。

### JavaScript
JavaScriptはネット上の読み物をサラッと流し読みしていたと思います。
使用頻度の高いものや非同期処理というものの存在をとりあえず頭に入れておくイメージです。
JavaScriptを集中的に学習するというよりは、後述するReactと併せて学習をしていました。

### TypeScript
TypeScriptはちょっと難しい書籍で学習していました。
[オライリーの本](https://www.oreilly.co.jp/books/9784873119045/)です。
こちらは初学者には難しい内容なので、一度目を通してから困った時の辞書代わりに使っていました。
（正直、今読んでも難しいと思う）

https://www.oreilly.co.jp/books/9784873119045/

### React

ReactはじゃけぇさんのUdemy教材が分かりやすくてオススメです！
僕は以下の２つを受講しましたが、今は新しく３つ目の講義が追加されてるようです。

- [****モダンJavaScriptの基礎から始める挫折しないためのReact入門****](https://www.udemy.com/course/modern_javascipt_react_beginner/)
- [****Reactに入門した人のためのもっとReactが楽しくなるステップアップコース完全版****](https://kiraboshi-system.udemy.com/course/react_stepup/)

また、Youtubeでとらゼミさんの動画も試聴しました。
- [新・日本一わかりやすいReact入門【基礎編】](https://www.youtube.com/watch?v=XKSYF2aZnkQ&list=PLX8Rsrpnn3IWPoM7-1YPDksRRkamRY25k)

どちらも非常に丁寧に解説されていて、初学者に分かりやすいものとなっています。
何から始めていいのか分からない！という方は、これらの講義から始めるといいと思います。

### ReactNative
こちらもUdemyを中心に学習しました。
日本語の講義は一通り見たと思います。
- [****【2023年最新版】React Native入門：ニュースアプリを作りながら覚えよう****](https://www.udemy.com/course/react-native-first-step/)
- [****React Native, Firebase, Expo でアプリ開発をゼロから始めよう！****](https://www.udemy.com/course/react-native-ios-android/)
- [****【入門編】React Native & Expo でアプリ開発のスキルを身につける！****](https://www.udemy.com/course/react-native-todo-list/)
- [****実践編：React NativeとFirebaseで作るiOS/Androidアプリ：お店レビューアプリ開発編****](https://www.udemy.com/course/react-native-firebase/)


:::note info
ReactNativeの講義では、自分のスマホ上で作ったアプリを動かせます！
:::

PC上でシミュレータを起動してアプリを動かすこともできますし、ご自身のスマホでも動作の確認ができます。
僕も、実際にスマホでアプリが動くのを見て感動したのを覚えています。

これから学習する方もぜひ試してみてください！

### Git
Gitでは、ソースコードのバージョン管理を行うことができます。
個人はもちろん、チームで開発を進める上では必須なので超重要です。

Gitは[こちらの書籍]([https://www.amazon.co.jp/改訂2版-わかばちゃんと学ぶ-Git使い方入門〈GitHub、SourceTree、コマンド操作対応〉-湊川-あい/dp/4863543433](https://www.amazon.co.jp/%E6%94%B9%E8%A8%822%E7%89%88-%E3%82%8F%E3%81%8B%E3%81%B0%E3%81%A1%E3%82%83%E3%82%93%E3%81%A8%E5%AD%A6%E3%81%B6-Git%E4%BD%BF%E3%81%84%E6%96%B9%E5%85%A5%E9%96%80%E3%80%88GitHub%E3%80%81SourceTree%E3%80%81%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%93%8D%E4%BD%9C%E5%AF%BE%E5%BF%9C%E3%80%89-%E6%B9%8A%E5%B7%9D-%E3%81%82%E3%81%84/dp/4863543433))で学習しました。
基本的な仕組みやコマンドを覚えた後は、実務で必要に応じて学んでいった感じです。

ちなみに、ツールは[Fork](https://git-fork.com/)を使っています。
理由は、他と比べて動作が軽い気がするからです。

基本的に無料で問題なく使用できます。

https://git-fork.com/

## おわりに

以上、僕がアプリ開発着手までに学習した内容をご紹介しました。
上記の学習を終えると、手元で動く簡単なアプリを作れるようになると思います。

もちろん、動画を見ただけでは実務で使えるレベルとまではなりません。
しかし、まずは開発を楽しいと思うことがとても重要だと思うので、細かいことは気にせずに学習を始めてみてはいかがでしょうか。

今後も引き続き、自身の振り返りという目的も兼ねて、初学者に共感してもらえるような記事を投稿していきます。
最後までお読みいただき、ありがとうございました。