Novedades de la WWDC 2015 para desarrolladores

Nueva versión de Programs:

Ahora con pagar un Developer Program global podremos desarrollar para iOS, Mac OSX y AppleWatch por “sólo” 99€/año!

Ahora para poder probar las aplicaciones en dispositivo físico no será necesario estar dado de alta en un Program

Mejoras MacOSX 10.11 El Capitan:

  • Manejo de Ventanas: Dividir la pantalla en dos. Consejos: Cualquier ventana debe poder cambiarse el tamaño, Tamaños de pantalla 4/3 16/9, Nuevos API’s para mejorar la experiencia de usuario(ocultación de barras por ejemplo).
  • Force Touch: Usos actuales: vistazos de texto, Controles de multimedia, Previsualización y Marcado al dibujar, Haptic feedback (vibración, fuerzas o movimientos del usuario): API’s: NSPressureConfiguration, NSGestureRecognizer, NSView.pressureChangeWithEvent(), NSEventType.EventTypePressure

Mejoras Globales:

  • Nuevo algoritmo de compresión: lzfse, 3 veces más rápido y comprime más que la zlib. Se supone que puede utilizar 60 menos de batería al utilizarla.
  • iCoud Drive: Nueva aplicación que permite ver le contenido de ¡iCloud en iOS9, previsualizar y abrir las apps de cada contenido. Para facilitar el uso del documento en Drive desde varios proceso simultáneamente y  para evitar copias innecesarias al directorio de la app en el dispositivo y resubirlo a la nube, hacer que hacer uso de File Coordination, LSSupportsOpeningDocumentInPlace, application(app:UIApplication, openURL: NSURL, options:[String: AnyObject])
  • CloudKit: Gratuito, 10GB Assets, 100MB database, 2GB/transferencia mensual, 40 peticiones/s (sin usuarios)  hasta 1PB Assets, 10PB base de datos, 200TB/transferencia mensual 400/peticiones/s. Han incluido un Dashboard para ver los márgenes de maniobra que tenemos sobre los límites gratuitos. Incorporan la posibilidad de integrar CloudKit Web services, funciona con Json,  tiene biblioteca Javascript y es seguro por Apple ID para la autenticación.

Intenacionalización:

  • NSPersonNameComponentsFormatter: permite la presentación correcta de un nombre dependiendo del idioma
  • RightToLeft idiomas: soporte para la presentación de textos en idiomas que se escriben de derecha a izquierda. Desbloqueo, Nombre de la app, desplazamiento RTL para cambiar de escritorio, Aplicación de Fotos y Mail, Navegación, Swype, Sliders, Switchs. Fundamental tener configurado bien el Autolayout. Hay que tener cuidado con las CustomViews y con los gestos, mediante UIView.userInterfaceLayoutDirectionForSemanticContentAttribute().

Mejoras en iOS9

  • Mejoras en el Multitasking: Permite dividir la pantalla de distintas maneras para ejecutar dos aplicaciones a la vez. Aquí la clave es la utilización correcta del Auto Layout y Adaptive Layout/UI con sus respectivas constraint para evitar problemas de visualización. Esto va a ser la risa XD Dynamic Types, AutoLayout, Size Classes, dependiendo de la resolución nos permitirá elegir el layout apropiado: Regular y Compact. Hay que utilizar un Launch Storyboard, Soportar todas las orientaciones.
  • PIP: Hay que utilizar el Background Media Playback para Video, Para habilitar PIP: AVPlayerViewController, AVPictureInPictureController, WKWebView
  • Search API’s: Permite añadir posibles resultados de Spotlight, por lo que la app decide que información indexa y cómo la busca y qué presenta en Spotlight. Tiene una conexión con el App Link para que al abrir un enlace se abra la aplicación correcta. APIs: CoreSpotlight, indexa el contenido de la aplicación, App indexing Extension, se asegura que los datos están actualizados, NSUserActivity, indexa lo que el usuario está viendo o está usando en la aplicación, Web Markup: para las aplicaciones que presentan contenido visible en la web, App Suggestions: recomendaciones que pueden dar las aplicaciones en Spotlight, también dependiente de la NSUserActivity.
  • Mejoras en las pruebas de la UI: Ahora desde el Xcode podremos grabar pruebas de aceptación de UI desde el propio simulador, por lo que deberá iluminar aquellas partes que están siendo comprobadas desde las pruebas, parece ser muy similar al Robotium Recorder.
  • CloudKitJS Library: a partir de ahora podemos hacer aplicaciones web que puedan consultar las mismas informaciones que se tengan en ICloud, new feature 🙂
  • App Thinning/Slicing: a partir de iOS9 el dispositivo sólo se descargará las imágenes que sean apropiadas para el dispositivo (1x,2x,3x) lo que reducirá el tamaño de la descarga. También permite añadir recursos descargables desde la App Store y reducir el tamaño del descargable inicial y bajar sólo lo que sea necesario para la ejecución de la aplicación en un determinado dispositivo.  Como un DLC pero sin necesidad de pagar extra. Los distintos componentes de las aplicaciones: ejecutables, imágenes gráficos y módulos por tipo de GPU ahora podrán dividirse para adaptarse a las necesidades de cada dispositivo individual. Esto reducirá el tamaño total de las aplicaciones instaladas. Esto también se aplica a IOS9 por lo que es general en los dispositivos deberíamos tener mucho más espacio disponibles para instalar aplicaciones, de ahí lo de mantener los dispositivos de 16GB. Se puede realizar mediante uso de etiquetas que definen packs de contenido, se puede definir el orden y la prioridad de la descarga. Hay una vista en Xcode que permite ver estas etiquetas y el contenido de cada pack. Podremos monitorizar los contenidos descargados por el dispositivo en el Xcode.
  • Desde el gestor de imágenes ahora podremos definir este tipo de divisiones para adaptar la aplicación al App Slicing.
  • BitCode: Va a hacer que al subir la App a la Store sea actualizada para su descarga aplicándole mejoras a las aplicaciones según se vayan adaptando. Parece un proceso de subida incremental de contenidos a la Store. Va a ser obligatorio para WatchOS2 y por defecto en iOS9.
  • Van a primar por encima de todo las apps adaptadas a 64 bit, para forzar a los devs a generar código de 32 y 64 bit, para GPU’s rápidas y lentas. Para mejorar la experiencia de usuario, bien aprovechando al máximo la CPU de 64 bit o usando gráficos más manejables para las GPU lentas.
  • Aplicado a los videojuegos, podemos manejar niveles descargables por paquetes desde la App Store
  • Contacts/ContactsUI: revamp del AddressBook/AddressBookUI más orientado a objetos.
  • GameplayKit: nuevo framework de desarrollo de videojuegos: manejo de entidades o componentes, máquinas de estado, soporte IA, parece bastante potente para hacer juegos de estrategia 🙂
  • Mejoras en el rendimiento de la batería: primero se han puesto de acuerdo con las principales aplicaciones para aconsejarles cómo gastar menos batería, detecta cuando el móvil está boca abajo, hace un uso más efectivo de la luz trasera a nivel de intensidad, se adapta a los periodos de descanso del dispositivo, gasta menos cuando no se está utilizando.Esto daría una hora extra de batería en el usuario medio. Low power mode, previene de utilizar la CPU y la GPU, procesos en segundo plano y animaciones en el modo de mayor gasto de energía, esto debería dar unas 3 horas de batería extras con el móvil completamente cargado.
  • Mejoras de seguridad: autenticación en dos pasos. Al activar la cuenta en otro dispositivo manda una notificación Push al dispositivo y vinculado para autorizar el uso del Apple ID, saca un código de verificación que debes introducir en el primer dispositivo. Se amplia el número de dígitos a introducir de 4 a 6 para reducir el número de intrusiones. App Transport Security permite un intercambio de información más seguro utilizando TLS 12, Forward secrecy y las mejores prácticas en seguridad, según vayan avanzando las técnicas en seguridad el framework se irá actualizando en consonancia, sólo utilizando el NSURLSession en iOS9 y OSX 10.11, recompilando. System integrity protection debería facilitar a seguridad para aplicaciones que se desarrollen y qu etengan que ver con el manejo de proceso y de permisos, ahora no será necesario ser administrador para tener acceso a funcionalidades del Kernel con lo cual los procesos de sistema están más seguros. Soporte de IPv6, en los próximos meses varios operadores se van a quedar sin IP’s de IPv4 suficientes para los dispositivos, iOS 4 y 10.1 MacOSX ya lo soportan.No utilices direcciones IPv4, no metas direcciones a mano y usa los frameworks de red. Ahora desde el mac podremos activar un hotspot wifi sólo con IPv6 para probar las apps con este protocolo.
  • Applink: permite el registro de los enlaces de aplicación (NSUserActivity en el método application:continueUserActivity:restoration:Handler)
  • HomeKit: Acceso remoto a iCloud, configurar accesorios con cámara, Monitorizar el sombreado de ventanas, Sistemas de Seguridad casera, Sensores, Interruptores programables. Ahora pueden mandar notificaciones Push a los dispositivos iOS, incluyendo aquellos que quieres notificar. Disparadores de Eventos: para que unas cosas puedan disparar otras, como haz el cafe cuando sea por la mañana.

WatchKit-Watch OS2:

  • Ahora se pueden realizar aplicaciones que se ejecuten directamente en el smartwatch a partir de las extensiones y no simplemente depender del móvil para su funcionamiento. Lo cual permite que se ejecuten apps independientes, lo que da micha más versatilidad a los posibles usos de las apps
    • La comunicación Smartwatch-SmartPhone se seguirá haciendo en base al Watch Connectivity Framework
    • Se puede utilizar el NSURLSession desde el smarthWatch sin que el smartphone esté disponible.
    • Nuevo API de Complication, permite que al crear la app digas que quieres que suceda cuando se haga el gesto de mover la muñeca, colocadas al rededor del reloj. Todo aquello que no es el reloj será una Complication, es como componer watchfaces en Android, o mini widgets del reloj. La tarjeta que presentará dependerá de una línea de tiempo, o del tiempo en el que debe presentarse. El ejemplo que se pone es una predicción del tiempo por hora. La extension podrá cambiar la línea de tiempo para que cambie lo que está cargado previamente. También podrán cambiar mediante notificaciones Push. Puedo similar con la corona para cambiar el timeline de lo que ponía a X hora según lo muevo.
    • Glances permite añadir gestos asociados a pantallas de información
    • Las notificaciones nos permiten diseñar un UI completo para la info asociadas a acciones personalizables a realizar sobre la misma, por ejemplo contestar (Whatsapp???)
    • Se mejora el rendimiento global de las aplicaciones
    • Se dispone de acceso directo a las características propias del Watch: micrófono, sensores, corona(rueda), Passkit, animaciones, grabar y reproducir audio y reproducir Video.
    • La mayor parte de los API’s de iOS están disponibles en SmartOS2
    • Ahora habrá que decidir que se implementa en cada una de las dos partes (Smartwatch y SmartPhone)
    • Durante la sesión nos mostraron como hacer la migración de una app de la versión 1 a 2, utilizando la corona para elegir de entre un listado de elementos. Ahora se puede debuguear completamente la app del reloj funcionando con WatchOS2 al mismo tiempo que simulas el móvil en el Xcode.

Mejoras en Swift:

  • Se introduce Swift 2 como nueva versión del lenguaje y el compilador
    • Han conseguido mejoras de rendimiento global: diccionarios, construcción de cadenas,…
    • Mejoras en el manejo de Errores, se acabó el NSError, ahora funciona como un manejo de Excepciones tradicional, así que se acabaron los típicos if(error)
    • Extensiones de protocolos: ahora puedes extender las funcionalidades de un determinado protocolo, por lo que se puede añadir funcionalidades a clases existentes, algo similar a las categorías de Objective C
    • Labels: ahora pueden colocarse etiquetas a funcionalidades, por ejemplo bucles, para hacer uso de un break y especificar la label a la que se aplicará
    • Estará basado en Software libre, por lo que se podrá desarrollar sobre Linux, posible integración con CI
    • Tendrá un migrador de aplicaciones de Swift 1.2 a 2.0
    • Se pueden utilizar marcas en los comentarios para generar la documentación, con enlaces e imágenes
    • Availability checking: permite saber qué esta disponible dependiendo del SDK, por lo que da un error de compilación si vamos a utilizar al go problemático y nos da alternativas para resolver el problema a nivel de función clase o bloque de código (if).
    • nueva palabra reservada guard, para salidas rápidas de función y evitar código innecesario.
    • Mejoras del API para conectar Swift con el código Objective C indicando mejor aquellos objetos nullables.
    • Mejoras en Xcode pra disponer de una vista de fichero de cabecera como resumen de una clase una especie de Outline de Eclipse pero para Swift.
    • Mejoras en los playground para facilitar el aprendizaje, múltiples páginas(como un libro), comentarios vitaminados, resultados inline(imágenes por ejemplo), soporte de ficheros fuente, recursos encapsulados, Vista dividida (Assistant Editor para ver los resultados del código en ejecución).

 

 

 

Xcode 7:

  • Soporte para todas las plataformas Apple
  • StackView: permite definir en el Interface Builder cómo se comportan las pantallas en vertical y horizontal según el layout. Permite elegir el orden de los elementos del stack y ajustarse automáticamente.
  • Storyboard References: Permite dividir el storyboard en distintos ficheros para facilitar la edición.
  • Cambios en el Interface Builder para visualizar efectos visuales como el Blur, sombras, etc… permitirá saber cómo se ven en los distintos dispositivos.
  • Debug y profiling: enfoque a la energía gastada por la app, Instruments se ha mejorado con el uso de gestor para seguir las gráficas, nuevos instrumentos: CoreLocation, CPU system trace. Address Sanitizer: sistema de búsqueda de errores, permite monitorizar la aplicación en ejecución para detectar fallos y recomendar arreglos a dichos fallos.
  • Crash log: integración de TestFlight con Xcode para visualizar los log de crash y ver que ha pasado, en cada informe podemos ver gráficas y datos por versión de IOS, ordenador por tipo de error más típico. Luego permite abrir el proyecto para resolver el fallo. Disponible para iOS 9 y MacOSX 10.11 y pronto en WatchOS2.
  • Testing: mejor integración con Xcode: API, Performace, Comportamientos síncronos y asíncronos, Ejecutables desde Xcode y desde entornos de Integración Continua (CI). Se integran los test de Interfaz y la cobertura de código. Ahora se pueden grabar las pruebas directamente desde la ejecución de la aplicación. Podremos comprobar si las pruebas pasan en los distintos tipos de dispositivos, incluyendo capturas de cada paso de las pruebas de interfaz.  Permiten la integración con los APi’s de accesibilidad e internacionalización.
  • Juegos y gráficos: Metal: permite un uso más intensivo de la GPU para liberar a la CPU de ciertas tareas, introducen MetalKit: permite cargar modelos 3D, usarlos en Views y Texturas, Metal performance Shader: mejora el rendimiento del cálculo de sombras, Model IO: Materiales y Modelos, 3DMeshes, offline raytracing, GamePlayKit: permite realizar la lógica de la aplicación, pathfinding, flocking, gran biblioteca de lógicas, ReplayKit: grabaciones de juegos, acelerado por hardware, compartición y salvado, Voiceover, Trimming. Mejoras en el editor de GameKit, para hacer uso de objetos 3D visualmente.

Ventas en la App Store:

  • 31% USA
  • 25% Japón
  • 16% China
  • 28% Otros

 

 

Comments

Leave a Reply

*

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Suscríbete al Boletín

Si quieres estar al tanto de las novedades del blog, ya sabes :)
* = campo obligatorio

powered by MailChimp!

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies