ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

Flutter SDK v2.0.0 にアップグレードします

Atlas Device SDK for Flutter バージョン2.0.0 は、以前のバージョンからの既存のアプリのアップグレードに影響を与えるいくつかの重大な変更を導入します。

注目すべきのは、この SDK では次のことです。

  • 部分ビルダと SDK がデータモデル クラスのファイルを生成する方法を変更します。 この変更は、SDK の以前のバージョンからアップグレードするすべてのアプリに影響します。 情報と手順については、このページの「ビルダの変更 」セクションを参照してください。

  • 複数のクラスとノードを削除または置き換えます。 これらの変更はアプリに影響を与える場合と影響しない場合があります。 影響を受けるアプリの情報と手順については、このページの「削除されたクラスとノード」セクションを参照してください。

重要

この変更は、SDK の以前のバージョンからアップグレードするすべてのアプリに影響します。

Flutter SDK バージョン2.0.0 SDKrealm_generator の をアップデートして、PartBuilder ではなくSharedPartBuilder を使用します。このアップデート ビルダーは、新しい.realm.dartファイル拡張子を持つRealmModelデータモデル ファイルを生成します。

バージョン
ファイル拡張子
ディレクティブの例

SDK v 2.0.0以降

.realm.dart

part 'car.realm.dart';

SDK v 1.9.0以前

.g.dart

part 'car.g.dart';

Tip

SharedPartBuilderからPartBuilder へのアップデートにより、アプリ内で複数のビルダを使用しやすくなります。たとえば、 realm_dartdart_mappablejson_serializableなどの直列化パッケージ ビルダと組み合わせます。

既存のアプリを Flutter SDK の以前のバージョンからバージョン2.0.0以降にアップグレードする場合、既存の部分宣言をすべて更新してから、新しい.realm.dartファイル拡張子でオブジェクトモデルを再生成する必要があります。

1

アプリ内のすべてのRealmObject部分宣言を更新し、新しい命名規則を使用します。

import 'package:realm_dart/realm.dart';
// Update existing declaration from .g.dart to .realm.dart
// part 'car.g.dart';
part 'car.realm.dart';
@RealmModel()
class _Car {
@PrimaryKey()
late ObjectId id;
late String make;
late String? model;
late int? miles;
}
2

すべての宣言を更新した後、新しい.realm.dartファイル拡張子でオブジェクトモデルを再生成します。 プロジェクトから任意の.g.dartファイルを安全に削除できます。

dart run realm generate

すべての宣言を更新した後、新しい.realm.dartファイル拡張子でオブジェクトモデルを再生成します。 プロジェクトから任意の.g.dartファイルを安全に削除できます。

dart run realm_dart generate

Flutter SDK バージョン2.0.0でも、SDK からいくつかのクラス、ノード、プロパティが削除または置き換えられました。 これらの変更はアプリに影響を与える場合と影響しない場合があります。

次の表は、削除された内容とその理由、および削除されたクラスまたはノードを使用したアプリをアップグレードする際に推奨される解決策(存在する場合)の概要を示します。

削除されたクラスまたはノード
理由
解決法

AppConfiguration.localAppNameAppConfiguration.localAppVersion

SDK では未使用です。

インスタンスがすべて削除されます。

ClientResetError.isFatal

必要ありません。 常にtrue

インスタンスがすべて削除されます。

ClientResetError.sessionErrorCode

SDK v 1.6.0のSyncErrorCodeに統合されました。

SyncErrorCode列挙型を使用します。 SyncError も参照してください API リファレンス。

Realm.logger.level

Realm.logger.setLogLevelに置き換えられました。

すべての インスタンスを置き換えます。 See also Logging - Flutter SDK.

RealmProperty.indexed

RealmProperty.indexTypeに置き換えられました。

すべての インスタンスを置き換えます。

RealmValue.type

RealmValueTypeの列挙に変更しました。

すべての インスタンスを置き換えます。 「 RealmValue データ型 」も参照してください。

RealmValue.uint8List

名前がRealmValue.binaryに変更されました。

すべての インスタンスを置き換えます。 「 RealmValue データ型 」も参照してください。

SchemaObject.properties

SchemaObjectSchemaPropertyの反復可能なコレクションに変更されました。

すべての インスタンスを置き換えます。 「スキーマ オブジェクト」も参照して ください API リファレンス。

SyncErrorコンストラクターとSyncError.createファクトリー

同期エラーは、SDK によって内部的にのみ作成される必要があります。

インスタンスがすべて削除されます。

SyncClientError, SyncConnectionError, SyncSessionError, SyncResolveError, SyncWebSocketError, and GeneralSyncError

SDK v 1.6.0のSyncErrorに統合されました。

SyncErrorまたはそのサブクラスを使用します。 SyncError も参照してください API リファレンス。

SyncErrorCategorySyncClientErrorCodeSyncConnectionErrorCodeSyncSessionErrorCodeSyncResolveErrorCode 、``SyncWebsocketErrorCode``、 GeneralSyncErrorCode

SDK v 1.6.0のSyncErrorCodeに統合されました。

SyncErrorCode列挙型を使用します。 SyncError も参照してください API リファレンス。

SyncError.codeValueSyncError.categorySyncError.detailedMessage

SDK v 1.6.0のSyncErrorに統合されました。 メッセージは未使用でした。

カテゴリまたはメッセージのインスタンスがすべて削除されます。 SyncError.codeValueSyncError.code.codeに置き換えます。 SyncError も参照してください API リファレンス。

SyncProgress.transferredBytesSyncProgress.transferableBytes

転送値と転送可能な値が誤って報告されました。 新しいSyncProgress.progressEstimateメトリクスに統合されました。

User.provider

プロバイダーは各 ID に関連付けられているため、複数の ID を持つユーザーの場合、値は正しくありませんでした。

インスタンスがすべて削除されます。