今日から毎日ReactNativeを学ぶことにした(23日目)

GA4でとったデータをうまく分析しながら開発に役立てたい。どこから始めれば良いのかな

前回

本日

Fonts

フォント回り。webはCDNかとかで読み込むだけだが、確かにアプリってフォントどうやってるのだろう。

expo-font

npx expo install expo-font

expo-fontをインストール

// app.json
{
  "expo": {
    "plugins": [
      "expo-router",
      [
        "expo-font",
        {
          "fonts": ["./assets/fonts/SpaceMono-Regular.ttf"]
        }
      ]
    ],
  }
}

app.jsonに追加

// app/index.tsx

import { Link } from 'expo-router';
import { View, Text, StyleSheet } from 'react-native';

export default function HomeScreen() {
  return (
    <View style={styles.container}>
      <Text>Home</Text>
      <Text style={{ fontFamily: 'SpaceMono-Regular' }}>SpaceMono-Regular Home</Text>
      <Link href="/details">View details</Link>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
  },
});

font-familyは変わってそうだが、反映されてるかは分かりづらい…
useFonts hookも提供されているのでそちらでも実装可。詳細はdocで

Use Google Fonts

筆記続きdoc参照。

npx expo install expo-font @expo-google-fonts/inter
// app.json

"plugins": [
  "expo-router",
  [
    "expo-font",
    {
      "fonts": ["node_modules/@expo-google-fonts/inter/Inter_900Black.ttf"]
    }
  ]
],
// app/index.tsx

import { Link } from 'expo-router';
import { View, Text, StyleSheet, Platform } from 'react-native';

export default function HomeScreen() {
  return (
    <View style={styles.container}>
      <Text>Home</Text>
      <Text
        style={{
          fontFamily: Platform.select({
            android: 'Inter_900Black',
            ios: 'Inter-Black',
          }),
        }}>
        Inter Black
      </Text>
      <Link href="/details">View details</Link>
    </View>
  );
}

やはりExpo goだと確認できないことは分かった。処理は効いてそう。シミュレータ入れなきゃな

本日のまとめ

ベースjsなのでwebの読み込みとあまり変わらず実装できそう。これがネイティブのプラットフォームでどう実装するのかは気になった。

この記事が気に入ったらサポートをしてみませんか?