🔰

Flutterに触れたことがある人必見!似ているから始めやすい「Chakra UI」

2024/12/09に公開

こんにちは!
もしWeb開発を始めたいなら「Chakra UI」をぜひ試してみてください!
特にNext.jsでWebアプリを作りたいと思っている方にはおすすめのUIライブラリです。この記事では、FlutterとChakra UIの共通点を具体例を交えながら解説し、Flutter経験者がChakra UIを使うメリットをご紹介します。

ChakraUI公式ドキュメント

Chakra UIとは?

ChakraUIは、Webアプリケーション開発のために設計されたシンプルなモジュール式のコンポーネントライブラリです。すぐに使える部品が揃っているため、コードの記述量を大幅に削減し、開発の効率を高められます。

FlutterとChakra UIの共通点

Chakra UIを使えば、Flutterのようなコンポーネントベースの開発スタイルをそのまま活かすことができます。では、実際のコード例を比較して、どのように似ているのかを見ていきましょう。

1. Centerコンポーネント

Chakra UIの<Center>コンポーネントは、FlutterのCenterウィジェットに相当します。

Chakra UIのコード:

import { Center, Text } from '@chakra-ui/react';

<Center bg="teal.100" p={4} shadow="lg" borderRadius="md">
  <Text fontSize="lg" fontWeight="bold">
    今日は朝から寝坊した〜
  </Text>
</Center>

Flutterのコード:

Card(
  color: Colors.teal[100],
  shadowColor: Colors.grey,
  elevation: 4,
  shape: RoundedRectangleBorder(
    borderRadius: BorderRadius.circular(8),
  ),
  child: Padding(
    padding: const EdgeInsets.all(16.0),
    child: Text(
      "今日は朝から寝坊した〜",
      style: TextStyle(
        fontSize: 16,
        fontWeight: FontWeight.bold,
      ),
    ),
  ),
);

ポイント:

  • Chakra UIでは、<Center>を使用して、中央寄せのレイアウトを簡単に作成できます。
  • 背景色や高さ、文字色などもプロパティで直感的に指定可能です。

2. Containerコンポーネント

Chakra UIの<Container>は、FlutterのContainerウィジェットと似ています。

Chakra UIのコード:

import { Container } from '@chakra-ui/react';

<Container>
  <div />
</Container>

Flutterのコード:

Container(
  child: const SizedBox(),
);

ポイント:

  • Chakra UIの<Container>は、レイアウトの幅を制限したり、中央寄せの役割を持っています。
  • Container内部のコンテンツをシンプルにラップできるため、レイアウト調整が容易です。

3. Cardコンポーネント

FlutterでおなじみのCardも、Chakra UIでは簡単に作成できます。

Chakra UIのコード:

import { Card, CardBody, Text } from '@chakra-ui/react';

<Card direction="column" overflow="hidden" variant="outline">
  <CardBody>
    <Text>やほやほ</Text>
  </CardBody>
</Card>

Flutterのコード:

Card(
  shape: const RoundedRectangleBorder(),
  child: Column(
    children: const [
      Text(
        "やほやほ",
        style: TextStyle(
          overflow: TextOverflow.ellipsis,
        ),
      ),
    ],
  ),
);

ポイント:

  • Chakra UIの<Card>は、構造がFlutterのCardと非常に似ており、設定項目も直感的に使えます。
  • デフォルトのスタイルが整っているため、即座に見栄えの良いUIが構築可能です。

ChakraUIを使うメリット

  1. Flutterに似た命名規則と構造

    • CenterContainerCardなど、Flutterと同じ名前や役割を持つコンポーネントが多く存在します。
    • これにより、学習コストが低く、すぐにWeb開発に移行できます。
  2. 豊富なビルトインコンポーネント

    • Chakra UIには、すぐに使えるUIパーツが多数用意されており、ゼロから作る必要がありません。
  3. 効率的なスタイリング

    • プロパティベースでスタイルを設定できるため、CSSの記述が最小限で済みます。

ChakraUIを使うデメリット

  1. スタイリングの制限
    • 制約されたデザイン: Chakra UI のコンポーネントは統一されたスタイルを持つため、独自のデザインを作成する場合に柔軟性が制限されることがあります。
  2. SSR (Server-Side Rendering) のセットアップが複雑
    • Next.js などの SSR を活用する場合、適切なセットアップを行わないとスタイルが初期に適用されない問題が発生する可能性があります。

注意点

まとめ

Chakra UIは、Flutter開発者がWeb開発を始める際におすすめのツールです。共通点の多いコンポーネントやシンプルなAPI設計のおかげで、Webアプリの構築がスムーズになったり、デザインと統一性を確保出来ます。
Flutter触った事ある人ならではの視点でChakraUIを活用し、Webアプリを作ってみてください!

他にもMUIやYamadaUIなど色々あるのでそちらも覗いて見てください!

本記事が参考になれば幸いです!

アプリ開発サークル@IPUT

Discussion