Contents
現代的なスタックでReact NativeとTypeScriptを学ぶ
現在のモバイル開発環境では、Expo + Vite + Tailwind CSSの組み合わせが注目されています。このスタックは開発効率の向上やデザインの一貫性を実現するため、特に初心者向けに最適です。本記事では、React NativeとTypeScriptを組み合わせたアプリ開発の基礎を、具体的な手順とともに解説します。
開発環境の準備
モバイル開発の第一歩は安定した環境構築です。以下に必要なツールや設定について解説します。
Node.js LTS版の導入とバージョン確認
Node.jsの最新LTS版をインストールすることで、TypeScriptやExpoとの互換性が向上します。
- Node.js公式サイトから「LTS」版を選択してダウンロードしてください
-
インストール後、以下のコマンドでバージョンを確認しましょう
bash
node -v # 例: v20.11.0
npm -v # 9.x以降が推奨 -
実行環境に不具合がある場合、nvmでバージョン管理を活用してください
注意点:Node.js LTS版は最新のReact Native(0.71以降)との相性に優れていますが、最新技術動向には常に目を向けましょう。
Viteによるプロジェクト生成とTailwind CSS導入
ViteはJavaScriptプロジェクトの初期設定を簡素化するツールです。以下のようにプロジェクトを作成します:
| ステップ | 内容 |
|---|---|
| 1. プロジェクトディレクトリ作成 | mkdir my-react-native-app && cd $_ |
| 2. Viteでテンプレート生成(TypeScript対応) | npm create vite@latest --template react-ts |
| 3. 必要パッケージインストール | npm install expo-router tailwindcss postcss autoprefixer |
| 4. Tailwind CSS初期設定実行 | npx tailwindcss init -p |
TypeScriptの型定義ファイル設定
TypeScriptを導入する際には、React Native特有の型情報を正しく読み込む必要があります。
tsconfig.jsonの最適化方法
-
プロジェクトルートに
tsconfig.jsonを作成し、以下のように設定します:
json
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"jsx": "react-jsx",
"esModuleInterop": true,
"skipLibCheck": true,
"strict": true,
"baseUrl": ".",
"paths": {
"*": ["node_modules/*", "src/*"]
}
},
"include": ["src/**/*"]
} -
React Native用の型定義ファイルを追加
bash
npm install @types/react-native --save-dev
リアクティブスタックの拡張
Webとネイティブ環境の両方で開発できるようにするには、React Native for Webとの併用が効果的です。
React Native for Webとの併用手法
-
必要パッケージをインストール:
bash
npm install react-native-web -
package.jsonに以下を追記:
json
"browserslist": {
"production": ["last 1 version", ">0.5%", "not dead"],
"development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"]
} -
Webで動作確認するには、以下のようにしてみましょう:
bash
npx react-native-web start
Tailwind CSSによるモバイルスタイリング
TailwindはCSSインライン化により開発効率を飛躍的に向上させます。
導入手順とスタイル定義の最適化
-
tailwind.config.jsに以下を記述:
js
module.exports = {
content: ["./src/**/*.{js,ts,tsx}"],
theme: {
extend: {
colors: {
primary: "#3b82f6"
}
}
},
plugins: []
} -
CSSインライン化を活かしたスタイル定義
tsx
import { View, Text } from 'react-native';
export default function App() {
return (
);
}
注意点:
@apply構文はCSS Modulesとの併用を想定しており、リアクティブスタックと矛盾する可能性があります。
ネイティブモジュール連携のベストプラクティス
TypeScriptとネイティブコードを安全に連携させるには、以下の手順を実施します。
インターフェース設計と型定義
-
インターフェースの明確化と
.d.tsファイルでの型定義
typescript
// @types/native-module.d.ts
declare module "native-module" {
export function fetchData(id: number): Promise<string>;
} -
ネイティブコード側では、このインターフェースに沿った実装を行います。
実践プロジェクトの作成と公式ドキュメントとの連携
学習した知識を活かすには、実際にアプリを開発することが最も効果的です。
サンプルプロジェクトの作成手順
-
Expo CLIでプロジェクト生成:
bash
npx create-expo-app my-app --template expo-template-blank-typescript -
生成されたプロジェクトにViteとTailwind CSSを追加(先述の手順を参考)
公式ドキュメントとの連携方法
公式ドキュメントと並行して学習することで、最新の技術動向を把握できます。
- React Native公式ドキュメント
- Expo公式ガイド
- Tailwind CSSドキュメンテーション
実践を通じて知識を深め、本記事の内容と合わせて開発スキルを磨いてください。