En primer lugar, me gustaría señalar que UIUserNotificationType
ahora está en desuso en iOS 10 según UIKit | Documentación para desarrolladores de Apple y UIKit | Documentación del desarrollador de Apple ( UIUserNotificationSettings
y UIUserNotificationType
, respectivamente). Según el primer enlace, debe usar UNNotificationSettings
. También me gustaría señalar que .none
no está realmente documentado como un tipo, por lo que parece que si bien existe , no se supone que se use .
En cuanto a los casos de uso de .none
, hay un caso de uso “real” y un caso de uso “vago”. Tomemos los casos de uso “reales” primero. Si alguien está jugando un juego y se entrega una notificación, es posible que no desee interrumpir al jugador en ese momento si la notificación no requiere una respuesta inmediata. Este suele ser el caso de las notificaciones push generales: las que se envían a todos los usuarios de forma indiscriminada no suelen tener que tratarse de inmediato. Es mejor dejar que el usuario disfrute de su aplicación o juego y, por lo tanto, mantenerlos involucrados que interrumpir su sesión y tal vez molestarlos y hacer que se vayan (por lo general, las notificaciones dentro de la aplicación se manejan dentro de la aplicación en lugar de usar un servicio de notificación del sistema operativo, pero no siempre ) Sin embargo, este no es el único caso de uso. Recuerde las opciones que Apple ofrece a los usuarios para sus configuraciones de notificación. Hay una alerta , hay un banner y no hay ninguno . Es posible que los usuarios no quieran que se les moleste con una notificación en el momento del registro, pero aún así desean que se notifique una notificación para una interacción posterior. Honestamente, este comportamiento no tiene sentido para mí, pero Apple parece tener estudios de mercado para creer que este es un deseo real de una cantidad no insignificante de usuarios. .none
existe porque Apple ofrece a los usuarios la opción de no mostrar visiblemente la notificación .
Pasemos ahora a los casos de uso “perezosos”. Una es que el desarrollador está utilizando notificaciones locales o push (generalmente la última) como una forma de mostrar notificaciones en la aplicación y son demasiado vagos para encontrar una solución que no produzca notificaciones silenciosas sin usar el Servicio de notificaciones. La segunda razón (no es tanto un caso de uso, como verá) es que el desarrollador es perezoso o simplemente se olvidó . Como no quiero ser demandado por difamación, no daré ejemplos específicos aquí, pero no es difícil encontrar ejemplos. Los desarrolladores no quieren detectar cuáles son las Configuraciones de notificación y simplemente establecerlas en .none
en la aplicación o establecerlas en .none
como marcador de posición y se olvidan de actualizar la configuración.
Entonces ahí lo tienes. Apple ofrece la opción a los desarrolladores porque les dio a los usuarios la opción de no molestarse por las notificaciones por la razón descrita en negrita arriba. Los desarrolladores lo usan porque los usuarios lo configuran de esa manera, hay una razón legítima para no molestar al usuario como se describe anteriormente, o porque son demasiado vagos para leer la configuración de notificaciones u olvidan actualizar la configuración una vez que leen las preferencias del usuario.
Editar: Anteriormente escribí sobre .none
no está documentado y, por lo tanto, implica que se supone que no debe usarse. La parte sobre que .none
se documenta no era cierta acerca de UIUserNotificationType
pero después de una investigación más profunda, supe que está documentada en UNAlertStyle
, que es una constante en UNNotificationSettings
, el reemplazo de Apple para UIUserNotificationSettings
que usó UIUserNotificationType
. En segundo lugar, mi implicación sobre .none
no se pretende utilizar contradice mi explicación más adelante en mi respuesta. Esta contradicción aparece porque estaba escribiendo desde múltiples POV, desde el POV de la documentación, el POV del desarrollador y el POV de Apple, por lo que esos POV se contradicen entre sí en este caso.