2010-06-21 14 views
8

Ahora que iPhone SDK 4.0 está disponible para su descarga, y iOS 4.0 estará disponible para los consumidores en breve, ¿tiene sentido comenzar a utilizar las nuevas funciones disponibles en el sistema operativo 4.0?Soporte para usuarios heredados de iPhone

Mi principal preocupación es que el uso de las características de la versión 4.0 exige que los usuarios finales también actualicen sus teléfonos/ipods a 4.0. Si bien este proceso es bastante sencillo, ¿es razonable esperar que la mayoría de los usuarios se actualicen? La aplicación en sí misma no necesita nada introducido en el nuevo sistema operativo, pero algunas de las técnicas de animación tradicionales ahora se "desaconsejan" a favor de sus contrapartes basadas en bloques. Esto está bien para mí, preferiría usar métodos de bloqueo, pero me preocupa que esto sea una molestia para los usuarios finales.

¿Cuál es la experiencia general al respecto? ¿Te lanzas con lo último y mejor o te apegas a la versión actual?

p.s. Esto asume que GM instala el sistema operativo en usuarios finales cuando está disponible, no beta.

+0

Discusiones similares ocurrieron alrededor del lanzamiento de 3.0 el año pasado. Por ejemplo, esta pregunta discutió el uso de las características 3.0 dentro de una aplicación compatible con 2.0: http://stackoverflow.com/questions/986589/how-do-you-optionally-use-iphone-os-3-0-features- aplicación compatible con-2-0 –

+0

@progrmr - Sí, y tan pronto como se concede la recompensa, se elimina de la pestaña de preguntas destacadas. Quiero tantas respuestas como sea posible para validar la pregunta. Además, SO ya me recuerda que acepte una respuesta. Le daré una respuesta antes de que termine el día. –

Respuesta

22

Depende. Usted tiene por lo menos 3 opciones y el mejor camino a seguir depende de los requisitos de su aplicación:

  1. Su aplicación no hace requieren cualquier IOS 4.0 API - se debe construir con BaseSDK 4.0, pero Establecer destino Despliegue a la versión mínima que debe tener (es decir: 3.0).
    Ventajas: (1) Su aplicación se ejecutará en cualquier dispositivo que tenga al menos esa versión de Despliegue de destino y (2) admitirá la rápida aplicación de dispositivos que tengan iOS 4.0. Desventajas: No puede usar ninguna API después de su versión de implementación de destino.

  2. Su aplicación sería mejor con 4.0 API, pero aún así sería utilizable sin ellos - si condicionalmente puede utilizar 4.0 API ya sea proporcionando funcionalidad reducida cuando en dispositivos pre iOS 4.0 o proporcionando una funcionalidad similar durante el uso de diferentes APIs en dispositivos pre 4.0, luego puede compilar con BaseSDK 4.0, configurar Target Deployment a la versión mínima que debe tener (es decir: 3.0) y usar condicionalmente las llamadas a la API de iOS 4.0. Ventajas: puede ejecutar en todos los dispositivos que tienen al menos su versión mínima de iOS. Desventajas: todas esas llamadas condicionales pueden complicarse.

  3. Su aplicación requiere algunos iOS 4.0 API con el fin de funcionar - Aquí tienes otra opción. Cree con BaseSDK 4.0, configure Target Deployment 4.0 y use esas 4.0 API.
    Ventaja: Código es más simple, no hay condicionales para la versión iOS Desventajas: Su aplicación no se ejecutará en iPads todavía (que reciben 4,0 en "Otoño 2010"), su aplicación no se ejecutará en los iPhone 3G antes de lo (no obtienen 4.0) y algunas características de iOS 4.0 no funcionarán en iPhone 3G.

En todos los casos, el SDK de Base será 4.0, el Destino de despliegue será el mínimo que necesita , y si necesita una nueva API que condicionalmente puede usar si el dispositivo tiene.

Solo compilando con BaseSDK 4.0 obtendrá la aplicación rápida de la conmutación en dispositivos 4.0, incluso si no utiliza ninguna de las características 4.0. Todas las aplicaciones deberían al menos hacer eso, incluso si apuntan a iOS 2.0. No use las características 4.0 si no las necesita y puede orientarlas a una gama más amplia de dispositivos y dispositivos antiguos que no se hayan actualizado.

Este recent answer on SO resume cómo hacer esta configuración para BaseSDK y Despliegue de destino y cómo usar las API de forma condicional para apuntar a múltiples versiones de firmware.

1

Por lo general, mi objetivo es un lanzamiento importante (es decir, objetivo 3.1 en lugar de 4.0), que generalmente me da una ventana de "¿Ha actualizado su teléfono en el último año?" Pero dependiendo de su aplicación, puede hacer uso de la multitarea u otras características que están solo en 4.0. Entonces, es una cuestión de lo que piensas que tus usuarios querrán de inmediato. Si crees que pueden esperar un poco, mira cómo van las cosas; si encuentra que muchos usuarios se están moviendo a 4.0 rápidamente, luego envíe sus cambios.

0

Sí, IMO tiene absolutamente sentido utilizar las nuevas funciones en OS 4.0. El usuario que tenga 4.0 instalado tendrá poca tolerancia para las aplicaciones que no admitan el cambio rápido de aplicaciones (y la pantalla de mayor resolución del iPhone 4 también) como mínimo.

Mi principal preocupación es que el uso de las características de la versión 4.0 obliga a los usuarios finales a actualizar también sus teléfonos/ipods a 4.0.

Eso no es verdad. El soporte de las nuevas características no requiere que retire soporte para versiones anteriores del sistema operativo. Simplemente configure el SDK Base a 4.0 y el Destino de Implementación a 3.x. Y asegúrese de que su código no llame a métodos específicos de 4.0 sin verificar si existen (respondsToSelector:).

+0

Creo que se ha perdido el punto. Si voy a comprometerme a usar las características 4.0, eso exige un SO 4.0. No necesito nada ofrecido por el nuevo sistema operativo. Los métodos 3.x todavía existen y son compatibles, simplemente están "desalentados".No estoy interesado en mantener dos bases de código separadas mezcladas en el mismo archivo fuente separadas por las condiciones if (... respondsToSelector: ...) en todas partes. –

+0

A veces es necesario verificar dinámicamente si determinadas funciones y clases están disponibles también. La plataforma iOS (y Mac OS X) admite enlaces débiles, pero para las clases necesita utilizar NSClassFromString porque la vinculación de clase débil es demasiado nueva para que las plataformas antiguas la admitan. –

+0

"Los métodos 3.x todavía existen y son compatibles, simplemente están 'desalentados'". A falta de desaprobación formal (de la que hay algunos), nada de lo que podría hacer en virtud de 3.x es de ninguna manera "desalentador" ahora que 4.0 está fuera. Y puede acceder con valentía a cualquier nueva funcionalidad 4.0 que le ofrezca, siempre que sea sensible al entorno combinado en el que se va a ejecutar. Estoy creando una aplicación que incluye notificaciones locales diarias. Tengo que lidiar con eso incluso en el nivel de la interfaz de usuario: ni siquiera te muestro ese botón si tu sistema operativo no los admite. –

4

La configuración recomendada es establecer Base SDK en el nivel más alto (es decir, 4.0) y Destino de despliegue en la versión adecuada (depende de la función de marco utilizada en su aplicación).

Por supuesto, la aplicación siempre puede verificar la versión del sistema operativo y omitir llamadas a marcos no compatibles. Es una técnica común para crear aplicaciones universales para iPad y iPhone.

+0

Este es el camino a seguir. –

+1

De acuerdo. Y no vale la pena una respuesta por derecho propio, pero el mundo estaría mejor con una simple página de preguntas frecuentes sobre este tema, ** particularmente ** porque esta es la primera actualización de iPhone que no está disponible para toda la base de instalación. –

+0

Esto parece lógico pero has enfatizado 'recomendado'. ¿Dónde se recomienda esto? ¿Hay alguna declaración oficial de Apple? –

1

En mi opinión, si puede esperar unos meses para permitir que las personas pasen a la versión 4.0, entonces espere un poco; de lo contrario, simplemente continúe con las características 4.0.

Según mis estadísticas de años anteriores, tardó más de un año en que ocurrieran las actualizaciones 2.0-> 3.0, pero fueron principalmente los usuarios del iPod touch, ya que Apple cobraba $ 10 por ello.

Espero que la tasa de adopción de 4.0 sea mucho más rápida, pero tenga en cuenta que los iPhones/iPods de primera generación no reciben una actualización 4.0.

1

Creo que es seguro esperar que la mayoría de los usuarios se actualice ya que es una actualización gratuita desde 3.0. Es bastante obvio que Apple está interesada en que los usuarios mejoren 4.0, razón por la cual es gratis.

Al igual que con una actualización normal, iTunes regañará sobre la actualización, y si necesita volver a instalar el teléfono generalmente se redirigirá a la última versión.

Al vender una aplicación, puede estar bastante seguro de que sus compradores tienen acceso a Internet y, al menos ocasionalmente acoplarán sus teléfonos y obtendrán la solicitud de actualización gratuita. Es muy probable que las personas que han actualizado sus teléfonos anteriormente realicen una actualización similar a iOS4.

Actualmente, según lo veo, la principal motivación para permanecer en 3.x sería la compatibilidad con iPad.

También debería considerar cómo se espera que sean sus ventas durante los próximos 6 meses. ¿Cuál es el costo de no usar las últimas características? ¿Serás capaz de reducir el tiempo de desarrollo o agregar funciones de vanguardia al ir a 4.0? ¿Puede la aplicación competidora aprovechar las características de 4.0 para obtener una ventaja? Publicarlo solo como 4.0 podría tener un efecto positivo en la percepción de la aplicación.

Hay será un cierto porcentaje de personas que no podrán ejecutar su aplicación porque usa 4.0. El truco es averiguar si esa pérdida en las ventas es mayor o menor que las ganancias que obtiene dejándolos atrás.

Cuantos más compradores espera, más útil es dejar que todos ejecuten su aplicación. Además, ¿es probable que los compradores sean personas con conocimientos informáticos? En ese caso, es menos probable que se queden en 3.x.

Además, tenga en cuenta que los teléfonos anteriores al iPhone 3G no son compatibles con iOS4.

Una más adición:

Apple ya está empezando a excluir 2.0 aplicaciones de la AppStore, ver https://developer.apple.com/iphone/checklist/

1

he encontrado que mirar los números de iPhones/mac etc con una edad vs nuevos sistemas operativos instalados no le dice mucho sobre los hábitos de gasto de sus propietarios.

Las personas que gastan dinero en la tienda de aplicaciones son mucho más propensos a tener actualizado el software del sistema operativo.

Si su aplicación tiene algún nivel de complejidad, tardará un tiempo en enviarse, y tendrá una ventana bastante pequeña donde el iPad todavía se está ejecutando 3.x.

Desarrollar para múltiples niveles de SO es un problema. Además de necesitar ejecutar tu aplicación en un iPad/iPhone/iPod, ahora tienes que hacerlo también con 2 sistemas operativos. La señorita revisa un lugar donde realiza una llamada de solo 4.0 en código raramente ejecutado y obtiene bloqueos.

Para la estabilidad a largo plazo de su base de código, construir para 4.0 solo en una nueva aplicación también es bueno. Simple es mejor.

Cuestiones relacionadas