El SDK de dispositivos Atlas para Flutter versión 2.0.0 presenta varios cambios importantes que afectan a las aplicaciones existentes que se actualizan desde una versión anterior.
En particular, esta versión del SDK:
Se modifica el generador de componentes y la forma en que el SDK genera archivos para las clases del modelo de datos. Este cambio afecta a todas las aplicaciones que se actualizan desde una versión anterior del SDK. Consulte la SecciónCambios del constructor en esta página para obtener información e instrucciones.
Elimina o reemplaza varias clases y miembros. Estos cambios pueden afectar o no a tu aplicación. Consulta la sección "Clases y miembros eliminados" en esta página para obtener información e instrucciones sobre las aplicaciones afectadas.
Cambios en el constructor
Importante
Este cambio afecta a todas las aplicaciones que se actualicen desde una versión anterior del SDK.
La versión 2.0.0 del SDK de Flutter actualiza el SDK realm_generator Para usar un PartBuilder en lugar de un SharedPartBuilder. Este generador actualizado genera archivos de modelo de datos RealmModel con una nueva extensión de archivo .realm.dart:
Versión | Extensión de archivo | Ejemplo de directiva parcial | |
|---|---|---|---|
SDK v2.0.0 y posteriores |
| | |
SDK v1.9.0 y anteriores |
| |
Tip
La actualización de SharedPartBuilder a PartBuilder facilita el uso de varios compiladores en la aplicación. Por ejemplo, al combinar realm_dart con un compilador de paquetes de serialización como dart_mappable o json_serializable.
¿Qué necesito hacer?
Cuando actualiza una aplicación existente desde una versión anterior del SDK de Flutter a la 2.0.0 versión o posterior,debe actualizar todas las declaraciones de partes existentes y luego regenerar los modelos de objetos con la nueva .realm.dart extensión de archivo:
Actualice sus declaraciones de piezas existentes
Actualice todas las declaraciones de la parte RealmObject en su aplicación para usar la nueva convención 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; }
Regenerar sus modelos de objetos
Después de que actualices todas tus declaraciones, regenera tus modelos de objetos con la nueva extensión de archivo .realm.dart. Puedes borrar de forma segura cualquier archivo .g.dart de tu proyecto.
dart run realm generate
Después de que actualices todas tus declaraciones, regenera tus modelos de objetos con la nueva extensión de archivo .realm.dart. Puedes borrar de forma segura cualquier archivo .g.dart de tu proyecto.
dart run realm_dart generate
Clases y miembros eliminados
La versión 2.0.0 del SDK de Flutter también eliminó o reemplazó varias clases, miembros y propiedades. Estos cambios pueden afectar o no a tu aplicación.
La siguiente tabla describe lo que se eliminó y por qué, así como una solución recomendada al actualizar una aplicación que usó la clase o el miembro eliminado, si corresponde:
Clase o miembro eliminado | Razón | Solución |
|---|---|---|
| No utilizado en SDK. | Eliminar cualquier instancia. |
| No es necesario. Siempre | Eliminar cualquier instancia. |
| Consolidado en | Utilice |
| Reemplazado por | Reemplace las instancias. Consulte también Registro - SDK de Flutter. |
| Reemplazado por | Reemplace cualquier instancia. |
| Cambiado a un enum de | Reemplace cualquier instancia. Consulte también Tipo de dato RealmValue. |
| Renombrado a | Reemplace cualquier instancia. Consulte también Tipo de dato RealmValue. |
|
| Reemplace las instancias. Consulte también la referencia de la API de SchemaObject. |
| El SDK solo debe crear errores de sincronización de forma interna. | Eliminar cualquier instancia. |
| Consolidado en | Utilice |
| Consolidado en | Utilice |
| Consolidado en | Elimine cualquier instancia de categoría o mensaje. Reemplace |
| Los valores transferidos y transferibles reportados eran incorrectos. Se consolidaron en una nueva métrica | Utilice. Consulte |
| El proveedor está asociado con cada identidad, por lo que el valor era incorrecto para los usuarios con más de una identidad. | Eliminar cualquier instancia. |