tutorial iphone cocoa-touch

tutorial - ¿Qué es el SDK de iPhone que falta?



cocoa touch tutorial (14)

He estado haciendo desarrollo de aplicaciones móviles durante mucho tiempo (¿2001?), Pero los sistemas con los que trabajamos eran entornos de desarrollo móvil dedicados (Symbian, J2ME, BREW). iPhone SDK es un híbrido curioso de Mac OS X y la versión móvil de Apple (Cocoa Touch).

Pero le faltan algunas cosas que tienen otros sistemas móviles, IMO. Específicamente:

  • Procesamiento de fondo de la aplicación
  • Enrutamiento de la aplicación SMS / MMS (envíe un SMS a mi aplicación en segundo plano)
  • API para acceder a las funciones del teléfono / historial de llamadas / interceptación de llamadas

Me doy cuenta de que Apple tiene razones perfectamente válidas para lanzar el SDK de la manera en que lo hicieron. Tengo curiosidad de saber qué personas en SO piensan que falta el SDK y cómo podrían arreglarlo / agregarlo, si fueran un Gerente de Producto de Ingeniería en Apple.


API que estoy buscando personalmente:

  • Apple80211 como API pública (API privada y actual está bien si está documentada)
  • Acceso a los botones de Volumen (semi-accesible a través de Celestial, privado, necesita nueva API)
  • Acceso al calendario (privado, estado de API desconocido)
  • Acceso al perfil Bluetooth + SPP (estado desconocido)
  • Acceso a la cámara (directamente, estado de API desconocido)
  • Acceso al tiempo de ejecución de JavaScript (directamente, no a través de UIWebView, estado de API desconocido)
  • El acceso a WebKit es de nivel inferior a UIWebView (privado, API actual está bien)
  • Acceso a la Biblioteca de música (privada, API actual está bien)

Creo que la falta de notificaciones push para aplicaciones es lo más importante que nos falta en este momento. Con push, puede registrar su aplicación para realizar una tarea (como obtener los datos más recientes de un servicio web), incluso cuando no se está ejecutando, en el momento y la frecuencia que el SO decida que es mejor. En un mundo ideal, junto con el concepto existente de aplicaciones de iPhone cargando rápidamente y reanudando donde lo dejó por última vez, esto resuelve el problema de no ejecutar en segundo plano. Sé que algunas tareas serán más difíciles o quizás imposibles con esta estrategia, pero sigue siendo un buen compromiso entre las aplicaciones de terceros y el hardware limitado del iPhone.

Originalmente, el envío estaba programado para septiembre pasado, pero se eliminó del SDK beta y no se habló de él desde entonces.


La mayor deficiencia en mi opinión es el apoyo para separar la concesión de licencias de la distribución.

Lo que quiero decir con esto es que debería ser posible descargar una versión de prueba de una aplicación y luego comprar una licencia para esa aplicación (desde una llamada API dentro de la aplicación o desde la tienda de aplicaciones). Esto haría mucho más fácil probar antes de comprar y deshacerse de los duplicados actuales de muchas aplicaciones con versiones ''lite''.


Mi lista ordenada por prioridad:

  • Trazar la abstracción (el MapKit se ve increíble), pero eso requeriría un nuevo TOS de Google Maps
  • Biblioteca de música
  • Cámara (foto + video) Acceso a más
  • UIViews, Apple diseñó algunos personalizados muy bonitos para sus aplicaciones
  • Mejor abstracción de UIWebKit

Una limitación que me molesta es la falta de acceso a las características del sistema que requieren root o setuid. Por ejemplo: abrir puertos IP privilegiados.

No estoy seguro de que haya una buena solución para esto, siempre y cuando la política de Apple sea mantener el dispositivo bloqueado.


Usted mencionó algunos de los más importantes: copiar y pegar (o de hecho, de alguna forma, las aplicaciones para colaborar) es otra gran omisión.

También parece carecer de un marco de sincronización de escritorio (al menos si existe, no puedo encontrarlo).

La independencia del lenguaje y especialmente la falta de secuencias de comandos es otro motivo de preocupación, objetivo-c está muy bien, pero sería bueno elegir más idiomas.

La incapacidad para extender dinámicamente las aplicaciones, a través de scripts o de otro modo, es otra gran omisión. Esto es en parte un problema de SDK / OS, en parte de licenciamiento.


CoreData no se encuentra.


Permita que el programa establezca algún tipo de evento programado local para que su aplicación active una alerta e inicie su aplicación si el usuario acepta (como cualquier aplicación de calendario). Podrías hacerlo con notificaciones automáticas, pero hay muchos casos en los que odiaría tener que depender de una infraestructura de servidor y conectividad de red para básicamente hacer algo cronometrado.

Alguna idea de qué dirección enfrenta el usuario. No puedo creer que el chip GPS que usan los iPhones más nuevos no sea capaz de informar sobre la dirección.


Recolección de basura.


Las características que veo que falta que debería tener es

  • Acceso a SMS
  • Acceso directo a la aplicación Google Maps. Debería poder tener acceso a esto para poder extender su aplicación y usar las funciones incorporadas proporcionadas por Google Maps.
  • Acceso a la funcionalidad Bluetooth del teléfono.
  • Acceso al calendario ¿Por qué no permitir el acceso simplemente para publicar un evento de calendario para el usuario?
  • Acceso a Active Sync. Sería genial si pudiéramos acceder directamente a esto y comunicarnos con el servidor de Exchange.
  • Imagen de núcleo. Brindan Core Animation pero Core Image falta. Espero que esto se agregue a la API pronto.

Estas son algunas de las características a las que mis clientes tienen acceso en el pasado y se suprimen cuando no están disponibles.


Definitivamente nos perdemos una API de Calendario y acceso a SMS. Muchas aplicaciones podrían aprovechar tales API. El iPhone permite a los usuarios tener todo en su bolsillo, pero es casi inútil siempre que los desarrolladores no puedan aprovechar esta integración en sus aplicaciones.


Personalmente me encantaría ver

  • Acceso al Marco de CoreTelephony (actualmente privado). Que permite el acceso a todas las funciones del teléfono (especialmente el envío de MMS / SMS).
  • Algún tipo de habilidad para ejecutar cosas en el fondo. Si bien las notificaciones automáticas están bien para la mayoría de las cosas, es un poco difícil aprovechar CoreLocation (es decir, hacer que la aplicación muestre una notificación en un lugar determinado). Por supuesto, esto probablemente necesitaría un botón de encendido / apagado o una aplicación específica como push.

Un lenguaje con espacios de nombres adecuados.


La vista de animación que reducirá al desarrollador para hacer una aplicación genial, por supuesto, el núcleo del negocio local aún necesita considerar más, pero la capa de visualización podría ser más fácil de usar ....