2025年5月24日土曜日

【第1回】React + Vite + TypeScript + MUIで開発環境を最速構築しよう【2025年版】

✅はじめに

こんにちは!このシリーズでは、React + Vite + TypeScript + MUIという現代的な技術スタックを使って、Webアプリを開発する方法をステップバイステップで解説していきます。

第1回となる今回は、開発環境の構築と初期プロジェクトの作成、そしてMUIを使った簡単なUI表示までを行います。

📦使用する技術スタック

ツール バージョン 説明
React 19.1.0 フロントエンドJavaScriptライブラリ
Vite 6.3.5 爆速な開発環境を提供するビルドツール
TypeScript 5.8.3 型安全なJavaScriptのスーパーセット
MUI 7.1.0 Googleのマテリアルデザインに基づいたUIライブラリ

🛠1.必要なツールの準備

以下がインストールされていることを確認してください。

  • Node.js(最新版)
  • 任意のエディタ(例:Visual Studio Code)

🚀2.プロジェクトの作成

以下のコマンドをターミナルで実行して、Vite + React + TypeScript のプロジェクトを作成します。

npm create vite@latest my-react-app -- --template react-ts
cd my-react-app
npm install

🎨3.MUIのインストール

次に、MUIのライブラリとRobotoフォントをインストールします。

npm install @mui/material @emotion/react @emotion/styled
npm install @fontsource/roboto

🧹4.index.cssを空にする

Vite のテンプレートには、初期状態でスタイルが含まれています。このスタイルは MUI のレイアウトに干渉するため、src/index.css の中身をすべて削除(もしくはコメントアウト)してください。

🧑‍💻5.main.tsxの編集

Robotoフォントを適用するために、src/main.tsxを以下のように編集します:

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.tsx'

// Robotoフォントのインポート
import '@fontsource/roboto/300.css';
import '@fontsource/roboto/400.css';
import '@fontsource/roboto/500.css';
import '@fontsource/roboto/700.css';

createRoot(document.getElementById('root')!).render(
  <StrictMode>
    <App />
  </StrictMode>,
)

👨‍💻6.App.tsxの作成

次に、src/App.tsxを以下のように書き換えて、MUIのコンポーネントとRobotoフォントを使用したUIを作成します:

import { useState } from 'react'
import { Button, Container, Typography, ThemeProvider, createTheme, Box } from '@mui/material'

type CounterProps = {
  initialCount?: number;
};

// カスタムテーマを作成
const theme = createTheme({
  typography: {
    fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif',
  },
});

function App({ initialCount = 0 }: CounterProps) {
  const [count, setCount] = useState(initialCount)

  return (
    <ThemeProvider theme={theme}>
      <Container maxWidth="sm" sx={{ textAlign: 'center', mt: 5 }}>
        <Typography variant="h4" gutterBottom>
          React + Vite + MUI スターター
        </Typography>
        <Typography variant="body1" gutterBottom>
          カウント: {count}
        </Typography>
        <Button variant="contained" onClick={() => setCount(count + 1)}>
          カウントを増やす
        </Button>

        {/* フォントの比較表示 */}
        <Box sx={{ mt: 4, display: 'flex', flexDirection: 'column', gap: 2 }}>
          <Typography variant="h6">
            フォントの比較
          </Typography>
          <Typography sx={{ fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif' }}>
            これはRobotoフォントです (The quick brown fox jumps over the lazy dog)
          </Typography>
          <Typography sx={{ fontFamily: 'system-ui, -apple-system, sans-serif' }}>
            これはシステムフォントです (The quick brown fox jumps over the lazy dog)
          </Typography>
        </Box>
      </Container>
    </ThemeProvider>
  )
}

export default App

✨主な変更点と改善点

  1. Robotoフォントの追加: MUIのデフォルトフォントであるRobotoを正しく実装
  2. ThemeProviderの導入: フォントファミリーを明示的に設定し、一貫したデザインを実現
  3. TypeScriptの活用: CounterPropsインターフェースを定義し、型安全性を確保
  4. フォント比較機能: Robotoフォントとシステムフォントの違いを視覚的に確認可能

✅表示確認

以下のコマンドで開発サーバーを起動しましょう。

npm run dev

ブラウザでhttp://localhost:5173を開くと、以下の要素が確認できます:

  • Robotoフォントを使用したヘッダーテキスト
  • カウンター機能付きのボタン
  • フォントの違いを確認できる比較セクション

🔚まとめ

これで、React + Vite + TypeScript + MUI の環境が整い、Robotoフォントも正しく実装されました!

📌次回予告

次回は、この環境を使って複数ページを作成する方法(React Router)を紹介します。お楽しみに!

2024年12月15日日曜日

C#をはじめよう!:Visual Studioインストール

 C#を始めるには、Microsoftが無料で提供する高機能なIDE、Visual Studio Community Editionを使うのがおすすめです。この記事では、Visual Studio Community Editionのインストール手順を解説します。

Visual Studio Community Editionのインストール

1. Visual Studioのダウンロード

  1. Visual Studioのオフィシャルサイト へアクセスします。

  2. トップページの「Download Visual Studio」ボタンから、Community Editionを選択します。

2. Visual Studio Installerの起動

  1. ダウンロードしたファイルをクリックして、Visual Studio Installerを起動します。

  2. Installerが起動したら、インストールするロールを選択します。

3. C#開発環境の選択

  1. Installerで「.NET desktop development」のワークロードを選択します。

  2. チェックボックスがある場合は、そのまま進めます。

  3. 「Install」ボタンをクリックして、インストールを始めます。

4. Visual Studioの起動

  1. インストール完了後、Visual Studioを起動します。

  2. 初回起動時には、テーマを選択します。例えば、ダークモードやライトモードが選べます。

  3. 「Create a new project」を選択し、プロジェクト作成の準備をします。

おわりに

これでVisual Studio Community Editionのインストールは完了です。次の記事では、初めてのC#プログラムを作成する手順を解説します。ぜひ、Visual Studioを使ってC#の開発を楽しんでください!

【MySQL 8.4.3 LTS】WindowsでZip Archiveからインストールする方法

✅はじめに

こんにちは!今回は、MySQL 8.4.3 LTSをWindowsにインストールする際に、Zip Archiveを使用する手順を解説します。この方法は、軽量で柔軟なセットアップが可能なため、インストールディレクトリを自由に指定したい場合や、複数のMySQLバージョンを管理したい場合に適しています。




📦1. MySQL 8.4.3 LTSのZip Archiveをダウンロード

  1. MySQL公式サイトにアクセスします。
  2. 「MySQL Community (GPL) Downloads »」を選択します。
  3. 「MySQL Community Server」をクリックし、ページ下部の「Looking for previous GA versions?」を選択してバージョン一覧を表示します。
  4. OSとして「Microsoft Windows」を選択し、Windows (x86, 64-bit), ZIP Archiveをダウンロードします。
  5. 「No thanks, just start my download」をクリックしてダウンロードを開始します。



🗂2. ダウンロードしたZipファイルの解凍

  1. ダウンロードした mysql-8.4.3-winx64.zip を右クリックして、解凍します。
  2. 解凍先は自由ですが、推奨ディレクトリとして以下のような場所を使用します:
    C:\mysql



⚙️3. MySQLの初期設定

  1. my.iniファイルの作成
    解凍先のフォルダに移動し、以下の内容で my.ini ファイルを作成します:


[mysqld]
# 基本設定
basedir=C:/mysql datadir=C:/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port=3306
  • basedir と datadir は解凍先に応じて変更してください。
  • datadir フォルダはこの後に作成します。
  1. データディレクトリの作成
    C:\mysql フォルダ内に新しく data フォルダを作成します。
  2. 初期化コマンドの実行
    コマンドプロンプトを管理者権限で開き、次のコマンドを実行してデータディレクトリを初期化します:

cd C:\mysql\bin mysqld --initialize --console
  • 初期化が成功すると、一時的なrootパスワードが表示されます(例:A temporary password is generated for root@localhost: <パスワード>)。このパスワードをメモしておきます。



🚀4. MySQLを起動する

  1. MySQLサーバーの起動
    初期化が完了したら、次のコマンドを実行してMySQLサーバーを起動します:

mysqld
  • サーバーはバックグラウンドで実行され、3306 ポートで待機します。
  1. MySQLサーバーの停止方法
    別のコマンドプロンプトを開き、次のコマンドを使用してサーバーを停止できます:

mysqladmin -u root -p shutdown



🔐5. MySQLへのログインと初期設定

  1. MySQLへのログイン
    別のコマンドプロンプトを開き、次のコマンドを実行します:

mysql -u root -p 
  • 一時的なパスワードを入力すると、MySQLプロンプトにログインできます。
  1. rootパスワードの変更
    セキュリティ向上のため、rootアカウントのパスワードを変更します:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
  1. 設定の確認
    以下のコマンドを実行して、MySQLが正常に動作していることを確認します:

SELECT VERSION();



🖥6. MySQLをWindowsサービスとして登録(オプション)

Windowsの起動時に自動的にMySQLを起動させる場合、サービスとして登録します。

  1. サービス登録コマンド
    次のコマンドを実行してサービスを登録します:

mysqld --install MySQL
  1. サービスの起動
    サービスを起動するには、以下のコマンドを実行します:

net start MySQL
  1. サービスの停止
    サービスを停止する場合は、以下のコマンドを実行します:

net stop MySQL



💡7. 注意点と補足

  • セキュリティ強化
    必要に応じてユーザー権限を設定し、rootアカウント以外のユーザーを作成してください。
  • 環境変数の設定
    コマンドを簡略化するために、C:\mysql\bin を環境変数 PATH に追加することをおすすめします。



🔚まとめ

この記事では、MySQL 8.4.3 LTSをWindows環境にZip Archiveを使用してインストールする手順を解説しました。インストールが完了したら、必要に応じてMySQL WorkbenchなどのGUIツールを利用してデータベースを管理することも可能です。

この記事が参考になれば幸いです!質問や不明点があればコメントでお知らせください。

2022年6月7日火曜日

Xcodeのインストールがなかなか終わらない

 Xcodeをアップデートしているときに、なかなかインストールが終わらないとか、何か問題が起きて止まってる?みたいなことがあると思いますが、ただ単純に時間が掛かっている場合があるようです。その場合には、インストールログをtailで見て動いているか確認できます。

ちなみに、アップデートが完了するまでに約1時間...やる気が削がれますw

tail -f /var/log/install.log

2021年11月12日金曜日

Vue.jsでAvoid mutating a prop directly since the value ... が発生した場合の対応メモ

 Vue.jsで「Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: xxxx」というワーニングが出たので、以下のような対応をして回避しました。


発生原因

親コンポーネントから渡すデータを、子コンポーネント側で変更しようとしていたため出たワーニングと思われます。
エラーメッセージをGoogle翻訳で訳してみると「親コンポーネントが再レンダリングされるたびに上書きされるため、Propを直接変更することは避けてください。...」らしいです。

対応方法

子コンポーネントで値を代入している箇所があったので、該当箇所を修正しました。その後ワーニングは出なくなりました。

その他情報

vue 2.6.12
typescript 3.9.7

2021年11月10日水曜日

WSL2(Windows Subsystem for Linux2)でnpm installやvue createなどが遅い件

 WSL2(Windows Subsystem for Linux2)でnpm installやvue createなどのコマンド操作が遅い

本日2本目のブログ投稿です^^;つい先日Surface Pro 8を購入して、vue.jsの環境を構築しようとWSL2を使ってみたのですが、npmやvue createといったコマンド操作が非常に遅くて困ってました。結局解決できず、WSLで設定しなおすことにしたので、その手順をメモ次いでに記載します。
※今後解決できれば、それもブログに書きたいと思っています。

作業手順

(1)Windows PowerShellを起動する。

(2)コマンド「wsl --list --verbose」と入力し、現在の状態を確認する。
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         2

(3)コマンド「wsl --set-version Ubuntu-20.04 1」と入力して、実行環境をWSL2からWSLに切り替える。数分かかるのでしばらく待機する。

(4)終わったら、再度(2)のコマンドを実行して、状態を確認する。
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         1

WSL2からWSLに切り替えたことにより、npm installやvue createのコマンド操作の時間が改善されました。すごい早いわけではないですが...
WSL2だと、Windowsのファイルシステム(/mnt/c/xxxx)を参照すると非常に遅いといった書き込みなど多数見かけましたが、私はLinux上のhomeディレクトリで作業していたので、関係ないよなぁと思いつつ、たぶんネットワークのI/Oが遅いのかなぁと思って、ネットを徘徊していましたが、遅い理由が見つけられませんでした。

しばらくはWSLで様子をみつつ、WSL2のほうもたまにネットで調べてみようと思っています。

iPhoneのMagSafeバッテリーパックについて

iPhoneの背面に取り付けるMagSafeバッテリーパックを購入!

前回の投稿からだいぶ間が空いてしまいましたが、久しぶりのブログ投稿です^^;1年ほど前からコロナ禍で在宅勤務が増えて、自分の勉強を兼ねてブログを書こうと思っていましたが、やっと書く気になりましたw
基本的にはプログラミングネタを書くのですが、最近買ったガジェットとかも紹介してみようと思います。
※アフィリエイトやってないので、自由気ままに書きます。

購入の動機

iPhone12 Pro Maxを使用しているのですが、MagSafeで充電できるモバイルバッテリーがあったら便利だなぁと思い購入しました。

結論

先ほど述べた通り、アフィリエイトではないので自由な感想を述べますが、率直に申し上げてコスパが悪く、期待していたレベルのものではないなぁと思っています。完全に私の事前調査不足です。この製品を有効に活用するためには、製品の特長を理解して使うようにする必要があると思います。とはいえ、せっかく買ったので、外出時には積極的に装着して使うようにしています。
以下、良い点、悪い点、総評など好き勝手に述べていきます。

良い点

  1. アップル純正のモバイルバッテリーなので、安心して使用できる。アップルの純正ケースをつけていても使用することができ、デザインも良いと思っています。
  2. iPhoneにMagSafeで取り付け・取り外しができるので楽です。ただ、MagSafeモバイルバッテリーパック自体はライトニングケーブルで接続して充電する必要があります。
  3. モバイルバッテリーのほかに、MagSafe充電器のような使い方もできる。ただ、充電スピードまでは確認してません。

悪い点

  1. MagSafeバッテリーパックが満充電の状態でも、iPhoneを完全に充電することはできない。補助バッテリーみたいな感じ?で、iPhone本体の電池の減りを緩やかにするイメージ。
  2. コストパフォーマンスが悪い。MagSafeバッテリーパックの価格で、モバイルバッテリーがいくつ買えるだろうか...
  3. MagSafeバッテリーパック本体が滑りやすく、iPhoneに装着すると重みも増すので、落としそうで不安になる。
  4. 厚みがそこそこあるので、ズボンのポケットとかに入れるのは厳しい。重みも増すので、ちゃんとベルトとかしないとズボンが下がってくる。カバンにiPhoneしまうと、suica使いたいときに不便なので、そういう時は外してポケットに入れてます。

総評

外出先でiPhoneの電池残量が少なくなった時に、MagSafeバッテリーパックで充電しよう!みたいな使い方を想定している方は、この製品はやめたほうが良いと思います。MagSafeバッテリーパックのバッテリー容量は1460mAhで、iPhone12 Pro Maxのバッテリー容量は3687mAhです。MagSafeバッテリーパックはiPhone本体の半分以下となっているようです。
使い方としては、iPhone本体のバッテリー容量を増やすようなイメージで、MagSafeバッテリーパックを装着すると、iPhone本体の電池の減りが緩やかになります。

お値段は、アップル公式で11,800円(税込)しますが、純正品で、安心して使えて、iPhoneのバッテリー消費を緩やかにして、さらにデザインがとても好きって人は買ってもよいのかもしれません。
単純に外出先でiPhoneを充電したいという方は、ほかのモバイルバッテリーを検討することをお勧めします。