Atualize para o Flutter SDK v2.0.0
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.
Mudanças no construtor
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 |
| |
SDK v1.9.0 e anteriores | .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
.
O que preciso fazer?
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
:
Atualize suas declarações de parte existentes
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'; ()class _Car { () late ObjectId id; late String make; late String? model; late int? miles; }
Regenere seus modelos de objetos
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
Classes e membros removidos
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. | Use SyncErrorCode enumeração. Consulte também o SyncError Referência da API. |
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. |