Repolode
exyte

exyte/Chat

カスタマイズ可能なメッセージセル、組み込みのメディアピッカー、テキスト・メディア・音声・位置情報・書類に対応した、iOS向けSwiftUIチャットUIフレームワークです。

スター
1,893
フォーク
341
未解決の Issue
0
最終コミット
20 日前

これは何?

Chatは、SwiftUIアプリ向けのすぐに使えるチャット画面を提供するSwift packageです。ページネーション付きのメッセージ一覧、入力バー、送信フローを処理し、ネットワーク通信とデータ保存はアプリ側で行います。ユーザーがメッセージを送信すると、ライブラリは下書きをクロージャーに渡し、アプリ側で送信方法を決定できます。

メッセージセルと入力ビューは、カスタムのSwiftUIビルダーに置き換えられます。また、同じチャット内でカスタムセルとデフォルトのスタイルを組み合わせることもできます。メッセージメニューからの返信・編集・削除、長押しのコンテキストメニュー、スワイプ操作に対応しています。メッセージには、装飾テキストやMarkdown、写真や動画、音声録音、リンクプレビュー、Giphy経由のGIFやステッカー、任意のファイル、静的またはリアルタイムの位置情報を含められます。

iOS 17以降を対象としており、Swift Package Managerで配布されています。READMEには、Firestoreを使ったサンプルプロジェクトとモックボットのサンプルプロジェクトも含まれています。

主な機能

  • 01ネットワーク通信をアプリ側に任せる、ページネーション対応のメッセージ一覧と送信クロージャー
  • 02SwiftUIのビュー・ビルダーによるカスタムメッセージセルと入力ビュー
  • 03複数選択とカメラに対応した、写真・動画用の組み込みピッカー
  • 04デフォルトまたはカスタムの長押しメニューからの返信・編集・削除
  • 05テキスト、メディア、音声、プレビュー付きリンク、GIF、書類、位置情報に対応

ユースケース

  • SwiftUIで開発したiOSアプリに、アプリ内メッセージ画面を追加する
  • 既存のバックエンドを使い、独自の吹き出しデザインを備えたチャットUIを構築する
  • ピッカーを一から実装せずに、会話内で写真・動画・ファイルを送信する
  • メッセージ機能でユーザー間のリアルタイム位置情報共有を提供する

クイックスタート

  1. 1

    リポジトリのURLを使って、Swift Package Manager経由でパッケージを追加します

  2. 2

    ExyteChatをインポートし、メッセージを使ってChatViewを作成します

使う前に知っておきたいこと

  • SwiftUIで構築されており、iOSのみをサポートしています。
  • CocoaPodsのサポートはバージョン2.4.2以降、非推奨です。

トピック

よくある質問

Chat とは?
カスタマイズ可能なメッセージセル、組み込みのメディアピッカー、テキスト・メディア・音声・位置情報・書類に対応した、iOS向けSwiftUIチャットUIフレームワークです。 Chatは、SwiftUIアプリ向けのすぐに使えるチャット画面を提供するSwift packageです。ページネーション付きのメッセージ一覧、入力バー、送信フローを処理し、ネットワーク通信とデータ保存はアプリ側で行います。ユーザーがメッセージを送信すると、ライブラリは下書きをクロージャーに渡し、アプリ側で送信方法を決定できます。
Chat は無料で使えますか?ライセンスは?
Chat は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
Chat は今もメンテナンスされていますか?
活発にメンテナンス中。Chat の最終コミットは 2026年10月1日 です。
Chat は何に使えますか?
SwiftUIで開発したiOSアプリに、アプリ内メッセージ画面を追加する 既存のバックエンドを使い、独自の吹き出しデザインを備えたチャットUIを構築する ピッカーを一から実装せずに、会話内で写真・動画・ファイルを送信する メッセージ機能でユーザー間のリアルタイム位置情報共有を提供する
Chat のインストール方法は?
リポジトリのURLを使って、Swift Package Manager経由でパッケージを追加します ExyteChatをインポートし、メッセージを使ってChatViewを作成します
Chat はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/exyte/Chat

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト