Vercelに感動してJavaScript、Next.js、Figmaを再学習し、ポートフォリオを作った話【学習メモ】

# はじめに

自分は社内SEとデザイナーの中間くらいの存在ですが、IT業界に関わる身としては、どんな職種にせよ業務外でのスキルアップも肝心となり、小規模でも実際にWebサイトやアプリを制作していくのが知識や経験を深める上で重要かと思います。

が、どうしてもサーバー契約とかFTPクライアントでのサイト更新（少し前まで「FFFTP」を使ってました…）が面倒に感じる部分もあり、途中で自然消滅したり、公開前に放棄してしまうことがありました。

そんな中、WebホスティングサービスのVercelを知り、
Gitにpushだけで更新できるという利便性に感動。

Pythonのスクレイピングなどを用いて、自分用の情報検索ツールを開発していましたが、ふわぁ〜っとしか理解していないJavaScriptやNext.js、それに最近盛り上がりを見せているfigmaを学び直そうと思い、何年ぶりかのリニューアルとなるポートフォリオ制作に取り組みました。

振り返りがてら`学習方法`を紹介していきつつ、今後の学習予定をまとめていきます。


`やる前の知識`
- デザインソフトは基本的にIllustrator、Photoshop、XDなどを利用。
- html、CSSはおおよその使い方は分かる。不明点はつど調べている。
- JavaScriptはすでにあるコードの編集のみを、雰囲気でやっている。

`覚えた知識`
- Figmaは一通り使える。
- JavaScriptはDOM操作はおおよそできる。
- Next.jsの基本の記法やディレクトリ構成は理解している。
- CSSのflexboxとGridを使い分けられる（想定外の学習）。

## JavaScript学習編

今回のポートフォリオ作成とは直接の関連性はないですが、改めて学ぶこととしました。
理由としては、APIの利用だけではなく、インタラクティブな動的要素を付与するときに
JavaScriptの利用が必要になってきて、グラフィカルなサイトには必須と思ったからです。

学び方としては、youtubeでプログラミング講座を公開されているチャンネル、「しまぶーのIT大学」さんの【基礎から学ぶ JavaScript 入門】が非常に分かりやすく参考にさせて頂きました。

https://www.youtube.com/@shimabu_it

基本的にはNotionに動画埋込で再生しつつ、Notion内でそのままメモを取って学習しました。
これならギリ1画面に収まるので喫茶店でも学習しやすい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/6b22d63a-20af-85ff-3bb3-95ed0cab38e1.png)

動画視聴後にはローカル内にテストページを作成し、実践でJavaScriptの挙動に慣れていってみたりしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/73562ea6-744e-fee5-579f-8ae83b9109c0.png)

まだ全然さわりの部分ですが、DOM操作はなんとなくわかってきたため、一旦JavaScriptは切り上げて次へ進みました。
なお、「とは言えJavaScriptで何ができるんだ？」という気持ちが微妙にあったため、[「JavaScriptコードレシピ集」](https://www.amazon.co.jp/JavaScript-%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%82%B7%E3%83%94%E9%9B%86-%E6%B1%A0%E7%94%B0-%E6%B3%B0%E5%BB%B6/dp/4297103680/ref=sr_1_1?adgrpid=104398006300&hvadid=664260556496&hvdev=c&hvlocphy=20636&hvnetw=g&hvqmt=e&hvrand=13455086699213689017&hvtargid=kwd-944344261394&hydadcr=1820_13625281&jp-ad-ap=0&keywords=javascript+%E3%82%B3%E3%83%BC%E3%83%89+%E3%83%AC%E3%82%B7%E3%83%94&qid=1690133176&sr=8-1)を購入しています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/776102e5-6b57-3806-29c7-0384c0567ac4.jpeg" width="200">

## Next.js学習編

Next.jsに関しても「しまぶーのIT大学」さんの動画で解説して下さっていたため、こちらもNotionでメモを取るというフローをとっております。
ただし、動画だけでなく、落ち着いて読めるものも欲しいと感じ、[「作って学ぶ　Next.js/React　Webサイト構築」](https://www.amazon.co.jp/%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6-Next-js-Web%E3%82%B5%E3%82%A4%E3%83%88%E6%A7%8B%E7%AF%89-Compass-Development/dp/4839980179)という本も購入しました。


　ただ、今回、コンポーネントの概要や基本的な記法は理解したものの、React Hooksのあたりは理解・実践ができていないので引き続き学びたいと思います…！

## Figma学習編

Adobe帝国時代に終止符を打つ、革命軍Figma。
オブジェクトの移動とかそういった基本部分はわかっていたものの、
コンポーネントやインスタンス、オートレイアウトといった部分は今回初めて学びました。
参考にさせて頂いた資料は、[書籍「Figmaデザイン入門〜UIデザイン、プロトタイピングからチームメンバーとの連携まで〜」](https://www.amazon.co.jp/Figma%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E5%85%A5%E9%96%80%E3%80%9CUI%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%80%81%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%8B%E3%82%89%E3%83%81%E3%83%BC%E3%83%A0%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%A8%E3%81%AE%E9%80%A3%E6%90%BA%E3%81%BE%E3%81%A7%E3%80%9C-%E7%B6%BF%E8%B2%AB-%E4%BD%B3%E7%A5%90/dp/4297133784/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=15ZZ707FKOVAD&keywords=figma+%E7%B6%BF%E8%B2%AB&qid=1690134038&sprefix=figma+%E7%B6%BF%E8%B2%AB%2Caps%2C179&sr=8-1)と[youtubeのヒロコードさんの動画](https://www.youtube.com/watch?v=U3CaUBlDkg0)です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/8166a1e2-9c36-4e18-7918-985a997bfde5.jpeg" width="200">

ちなみにこのタイミングでFigmaのアップデートがありましたが、ヒロコードさんが解説してくれてたので助かりました。　

https://www.youtube.com/watch?v=6_585kvqmGk

それらで学習させて頂き、ポートフォリオのサイトデザインとして下記を作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/9d1cabf0-c2f4-8738-8c02-e20ed92a7688.png)

正直言えばfigmaの使い方よりもデザインに苦戦した感はあります。
商業デザインはターゲットを意識すれば自ずとセオリーも決まってくるものですが、ポートフォリオとなると「自分はどういうものが好きなんだ？」と自問自答することになるので日々のインプットと自分自身の理解が重要…！

# 完成

Next.jsにてコーディングし、サイトとしては一応完成しました。
※あえて画質は落としておりますｗ

![シーケンス 01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211946/6985415b-f50f-836c-1435-c6780810cbfa.gif)

が、`とりあえず動く`＆`完璧を求めて時間をかけすぎない`ことを優先しており、荒い部分もあるため、まだ色々（レスポンシブ対応とか）行わなきゃいけなさそうです_(┐「ε:)_

## 反省＆感想

行っている中で感じたことの一部です。

- 「しまぶーのIT大学」さんの解説はめちゃくちゃ分かりやすい。
    - 過去参考書を何冊も投げてきたが、全然挫折せずに進められた
- 一方で落ち着いて読むことのできる書籍も学習が少し進んだ所で整理に役立つ
- FigmaプラグインのUnsplash神すぎる
- jsxで学んだが実際使っているのがtsxであり、ファイル名などよく分からない部分多々。
- 最初からコンポーネントを分けると書く切替が大変になるため、最初に書ききってから分けたけどこれで正しいのか…？
- Nextはもっとラクにコードを書けそうな気がしている。ClassName複数の時とか、画像のサイズ指定とか。
- Figmaのオートレイアウトを中途半端に使ってたが、もっと突き詰めればほぼ自動でコーディングできる？
    - 現状でも取り敢えずスタイルをコピーすればそれなりには見れるので便利。小数点四捨五入できないかな
- CSSはグリッドジェネレーターとかもあるので活用すると複雑なレイアウトも早くなる
- VScodeのコード補完があんまり効いて無くて結構手打ちすることになったので見直したい

# さいごに

学習メモであり、まとまり無くてすみません。
今だとNext.jsにhtmlを書いているのに過ぎない感じはあるので、
使いこなせるよう学習を進めていきます。
とは言え、Vercelとの組み合わせによる公開までのラクさは全Web開発者に味わってほしい所存…！