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