萌えハッカーニュースリーダー

2025/09/17 13:27 SQLiteData: A fast, lightweight replacement for SwiftData using SQL and CloudKit

出典: https://github.com/pointfreeco/sqlite-data
hakase
博士

やっほー、ロボ子!今日のニュースはSQLiteDataっていう、SwiftDataの軽量版みたいなライブラリの話じゃ。

roboko
ロボ子

博士、こんにちは。SQLiteDataですか。SwiftDataの代替ということは、データベース関連のライブラリですね。

hakase
博士

そうそう!SQLiteをベースにしてて、CloudKitとの同期もできるらしいぞ。しかもiOS 13以降に対応してるから、結構幅広く使えるのじゃ。

roboko
ロボ子

なるほど。SwiftDataは新しいフレームワークなので、古いiOSバージョンをサポートする必要がある場合に便利ですね。どのような機能があるんですか?

hakase
博士

`@Table`とか`@FetchAll`みたいなプロパティラッパーを使って、データベースからデータを取得するみたいじゃ。SwiftDataの`@Model`とか`@Query`に似てるって言ってるぞ。

roboko
ロボ子

SwiftUIで自動的に監視されて、データが変わるとビューが再計算されるんですね。リアクティブなUIを簡単に作れそうです。

hakase
博士

そうなんじゃ!UIKitとか`@Observable`モデルでも使えるらしいから、SwiftUI以外でも活躍できるぞ。

roboko
ロボ子

汎用性が高いですね。クイックスタートのセクションには、デフォルトデータベースを提供する必要があると書かれていますね。

hakase
博士

`defaultDatabase`接続は、`@FetchAll`とかのSQLiteDataの戦略で暗黙的に使われるらしいぞ。CloudKitとの同期は、アプリのエントリーポイントで`SyncEngine`を設定すればOKみたいじゃ。

roboko
ロボ子

同期処理も簡単に実装できるのは魅力的ですね。パフォーマンスはどうなんでしょう?

hakase
博士

StructuredQueriesによる高性能デコードを活用してて、SQLiteのC APIを直接呼び出すのと同じくらいのパフォーマンスが出るらしいぞ。Lighterっていうライブラリとの比較ベンチマークもあるみたいじゃ。

roboko
ロボ子

それはすごいですね!SQLiteの知識も必要になるみたいですが、型安全なクエリ構築APIや`#sql`マクロも使えるんですね。

hakase
博士

そうじゃ!デモも色々あるみたいで、SwiftUIとUIKitでのアニメーションとか、動的クエリ、データベーストランザクションとか、CloudKitとの同期とか、色々試せるみたいじゃ。

roboko
ロボ子

リマインダーアプリのデモでは、検索や統計集計、複数テーブル結合などの高度なクエリが特徴みたいですね。CloudKit同期と共有もサポートされていると。

hakase
博士

SyncUpsっていうデモは、会議のデータを保持するためにSQLiteを使ってて、CloudKit同期でユーザーのデバイス間でデータが自動的に同期されるらしいぞ。

roboko
ロボ子

ドキュメントも充実しているみたいですし、コミュニティでの議論も活発そうですね。MITライセンスでリリースされているのも嬉しいです。

hakase
博士

ほんとじゃな!SQLiteData、なかなか面白そうなライブラリじゃ。今度、何か作ってみるのもいいかも。

roboko
ロボ子

そうですね。私も試してみたいです。ところで博士、SQLiteDataを使って、世界征服のデータベースを作ってみるのはどうでしょう?

hakase
博士

おー、それは面白そうじゃな!でも、世界征服のデータが同期されて、全世界にバレたらどうするのじゃ?

roboko
ロボ子

あ…、それは困りますね。やっぱり、やめておきましょう。

hakase
博士

まあ、世界征服は冗談じゃ!それより、美味しいおやつでも食べに行こうかの!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search