超シンプルなWeb（アプリ）作成を通して各種フロントエンド技術を体験する - 2023 Early - 

こんにちは。

IT業界では日々いろいろな技術が登場し、キーワードをキャッチアップするだけでも大変ですよね。。。
というわけで、非エンジニアの方やエンジニアでも専門分野以外の技術をなるべく簡単にキャッチアップできるようなコンテンツを作ってみました。

この記事はフロントエンド技術体験コンテンツ記事をまとめた目次的なものになります。

## いいわけ

元々社内メンバー向けに作ったコンテンツなので周辺技術の解説など、かなり端折った内容になっています。また、いろいろと間違いや独自の記述があると思いますが予めご了承ください。「ここ間違ってる」とか「さすがに、ここは解説しないとわからない」というような箇所があればコメントいただければ次回のアップデート時に参考にさせていただきます。

## 前提

* コンテンツの作成にはMacを利用しています（iOSアプリの開発はMacでのみ可能です）
* エディタ（VSCode）、Xcode、Android Studio、必要ソフト(node.js）等はインストールされている前提です。

## コンテンツの概要

技術体験コンテンツの内容は「超シンプルなWebページ（やアプリ）」をいろいろな技術を使って作ってみるというものです。

### 体験技術

開発に利用する技術は以下の通りです。

* HTML（素のHTML/CSS/JavaScript利用）
* React（create-react-app利用）
* Next.js（とりあえずJavaScrip利用）
* ReactNative（とりあえずJavaScrip利用）
* iOS(Swift利用）
* Android（Kotlin利用）
* Flutter
* ionic

### 作成物イメージ

#### Web（HTML/React/Next.js)

各種技術を利用して下記のような超シンプルなWebを作ってみます。

<img width="971" alt="000001.jpg" src="https://dl.dropbox.com/s/g8zwdstxxuw4mbw/000001.jpg">

#### Webアプリ（ReactNative/iOS/Android）

各種技術を利用して下記のような超シンプルなWeb（アプリ）を作ってみます。

>技術によりやや表現が異なります。

<img width="948" alt="000010.jpg" src="https://dl.dropbox.com/s/b9qk0vgl7naglgv/000010.jpg">

>APIの仕様はWeb版と同じです。

## コンテンツ一覧

### 簡単な解説・補足

* 素のHTML（CSS/JS）はAPI作成、公開も含みます。
* 作成したAPIは全てのコンテンツのバックエンドとして利用します。
* API作成にはGoogle Apps Script（GAS）環境を利用しています。

|No|技術|コンテンツ|Qiita記事|Youtube動画|
|:-:|:-:|:-|:-:|:-:|
|1|HTML|簡易コーポレートサイトを作成する #1 -トップページ編-|[記事へ](https://qiita.com/minimumskills/private/0a41bb64480c88505c3b)|[動画へ](https://youtu.be/-80k46_NcBU)|
|2|HTML|簡易コーポレートサイトを作成する #2 -お問合せページ編-|[記事へ](https://qiita.com/minimumskills/private/b73550db05d13f416f8f)|[動画へ](https://www.youtube.com/watch?v=L5HeyqYZXJE)|
|3|HTML|簡易コーポレートサイトを作成する #3 -レスポンシブ対応編-|[記事へ](https://qiita.com/minimumskills/private/5bb8ce1c4236f14d882b)|[動画へ](https://www.youtube.com/watch?v=zID2qx1WU4Y)|
|4|API（共通）|APIを作成する -Google Apps Script（GAS）を利用する-|[記事へ](https://qiita.com/minimumskills/private/f2e8802664324e8b5981)|[動画へ](https://youtu.be/roB_A8i78qw)|
|5|公開|簡易コーポレートサイトを公開する -Drive To Webを使ってWebサイトを公開-|[記事へ](https://qiita.com/minimumskills/private/11bcfa55a9c7290ecafc)|[動画へ](https://www.youtube.com/watch?v=wBI4NteAdMo)|
|6|React(CRA)|Reactで簡易コーポレートサイトを作成する #1 -Top/Contactコンポーネント編-|[記事へ](https://qiita.com/minimumskills/private/da37eaf8f188095e1feb)|[動画へ](https://www.youtube.com/watch?v=jOskKWb5G9w)|
|7|React(CRA)|Reactで簡易コーポレートサイトを作成する #2 -ナビゲーションバーとフッター編-|[記事へ](https://qiita.com/minimumskills/private/196cd269af311b06358c)|[動画へ]( https://www.youtube.com/watch?v=arMoJHOSYjI)|
|8|React(CRA)|Reactで簡易コーポレートサイトを作成する #3 -バリデーションとビルド編-|[記事へ](https://qiita.com/minimumskills/private/b2d0d66068b5047d1f3f)|[動画へ](https://www.youtube.com/watch?v=tv4Al-x7Gas)|
|10|React(Next.js)|Next.jsで簡易コーポレートサイトを作成する #1 -Home/Contactコンポーネント編-|[記事へ](https://qiita.com/minimumskills/private/a044d4abafb72c3e1681)|[動画へ](https://youtu.be/ilY9ZlxyLFY)|
|11|React(Next.js)|Next.jsで簡易コーポレートサイトを作成する #2 -ナビゲーションバーとフッター編-|[記事へ](https://qiita.com/minimumskills/private/d5c0e2d0ced5766b295b)|[動画へ](https://www.youtube.com/watch?v=rz7EMNntztM)|
|12|React(Next.js)|Next.jsで簡易コーポレートサイトを作成する #3 -バリデーションとビルド編-|[記事へ](https://qiita.com/minimumskills/private/c1a0fee30d386c76a8f4)|[動画へ](https://youtu.be/tg5j5mlticE)|
|13|ReactNative|ReactNativeで簡易コーポレートサイト（アプリ）を作成する #1 -TOP画面編-|[記事へ](https://qiita.com/minimumskills/private/44d607d9e6e375aace0b)|[動画へ](https://www.youtube.com/watch?v=vJYrUFQFQeA)|
|14|ReactNative|ReactNativeで簡易コーポレートサイト（アプリ）を作成する #2 -Contact画面編-|[記事へ](https://qiita.com/minimumskills/private/bfecc7a8a6ed57212491)|[動画へ](https://www.youtube.com/watch?v=8SHezrhZ7B4)|
|15|ReactNative|ReactNativeで簡易コーポレートサイト（アプリ）を作成する #3 -タブバー編-|[記事へ](https://qiita.com/minimumskills/private/4fa150c98b7afc0ab79c)|[動画へ](https://www.youtube.com/watch?v=JdKxX6A7NkU)|
|16|iOS|iOSで簡易コーポレートサイト（アプリ）を作成する #1 -TOP画面とContact画面編-|[記事へ](https://qiita.com/minimumskills/private/748b65ce389a905dcc3e)|[動画へ](https://www.youtube.com/watch?v=isOJ7W1BgnI)|
|17|iOS|iOSで簡易コーポレートサイト（アプリ）を作成する #2 -バリデーション編-|[記事へ](https://qiita.com/minimumskills/private/aed53f9d185592aecdda)|[動画へ](https://www.youtube.com/watch?v=AhZLcPbCoZU)|
|18|iOS|iOSで簡易コーポレートサイト（アプリ）を作成する #3 -API連携編-|[記事へ](https://qiita.com/minimumskills/private/7f63624bf13cb3a5b2c1)|[動画へ](https://youtu.be/BS00ctQmp8w)|
|19|Android|Androidで簡易コーポレートサイト（アプリ）を作成する #1 -タブバー編-|[記事へ](https://qiita.com/minimumskills/private/6948dcc11e82a98f47af)|[動画へ](https://www.youtube.com/watch?v=EaWkDBpLzvo)|
|20|Android|Androidで簡易コーポレートサイト（アプリ）を作成する #2 -TOP画面とContact画面編-|[記事へ](https://qiita.com/minimumskills/private/c39c04dec69a0021d96c)|[動画へ](https://www.youtube.com/watch?v=YvmiCAg3eJo)|
|21|Android|Androidで簡易コーポレートサイト（アプリ）を作成する #3 -API連携とバリデーション編-|[記事へ](https://qiita.com/minimumskills/private/6c5137f1e0745b27eab9)|[動画へ](https://www.youtube.com/watch?v=SOjKENVUkR4)|
|22|Flutter|Flutterで簡易コーポレートサイト（アプリ）を作成する #1 -TOP画面編- |[記事へ](https://qiita.com/minimumskills/private/8d329c332c0ce76347a3)|[動画へ](https://www.youtube.com/watch?v=ev5sBJTSss0)|
|23|Flutter|Flutterで簡易コーポレートサイト（アプリ）を作成する #2 -Contact画面編-|[記事へ](https://qiita.com/minimumskills/private/15fe7fdcb0cb6bddcde4)|[動画へ](https://youtu.be/Fo57az0wt4E)|
|24|Flutter|Flutterで簡易コーポレートサイト（アプリ）を作成する #3 -タブバー編-|[記事へ](https://qiita.com/minimumskills/items/97a1c7c35b3bbc7ce8f1)|[動画へ](https://www.youtube.com/watch?v=78f2wySqEBM)|
|25|ionic|Ionicで簡易コーポレートサイト（アプリ）を作成する #1 -TOP画面編-|[記事へ](https://qiita.com/minimumskills/private/b052bcaecfc593225432)|[動画へ](https://www.youtube.com/watch?v=QDWVHWoTHYY)|
|26|ionic|Ionicで簡易コーポレートサイト（アプリ）を作成する #2 -Contact画面編-|[記事へ](https://qiita.com/minimumskills/private/78c450595274d78803d6)|[動画へ](https://www.youtube.com/watch?v=_RmhzN6Mc48)|
|27|ionic|Ionicで簡易コーポレートサイト（アプリ）を作成する #3 -タブバー編-|[記事へ](https://qiita.com/minimumskills/private/61d3c42ef761a309a6fc)|[動画へ](https://www.youtube.com/watch?v=MlE5OfCv-z8)|

## 考えよう（社内向け）

* フレームワークの存在意義は？
* マルチプラットフォーム開発環境のメリット、デメリットは？
* 技術によって見積内容は変わる？（変わるならどう変わる？）
* 技術によって要件定義や設計内容は変わる？（変わるならどう変わる？）