Expoを使用してReact Nativeでマークダウン編集アプリを作成する基本的な手順を紹介します。
Expo Goの基本的な使い方がわからない場合は、以下の記事を参考にしてください。
プロジェクトのセットアップ
まず、create-expo-app
を使用して新しいExpoプロジェクトを作成します。
npx create-expo-app markdown-editor
cd markdown-editor
プロジェクトが作成されたら、必要な依存関係をインストールします。
npm install react-native-paper react-native-markdown-display
react-native-paper
: UIコンポーネントライブラリreact-native-markdown-display
: マークダウンを表示するためのライブラリ
メイン画面の作成
次に、マークダウンの入力と表示ができる画面を作成します。app/(tabs)/index.tsx
を編集して、以下のコードを追加します。
import React, { useState } from 'react';
import { ScrollView, TextInput, View, StyleSheet } from 'react-native';
import Markdown from 'react-native-markdown-display';
import { Appbar, Button } from 'react-native-paper';
export default function HomeScreen() {
const [markdownText, setMarkdownText] = useState('');
return (
<>
<Appbar.Header>
<Appbar.Content title="Markdown Editor" />
<Button onPress={() => setMarkdownText('')} mode="contained">
Clear
</Button>
</Appbar.Header>
<View style={styles.container}>
<TextInput
style={styles.input}
multiline
value={markdownText}
onChangeText={setMarkdownText}
placeholder="Write your markdown here..."
/>
<ScrollView style={styles.preview}>
<Markdown>{markdownText}</Markdown>
</ScrollView>
</View>
</>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 10,
backgroundColor: '#fff',
},
input: {
height: 200,
borderColor: '#ccc',
borderWidth: 1,
marginBottom: 20,
padding: 10,
borderRadius: 4,
fontSize: 16,
},
preview: {
flex: 1,
borderColor: '#ccc',
borderWidth: 1,
borderRadius: 4,
padding: 10,
},
});
コンポーネントの説明
- Appbar: 画面上部のヘッダー部分です。アプリのタイトルと「Clear」ボタンを配置しています。
- TextInput: マークダウンのテキストを入力するための入力フィールドです。
- Markdown:
react-native-markdown-display
を使用して、入力されたマークダウンテキストを表示します。 - Button: 入力フィールドをクリアするためのボタンです。
アプリの起動
すべてのコードが揃ったら、以下のコマンドを実行してアプリを起動します。
npx expo start --tunnel
Expo Goを使ってスマホでアプリを表示し、テキスト入力欄にマークダウンを入力すると、リアルタイムでプレビューが表示されます。
これで超シンプルにマークダウンでかいたテキストを表示するアプリができました。