persistencia de datos de desarrollo de aplicaciones iOS
Cuando trabaja como desarrollador, todo parece ser un desafío al principio, ya sea la interfaz de usuario, la lógica, la funcionalidad o el almacenamiento de los datos valiosos que nuestro usuario utilizará en la vida cotidiana. En este artículo, le explicaré por qué la persistencia de los datos es tan importante en iOS ?, y la manera más sencilla de almacenar los pequeños fragmentos de datos utilizando los valores predeterminados del usuario.

¿Qué Es La Persistencia De Datos?

Comprender el significado de la persistencia es importante como desarrollador de aplicaciones. La importancia de almacenar datos en la mayoría de las aplicaciones modernas es un desafío, y cuando se logra, proporciona una experiencia de usuario mejor e interactiva. Supongamos que estaba usando una aplicación para completar un formulario, de repente recibió una llamada y, como las llamadas son las interrupciones inevitables para los teléfonos, su aplicación pasará a un segundo plano y usted tendrá que recibir la llamada. Cuando regresó, observa que perdió todos los datos que ingresó en el formulario. Este es el problema que necesitamos resolver utilizando la persistencia de datos.
La persistencia es "la continuación de un efecto después de que se elimina su causa". En el contexto del almacenamiento de datos en un sistema informático o teléfonos móviles, esto significa que los datos deben sobrevivir después de abandonar nuestra aplicación. En otras palabras, para que un almacén de datos se considere persistente, debe escribir en un almacenamiento no volátil .

¿Por Qué Necesitamos Almacenar Datos Localmente?

Bueno, como dije antes, las interrupciones como llamada u otra cosa pueden obstaculizar sus tareas importantes en cualquier aplicación. Ahora, sería realmente molesto cuando se pierde su trabajo y se pierden todos los datos, por lo que guardarlos localmente en la memoria del dispositivo es muy importante.
Hablando de iOS, hay un ciclo de vida de la aplicación desde el inicio hasta la finalización, y entre estos, un usuario realiza su tarea. Cuando presiona el botón de inicio, las aplicaciones se ponen en segundo plano, es decir, la aplicación en la que estaba trabajando ya no está visible. Puedes pensar en ellos como una baraja de cartas donde una carta se coloca sobre otra. Las cartas son la aplicación. Cuando se termina su aplicación, pierde datos en las aplicaciones normales que creó hasta que usa el mecanismo de persistencia de datos en IOS para almacenar datos localmente en el dispositivo de los usuarios.
La aplicación en segundo plano puede estar procesando sus tareas o puede estar accediendo a la memoria de su iPhone. En los casos en que los recursos se recuperan de su aplicación , la aplicación termina en lugar de ejecutarse en segundo plano. El ciclo de vida de la aplicación IOS se muestra a continuación.
El problema ocurre cuando la aplicación termina y nuestros datos no se almacenan localmente. La terminación de la aplicación puede ocurrir en la siguiente escena:
  • El sistema operativo está tratando de reclamar los recursos porque el usuario está tratando de usar varias aplicaciones y el espacio de la memoria se acaba.
  • Si el usuario obliga a salir de la aplicación por alguna razón o por error.
  • Instalar actualizaciones realmente puede terminar terminando tu aplicación.
  • Si el sistema operativo está actualizado.

Usuarios-Predeterminados

Esta es una de las formas de conservar los datos localmente. En iOS, las formas en que podemos conservar los datos localmente son:
  1. UserDefaults: para pequeños bits de datos
  2. Coadables: guardando elementos dentro de los documentos.
  3. Coredata: SQL lite backend database básicamente creamos una base de datos relacional.
UserDefaults es una de las maneras más fáciles de conservar nuestros datos localmente. Es una interfaz para la base de datos predeterminada de los usuarios donde almacenamos los datos en forma de par clave-valor en los lanzamientos de nuestra aplicación.
La clase UserDefaults escrita por Apple nos proporciona una interfaz programática para interactuar con el sistema predeterminado. El sistema predeterminado permite que una aplicación personalice su comportamiento para que coincida con las preferencias de un usuario. Por ejemplo, puede permitir que los usuarios especifiquen sus unidades de medida preferidas o la velocidad de reproducción de medios. Las aplicaciones almacenan estas preferencias asignando valores a un conjunto de parámetros en la base de datos predeterminada de un usuario. Los parámetros se conocen como  valores predeterminados  porque se usan comúnmente para determinar el estado predeterminado de una aplicación al inicio o la forma en que actúa de forma predeterminada. Para más información lea la documentación de Apple.
Veamos un ejemplo de lo que podemos hacer usando UserDefaults mientras codificamos usando el lenguaje Swift.
podemos establecer una URL, par clave-valor, bools, dobles, flotantes, enteros. Supongamos que escribes el código como:
valores por defecto . establezca (valor: Float, forKey: String) y establezca el valor de float en3para una aplicación de reproductor de música dando la clave como"myVolume" cuando lo hace más tarde, siempre puede usar los datos persistentes para configurar siempre el volumen de ese valor clave en particular.
Podría haber más implementación como se muestra a continuación:
Aquí, el cualquiera? el tipo de datos se captura mediante un método .object como se muestra arriba. También puede guardar colecciones utilizando UserDefaults.
Puede ver que el valor de la matriz se recupera utilizando los UserDefaults. El cuadro gris incluso sugiere que el nombre de clave predeterminado es una cadena y es un tipo de matriz y que el tipo de retorno es en realidad una matriz opcional, es decir,  de tipo [any]? e incluso puedes derribarlos en cualquier tipo usando as! [tipo de datos] 
Del mismo modo, también puedes hacer estas cosas para los diccionarios .
Nota: la ortografía de la clave es muy importante y, como está codificada de manera rígida, debe escribirlas según se especifiquen mientras trabaja en los grandes proyectos. Una sugerencia o una sugerencia sería declarar una constante independiente para ellos podría reducir el error de escritura. Por ejemplo:
deja myDictionarykey = "datos"

Conclusión

Cuando la cantidad de datos es enorme, se vuelven inmanejables y la razón es que UserDefaults no es una base de datos y debe usarse como una base de datos. Dado que todo el valor almacenado por UserDefaults se guarda en el archivo .plist y realmente nos carga simultáneamente con la aplicación, y guardar todos los datos en ellos realmente puede ralentizar la carga en gran medida, y si está buscando un Una pequeña parte de los datos de ese archivo, incluso para capturar esos datos, el dispositivo o su simulador tiene que cargar todo el archivo innecesariamente. Por lo tanto, la eficiencia de nuestra aplicación se ve tremendamente afectada cuando se utiliza para datos enormes y como una base de datos pura.