Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/

Atualize para o Flutter SDK v2.0.0

Nesta página

  • Mudanças no construtor
  • O que preciso fazer?
  • Classes e membros removidos

Atlas Device SDK para Flutter versão 2.0.0 introduz várias alterações significativas que afetam a atualização dos aplicativos existentes de uma versão anterior.

Em especial, esta versão do SDK:

  • Altera o construtor de partes e como o SDK gera arquivos para suas classes de modelo de dados. Essa alteração afeta todos os aplicativos que estão sendo atualizados de uma versão anterior do SDK. Consulte a seção Alterações do construtor nesta página para obter informações e instruções.

  • Remove ou substitui várias classes e membros. Essas alterações podem ou não afetar seu aplicativo. Consulte a seção Classes e membros removidos nesta página para obter informações e instruções para aplicativos afetados.

Importante

Essa alteração afeta todos os aplicativos que estão sendo atualizados de uma versão anterior do SDK.

Versão do Flutter SDK 2.0.0 atualiza o realm_generator do SDK para usar um PartBuilder em vez de um SharedPartBuilder. Este construtor atualizado gera RealmModel arquivos de modelo de dados com uma nova extensão de arquivo .realm.dart :

Versão
Extensão de arquivo
Exemplo de diretiva de parte

SDK v2.0.0 e posterior

.realm.dart

part 'car.realm.dart';

SDK v1.9.0 e anteriores

.g.dart

part 'car.g.dart';

Dica

A atualização de SharedPartBuilder para PartBuilder facilita o uso de vários construtores em seu aplicativo. Por exemplo, combinando o realm_dart com um construtor de pacote de serialização como dart_mappable ou json_serializable.

Ao atualizar um aplicativo existente de uma versão anterior do Flutter SDK para a versão 2.0.0 ou posterior, você deve atualizar quaisquer declarações de parte existentes e, em seguida, gerar novamente os modelos de objeto com a nova extensão de arquivo .realm.dart :

1

Atualize todas as declarações de partes RealmObject em seu aplicativo para usar a nova convenção de nomenclatura:

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

Depois de atualizar todas as suas declarações, regenere seus modelos de objeto com a nova extensão de arquivo .realm.dart . Você pode excluir com segurança quaisquer arquivos .g.dart do seu projeto.

dart run realm generate

Depois de atualizar todas as suas declarações, regenere seus modelos de objeto com a nova extensão de arquivo .realm.dart . Você pode excluir com segurança quaisquer arquivos .g.dart do seu projeto.

dart run realm_dart generate

A versão 2.0.0 do Flutter SDK também removeu ou substituiu várias classes, membros e propriedades do SDK. Essas alterações podem ou não impacto seu aplicativo.

A tabela a seguir descreve o que foi removido e por que, bem como uma solução recomendada ao atualizar um aplicativo que usou a classe ou membro removido, se houver:

Classe ou membro removido
Razão
várias plataformas

AppConfiguration.localAppName e a AppConfiguration.localAppVersion

Não usado no SDK.

Remova quaisquer instâncias.

ClientResetError.isFatal

Não é necessário. Sempre true.

Remova quaisquer instâncias.

ClientResetError.sessionErrorCode

Consolidado em SyncErrorCode no SDK v1.6.0.

Realm.logger.level

Substituído por Realm.logger.setLogLevel.

Substitua quaisquer instâncias. Consulte também Logging — Flutter SDK.

RealmProperty.indexed

Substituído por RealmProperty.indexType.

Substitua quaisquer instâncias.

RealmValue.type

Alterado para um enum de RealmValueType.

Substitua quaisquer instâncias. Consulte também Tipo de dados RealmValue.

RealmValue.uint8List

Renomeado para RealmValue.binary.

Substitua quaisquer instâncias. Consulte também Tipo de dados RealmValue.

SchemaObject.properties

SchemaObject alterado para uma collection iterável de SchemaProperty.

Substitua quaisquer instâncias. Veja também o SchemaObject Referência da API.

SyncError construtor e fábrica SyncError.create

Os erros de sincronização só devem ser criados internamente pelo SDK.

Remova quaisquer instâncias.

SyncClientError, SyncConnectionError, SyncSessionError, SyncResolveError, SyncWebSocketError e GeneralSyncError

Consolidado em SyncError no SDK v1.6.0.

Use SyncError ou suas subclasses. Veja também o SyncError Referência da API.

SyncErrorCategory, SyncClientErrorCode, SyncConnectionErrorCode, SyncSessionErrorCode, SyncResolveErrorCode,``SyncWebsocketErrorCode`` e GeneralSyncErrorCode

Consolidado em SyncErrorCode no SDK v1.6.0.

Use o enum SyncErrorCode . Veja também o SyncError Referência da API.

SyncError.codeValue, SyncError.category e SyncError.detailedMessage

Consolidado em SyncError no SDK v1.6.0. As mensagens não foram usadas.

Remova quaisquer instâncias de categoria ou mensagem. Substitua SyncError.codeValue por SyncError.code.code. Veja também o SyncError Referência da API.

SyncProgress.transferredBytes e a SyncProgress.transferableBytes

Os valores transferidos e transferíveis relatados estavam incorretos. Consolidado em uma nova métrica SyncProgress.progressEstimate .

Use SyncProgress.progressEstimate. Consulte também Monitorar o upload de sincronização e o progresso do download.

User.provider

O fornecedor está associado a cada identidade, portanto, o valor estava incorreto para usuários com mais de uma identidade.

Remova quaisquer instâncias.

Voltar

Telemetria SDK