
数百から数万のレコードから速く維持された強力な反応と反応ネイティブアプリを構築し、
| WATERMELONDB | |
|---|---|
| ⚡⚡️ | あなたが持っているデータの量に関係なく、あなたのアプリをすぐに起動します |
| ? | 数十万から数万の記録から高度にスケーラブル |
| ? | 怠zyなロード。必要なときにデータをロードします |
| オフラインファースト。独自のバックエンドと同期します | |
| マルチプラットフォーム。 iOS、Android、Windows、Web、およびnode.js | |
| ⚛⚛️ | React用に最適化されています。データをコンポーネントに簡単に接続できます |
| ? | フレームワークに依存します。 JS APIを使用して、他のUIフレームワークに接続します |
| ⏱ | 速い。リリースごとに速くなります! |
| ✅ | 証明されています。 2017年以来のパワーノズベ(および他の多く) |
| 反応性。 (オプション)RXJS API | |
| ? | リレーショナル。ロックソリッドSqlite Foundationの上に建てられました |
| フローまたはタイプスクリプトを使用した静的タイピング |
WatermelondBは、React NativeおよびReact Webアプリのユーザーデータを扱う新しい方法です。
Reactネイティブに複雑なアプリケーションを構築するために最適化されており、ナンバーワンの目標は実世界のパフォーマンスです。簡単に言えば、アプリは速く起動する必要があります。
簡単なアプリの場合、ReduxまたはMobxをPersistenceアダプターで使用することが最も簡単な方法です。ただし、数千または数万のデータベースレコードへのスケーリングを開始すると、アプリは(特に遅いAndroidデバイスで)起動が遅くなります。完全なデータベースをJavaScriptにロードするのは高価です!
スイカは怠zyでそれを修正します。要求されるまで何もロードされません。また、すべてのクエリは、別のネイティブスレッド上の岩帯状のSQLiteデータベースで直接実行されるため、ほとんどのクエリはすぐに解決します。
しかし、SQLiteを直接使用するのとは異なり、スイカは完全に観察可能です。したがって、レコードを変更するたびに、それに依存するすべてのUIは自動的に再レンダリングされます。たとえば、To Doアプリでタスクを完了すると、タスクコンポーネント、リスト(再注文する)、およびすべての関連するタスクカウンターが再レンダリングされます。もっと詳しく知る。
|
| | ---- | --- | |
次世代の反応データベース
(watermelondbについての講演)
Quick(Over-Splified)例:投稿とコメントを備えたアプリ。
まず、モデルを定義します。
class Post extends Model {
@ field ( 'name' ) name
@ field ( 'body' ) body
@ children ( 'comments' ) comments
}
class Comment extends Model {
@ field ( 'body' ) body
@ field ( 'author' ) author
}次に、コンポーネントをデータに接続します。
const Comment = ( { comment } ) => (
< View style = { styles . commentBox } >
< Text > { comment . body } — by { comment . author } </ Text >
</ View >
)
// This is how you make your app reactive!
const enhance = withObservables ( [ 'comment' ] , ( { comment } ) => ( {
comment ,
} ) )
const EnhancedComment = enhance ( Comment )そして今、あなたは投稿全体をレンダリングすることができます:
const Post = ( { post , comments } ) => (
< View >
< Text > { post . name } </ Text >
< Text > Comments: </ Text >
{ comments . map ( comment =>
< EnhancedComment key = { comment . id } comment = { comment } />
) }
</ View >
)
const enhance = withObservables ( [ 'post' ] , ( { post } ) => ( {
post ,
comments : post . comments
} ) )結果は完全に反応します!投稿またはコメントが追加、変更、または削除されると、適切なコンポーネントが画面上で自動的に再レンダリングされます。アプリのまったく異なる部分で変更が発生したかどうかは関係ありませんが、すべてが箱から出して作られます。














あなたの会社またはアプリは使用していますか?プルリクエストを開き、ここにリンクにロゴ/アイコンを追加してください!

WatermelondBはオープンソースプロジェクトであり、成長するためにあなたの助けが必要です!
不足している機能、バグ、またはその他の改善がある場合は、貢献することをお勧めします!プロジェクトのセットアップ、テストなどの詳細については、ガイダンスを取得し、寄稿ガイドをご覧ください。
始めたばかりの場合は、貢献しやすい良い最初の問題をご覧ください。あなたが自明でない貢献をしたら、私にメールしてください、そして私はあなたに素敵なものを送りますか?ステッカー!
WatermelondBを使用してアプリを作成するか検討している場合は、お知らせください!
WatermelondBは@Nozbeによって作成されました。
Watermelondbの主な著者でありメンテナーはRadek Pietruszewski(Webサイトar?(Twitter))です。
すべての貢献者を参照してください。
WaterMelondBはMITライセンスの下で入手できます。詳細については、ライセンスファイルを参照してください。