Muy buenas, les saluda Miguel y en esta ocasión les traigo este nuevo post.
Un widget es suficiente para que la gente vuelva más a tu aplicación
La gente tiene tantas aplicaciones en su teléfono y esto inevitablemente hace que sea muy difícil recordar las aplicaciones a diario. La pantalla de hoy es algo que la mayoría de los usuarios de iPhone ven todos los días, y si tiene un lugar en esta pantalla, el usuario no olvidará su aplicación.
Uno de mis widgets favoritos de hoy es el widget de precios de criptomonedas de Coinbase. Si está interesado en las criptomonedas, este widget facilita el seguimiento de los precios.
Hablemos de por dónde empezar si desea crear algo como esto para su aplicación.
Agregue el destino de extensión de hoy a su proyecto
Vea su proyecto y haga clic en +
para agregar un nuevo objetivo. Busque Today y seleccione Today Extension para agregar a su proyecto.
Esto creará algunos archivos en una carpeta en su proyecto. TodayViewController
es donde implementarás todo lo que necesites.
Puede tratar este controlador de vista como un controlador de vista estándar. La única diferencia será actualizar las vistas y el límite de memoria que obtienes con esta extensión.
Esto es lo que dice Apple sobre los widgets actuales:
«Un widget de Hoy debería:
Asegúrese de que el contenido siempre se vea actualizado.
Responda adecuadamente a las interacciones de los usuarios.
Funciona bien (en particular, los widgets de iOS deben usar la memoria de manera inteligente o el sistema puede terminarlos) «.
El límite de memoria para el widget es de 16 MB, así que manténgalo simple y asegúrese de probar su widget para detectar pérdidas de memoria.
Comparta datos entre su aplicación y extensión
La única forma de compartir datos entre su aplicación y extensión es mediante el uso de grupos de aplicaciones y valores predeterminados de usuario.
Primero, deberá agregar la capacidad de grupo de aplicaciones al destino de su aplicación. Haga clic en +
Botón de capacidad y seleccione Grupos de aplicaciones. Haga clic en +
y escriba un nombre para su grupo.
Haga lo mismo con su objetivo de widget de hoy.
Ahora, cree un archivo llamado GroupDataManager.swift
para implementar las funciones necesarias para guardar, eliminar y recuperar datos.
import Foundation class GroupDataManager { static let shared = GroupPersistenceManager() let sharedDefaults = UserDefaults(suiteName: "group.todaymanualestutor") func saveData(value: Any, key: String) { sharedDefaults?.setValue(value, forKey: key) } func retrieveData(key: String) -> Any? { return sharedDefaults?.value(forKey: key) } func removeData(key: String) { sharedDefaults?.removeObject(forKey: key) } }
Asegúrese de que este archivo esté disponible para ambos objetivos.
Ahora, vaya al controlador de vista en su aplicación y guarde los datos para recuperarlos de su widget.
GroupDataManager.shared.saveData(value: “Hello Manualestutor!”, key: “dataKey”)
En tus TodayViewController.swift
de su widget de hoy, recupere estos datos utilizando la función de recuperación.
let testData = GroupDataManager.shared.retrieveData(key: "dataKey") as? String
Simplemente puede mostrar esta cadena en la etiqueta para ver si todo funciona como se esperaba.
import UIKit import NotificationCenter class TodayViewController: UIViewController, NCWidgetProviding { @IBOutlet weak var label: UILabel! override func viewDidLoad() { super.viewDidLoad() self.label.text = GroupDataManager.shared.retrieveData(key: "dataKey") as? String } func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) { completionHandler(NCUpdateResult.newData) } }
Ahora, ejecute su aplicación y agregue el widget a su pantalla de hoy para ver cómo se ve.
¡Eso es! ¡Ha creado con éxito un widget de hoy! Ahora use su imaginación para construir algo útil para sus usuarios.
Añadir comentario