piyopiyo.exポータルチュートリアル０章～できるだけ楽して環境を準備する～

本記事はpiyopiyo.exポータルチュートリアルの０章となります。

https://qiita.com/tuchiro/items/050e6b86afc35a843a7c


# 本章の目的

本章では開発の準備として、統合開発環境(IDE)と実行可能なElixir+Phoenix実行環境を準備します。
また、失敗時のやりなおしや、途中経過の確認への備えとしてGitHubとの連携によるバージョン管理について学習します。

# 開発環境を準備する

本チュートリアルでは、WebIDE環境 Replitを使用します。

https://replit.com/

WebIDEを使用することで、入門者が躓きがちなプログラムSDK、フレームワーク、多種のライブラリ導入など面倒な環境構築作業を可能な限り少ない時間で完了することができます。
全体として以下のようなメリットがあります。

- 標準で用意された実行環境イメージによる容易な環境構築
- ライブラリ管理システムによる容易なライブラリ導入
- 比較的容易なGitHubとの連動によるバージョン管理の導入
- Web経由での複数人同時コーディング


本稿執筆時点では以下のElixir＋Phoenix実行環境を数ステップで構築可能です。

- Erlang/OTP 24
- Elixir 1.12.3
- phoenix 1.6.6
- phoenix_live_view 0.17.6

自身で構築した環境で演習したい方は上記バージョンでの動作が前提であることをご了承ください。




# プロジェクトを作成する

Replitでアカウントを作成し、最初の画面が表示されたら、左サイドのメニューより「+ Create」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/55ad9662-6d0f-1d07-063b-44932a960df3.png)

検索フォームに elixir と入力し、表示されるTemplateからPhoenixを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/db751bbe-34d9-c0d5-819e-40904fafef34.png)


Titleを入力し、「＋ Create Repl」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/0a4164cb-7340-3eb1-b9f1-ba702c501ced.png)


プロジェクトが作成され、IDE環境が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/60a990e8-af3c-cc56-de2c-c684e6bf3692.png)


この段階でデフォルトのPhoenixプロジェクトが作成されています。 
上部のRunボタンをクリックすることでデフォルトで生成されているWebアプリケーションを起動することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/a9b9f8d9-ba66-93e4-4ea9-81e1f72070f7.png)

起動すると、ブラウザ内でWebviewが起動し、初期状態のPhoenixWebアプリケーションのトップページが表示されます。


# GitHubと連携してバージョン管理を行う

## GitHub上にリポジトリを作成する。

失敗した場合のやり直しや、途中状態の記録の為、予めバージョン管理システムの導入、設定を行っておくことは重要です。
Replitでは標準で用意されたメニューから、開設済のGitHubアカウントとの連携を行うだけで、容易にバージョン管理を行うことができます。

左端のToolメニューから「Version control」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/85a18a02-4bb8-1dee-b287-7c5cfe9da923.png)


「＋Create a Git repo」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/58c2dc55-c428-a61f-d1e0-377b98aeb2f8.png)


ReplitでGitHub連携を行うのが初めての場合は、Connect to GitHubをクリックし表示されるダイアログに従いGitHubとReplitの連携を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/09925cef-b5dc-b5d1-ca69-aa740780ec83.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/ebaa18ed-ad02-f5a4-0c53-f401622bc9b9.png)



GitHubと連携済の場合、表示される「New repo」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/c4b4d477-8eec-b33c-19c4-b8c528da543a.png)

表示されるダイアログの必要事項を入力し「＋ Create repository」ボタンをクリックしてGitHub上にリポジトリを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/8491ac8e-1a46-355a-fdc3-cad8bf17d432.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/136d7d91-3d95-394d-391a-3cadbc1eb8c4.png)

GitHubにアクセスすると、リポジトリが作成されたのが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/87dca52e-fcfc-42d3-1f65-a16085b63538.png)


## GitHub上に現在のプロジェクトを保存する

プロジェクト上のリソースに変更を検知した場合、「Version Control」メニューに
「Commit All & Push ->」ボタンが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/d2bf49db-fe83-0f15-1242-7176203f9834.png)

コメントを入力して、「Commit All & Push ->」ボタンを押すことで現在の状態を保存することができます。

## 保存した履歴からプロジェクトの状態を元に戻す

保存した履歴がある場合、「Version Control」メニューに「Previous Commits」として過去の保存(Commit)履歴が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/243163/c8a249d3-4a06-b697-b52f-4cdbe27ed674.png)

コメントや保存日時から目的のCommit履歴を探し、「Revert to here」ボタンをクリックすることで、その時点の状態を読み込むことができます。

# 次の章

https://qiita.com/tuchiro/items/0bbead6902fcf2372a48

# 関連情報

-この演習完了時点のリポジトリ断面

https://github.com/TakutoYoshimura/LiveViewJpTutorial_PiyoPiyoExPortal/releases/tag/v0.0.0-create-new-project