Menú principal

Mostrando entradas con la etiqueta Objective-C. Mostrar todas las entradas
Mostrando entradas con la etiqueta Objective-C. Mostrar todas las entradas

sábado, 30 de enero de 2016

El malware para iOS podría evadir AppStore usando técnicas de Hot-Patching

Cada vez es más común que los desarrolladores utilicen herramientas que les permiten actualizar las aplicaciones de iOS sin pasar por el flujo común de validación de la AppStore para conseguir tener cambios en las apps sin los retrasos de pasar por Apple. JSPatch podría permitir a los desarrolladores - incluidos los maliciosos - eludir las funciones de control y revisión de Apple. ya que pueden modificar de forma remota el código en sus aplicaciones sin tener que pasar por el proceso normal de revisión.

Esto abre una puerta enorme a posibles abusos o intenciones maliciosas por parte de otros usuarios, al igual que un gran riesgo de seguridad. La técnica es una variación del parcheo en caliente que se desarrolló para solucionar bugs dinámicamente en un sistema o aplicación sin tener que reiniciarlo. En este caso, una aplicación iOS se actualiza sin que el desarrollador tenga que enviar una nueva versión a la tienda oficial de iOS y esperar el proceso de revisión de Apple.

Figura 1: JSPatch para iOS

El proyecto de código abierto JSPatch proporciona un motor para que los desarrolladores de aplicaciones puedan integrar en sus aplicaciones, lo que se llama puentes de códigos Javascript para Objective-C. Por ejemplo, después de añadir el motor JSPatch a su aplicación, se requieren sólo 7 líneas de código, los desarrolladores pueden configurar la aplicación para cargar siempre el código Javascript desde un servidor remoto. Este código es interpretado por el motor JSPatch y convertido a Objective-C.

El problema es que los parches en caliente están totalmente desalineados con el modelo de seguridad de iOS, que se basa en la revisión por parte de Apple del código. Estaremos atentos a todo lo que ocurra, y a la posible aparición de malware que se aproveche de los parches en caliente.

martes, 29 de diciembre de 2015

Infer: Detecta bugs en tus apps de iOS antes de subirlas

Hoy traemos una herramienta interesante, la cual permite detectar bugs antes de que la app se publique. La herramienta se llama Infer y puede ser descargada a través de Github. La herramienta pertenece a Facebook, desarrollada en su laboratorio de código abierto. Es una herramienta de análisis estático de código que permite actuar sobre Objective-C, Java o C. Tras el paso del código por la herramienta se pueden detectar diferentes vulnerabilidades, lo cual es algo de ayuda, ya que si la vulnerabilidad se detecta en este instante, se podrá arreglar antes de subirla al store.

En cualquier caso, Infer puede interceptar o identificar bugs críticos, por lo que merece la pena tener la costumbre de desarrollar el código y utilizar este tipo de herramientas de análisis estático para fortificar nuestro proceso de desarrollo. En el sitio web de la herramienta se indica que para iOS, además, se devuelve un informe de posibles memory leaks.

Figura 1: Código Objective-C y detección de bug

Los developers de Facebook utilizan internamente esta herramienta como parte del proceso de desarrollo. En el sitio web de la herramienta se nombran aplicaciones como Facebook Messenger, Instagram o la propia app de Facebook. Al final toda herramienta que sume en temas de seguridad es bienvenida. Además, esto es un indicio de que el ciclo de vida de desarrollo que utiliza Facebook es de los que se denominan S-SDLC.

lunes, 7 de diciembre de 2015

Según un estudio el 80% de las apps de iOS tienen fallos en el cifrado

La firma Veracode ha publicado un estudio dónde se extraen varias conclusiones acerca de las vulnerabilidades en el software. La más impactante es que más del 80% de aplicaciones móviles para iOS tienen fallos en el cifrado. Estas cifras son muy altas y el informe se puede descargar desde el sitio web de Veracode. La fuente de información utilizada para la generación del reporte ha sido una plataforma que la firma tiene en la nube, la cual ha analizado más de 1,5 billones de líneas de código fuente. Tras el análisis de este código han podido llevar a cabo un diagnóstico y detección de ciertas carencias en el software.

Los resultados del informe van más allá de las vulnerabilidades criptográficas, pero si nos centramos en lo que se puede encontrar en el informe sobre el tema es sorprendente. Existe una alta prevalencia de problemas criptográficos en iOS y Android. Cómo se puede ver en la siguiente imagen existe un gran número de vulnerabilidades criptográficas sobre las apps de estos sistemas.

Figura 1: Listado Top 10 errores criptográficos en apps

Además, el informe habla de las vulnerabilidades más genéricas según el contexto de CWE y el MITRE. Incluso en el informe se puede ver como se hace un análisis de los lenguajes que pasan los test de OWASP y el porcentaje de éxito. El test es pasado en un 44% por Objective-C, el lenguaje de iOS. Hay que detallar que este resultado es el segundo mejor, solamente por detrás de C/C++, que tiene un 60%. El propio Android o Javascript se encuentran por detrás en este ranking.

Figura 2: Resultados de OWASP para los lenguajes

En definitiva, un interesante reporte que se ha presentado hace unos días y que muestra la evolución de los riesgos y vulnerabilidades en lenguajes y plataformas. Los resultados en el tema criptográfico hacen reflejar que algo no se está haciendo bien por parte de los desarrolladores y que se debe mejorar. Seguiremos atentos en Seguridad Apple a estos informes que reflejan las mejoras o no del mundo del desarrollo seguro.

sábado, 18 de abril de 2015

Explotando bugs en aplicaciones escritas en Objective-C

En el popular e-zine Phrack Magazine se han publicado dos artículos a explotar aplicaciones escritas en Objetive-C, como cuentan nuestros amigos de Cyberhades. El primero de ellos, que ya tiene un tiempo, está centrado en el Runtime de Objective-C, y bajo el título de The Objective-C Runtime: Understanding and Abusing explica cómo funciona y cómo se pueden explotar aplicaciones abusando de él.

Figura 1: The Objective-C Runtime: Understanding & Abusing

El segundo, y más reciente artículo, se titula Modern Objetive-C Exploitation Techniques y se centra en la explotación de bugs de corrupción de memoria y cómo generar exploits utilizando técnicas como ROP.
Si te gusta el mundo del exploiting, y quieres centrarte más en las aplicaciones de iOS o de OS X creadas con Objetive-C merece la pena que estudies a fondo estos dos artículos.

lunes, 17 de febrero de 2014

Guía de Desarrollo Seguro: "Los hackers no son malos"

Desde Apple se ha publicado un documento de 123 páginas con información útil para mejorar la calidad de las aplicaciones respecto a seguridad. La Guía de Desarrollo de Código Seguro de Apple recoge las principales vulnerabilidades de seguridad que se encuentran en las aplicaciones para tecnologías Apple como iOS y OS X, pero en la introducción nos ha gustado la diferenciación que hace entre Hackers, Crackers y Atacantes, donde se cita que "Hackers are not malicious in general [...]".  El texto no tiene desperdicio:

Figura 1: Hackers según Apple

El contenido de la guía recoge ataques como XSS, SQL Injection, explotación de Buffer Overflows y Buffer Underflows, ataques de condición de carrera o acceso inseguro a ficheros. La verdad es que si quieres aprender a desarrollar apps para iOS o para OS X, o si ya desarrollas apps, te recomendamos que leas esta guía en detenimiento, que está bien estructurada y da prácticas recomendaciones.

miércoles, 27 de noviembre de 2013

HP: El 90% de las aplicaciones iOS tiene vulnerabilidades

El informe que la empresa HP ha presentado sobre las pruebas de seguridad que han realizado a más de 2000 aplicaciones móviles de iOS ha destapado un secreto a voces, o lo que muchos ya sospechaban desde el boom del mercado de desarrollo móvil. Las apps que se han utilizadas de prueba tienen un uso comercial por unas 600 grandes empresas en 50 países. El informe muestra que 9 de cada 10 aplicaciones, es decir, un 90% tenían serias vulnerabilidadesMike Armistead, vicepresidente y gerente general de HP, dijo que las pruebas se realizaron en 22 categorías distintas de Apple Store, con el foco puesto en herramientas que son utilizadas en business to business, como la banca o el comercio minorista.

HP explicó que el 97% de estas aplicaciones acceden a fuentes de información privadas de manera inapropiada dentro del propio dispositivo, y que el 86% resultó ser vulnerable a los ataques de inyección SQL. Este hecho es algo revelador para el desarrollo móvil, ya que parece que se está generando en grandes cantidades y realizando de manera inadecuada. Las guías de desarrollo de Apple pueden ayudar a los desarrolladores, pero esto no es suficiente para fortificar las aplicaciones, según comento Mike Armistead.

Las aplicaciones móviles están siendo utilizadas para extender la web corporativa en muchos de los casos, y lo que se está logrando es que las empresas abran una mayor superficie de ataque, comentó Armistead. No hay que irse muy lejos, para constatar esta realidad, y hace poco contábamos por aquí la presentación de Alejandro Ramos donde mostraba demostraciones prácticas de apps inseguras para iOS.

Figura 1: Facebook Recover explota el almacenamiento de sesiones inseguras

En su resumen de las pruebas, HP dijo que el 86% de las aplicaciones probadas carecía de los medios para protegerse o fortificar las vulnerabilidades comunes, tales como el uso indebido de las API de cifrado, Cross-Site Scripting y transmisión insegura de datos. El 75% de las aplicaciones no utilizaron técnicas de cifrado adecuadas para el almacenamiento de datos en los dispositivos móviles, lo que deja los datos no cifrados al alcance de un potencial atacante. Un porcentaje alto de las aplicaciones no implementaban SSL/HTTPS correctamente, pero ¿Cómo descubrían los desarrolladores los agujeros de seguridad? Los desarrarrolladores realizaban pruebas de penetración, pentesting

La necesidad de desarrollar aplicaciones móviles de forma rápida para fines de negocios es uno de los principales factores que contribuyen y dan lugar a la debilidad de estas aplicaciones disponibles para su descarga pública. La debilidad que constituye el lado del cliente, está impactando en el lado del servidor también. "Creemos sinceramente que el ritmo y el costo de desarrollo en el espacio móvil ha obstaculizado los esfuerzos de seguridad", dice HP en su informe. Además, "La seguridad de aplicaciones móviles está todavía en su infancia" añadieron.

Si quieres tienes un libro de desarrollo de apps para iOS que enseña buenas prácticas de desarrollo, y además tienes esta conferencia para aprender buenas prácticas con ejemplos.

martes, 19 de noviembre de 2013

XCode 5.0.2, impresoras, cámaras digitales y Adobe Flash

Tal y como el título de este artículo recoge, hay que volver a preocuparse de las actualizaciones de software de nuestros equipos Mac OS X, ya que se hay nuevas compilaciones que deben aplicarse. Esta es la lista de productos que debes instalar en cuanto puedas.

XCode 5.0.2

Si estás desarrollando apps para iOS o para Mac OS X, entonces debes actualizar a la última versión de XCode 5.0.2, ya que trabajando con el simulador, instalando apps o haciendo debugging, se producían bastantes caídas del programa. Ahora han sido solucionados y está disponible la nueva versión en la Mac App Store.

Figura 1: XCode 5.0.2

Drivers de impresoras y Cámaras digitales

Para los equipos Mac OS X se han publicado los siguientes drivers que mejoran el funcionamiento de las impresoras siguientes y la compatibilidad con una gran cantidad de cámaras digitales:
- FujiXerox Printer Drivers v2.5 for OS X
- Samsung Printer Drivers v2.6 for OS X
- Digital Camera RAW Compatibility 5.01
Adobe Flash Player

Adobe también ha publicado un boletín de seguridad, y después de todo lo que ha pasado con la brecha de seguridad que se ha llevado por delante su base de datos de clientes con sus contraseñas, lo mejor es preocuparse por la seguridad e instalar la nueva versión de Adobe Flash Player para Mac OS X, que soluciona 2 CVEs críticos.

miércoles, 25 de septiembre de 2013

XCode 5.0: Soporte final de iOS 7 y un serio CVE en GIT

Con el lanzamiento de iOS 7 también Apple ha tenido que actualizar XCode a la versión 5, para dar soporte final a todas las APIs del nuevo sistema operativo. La nueva versión está disponible desde Mac App Store y tienes más información de ella en la web de desarrolladores. Pero además de dar soporte completo a iOS 7, esta nueva versión viene con el Security Advisory APPLE-SA-2013-09-18-3 Xcode 5.0 en el que se informa de la solución del CVE-2013-0308 en GIT, que permite a un atacante hacer un ataque de red man in the middle con cualquier certificado y robar las credenciales de Apple ID.

Según se explica en el informe del Security Advisory, cuando se usa la función imap-send, el motor de GIT no verifica que el hostname del certificado digital X.509 corresponda con el nombre de dominio.

Figura 1: Bug CVE-2013-0308 en GIT parcheado en XCode 5.0

Así, en esta nueva versión de XCode 5.0 se ha actualizado la versión de GIT a la 1.8.3.1 que soluciona este problema, por lo que si desarrollas en un entorno de red, te recomendamos que actualices lo antes posible. Si quieres aprender a desarrollar apps en iOS, tienes más información en el libro de Desarrollo de apps para iOS: iPhone & iPad.

martes, 3 de septiembre de 2013

Cracking de apps en Objetive-C con SIMBL y EasySIMBL

En su conjunto de Enlaces de la Secmana desde SecurityByDefault nos referenciaban un pequeño CrackMe para OS X llamado OSX Swizzler en el que se hace uso de SIMBL y de EasySIMBL para conseguir hookear una función de la aplicación - escrita en Objective-C y poder saltarse así la protección de la misma.

Figura 1: EasySIMBL creando un bundle

La idea de usar SIMBL o la versión más moderna EasySIMBL que funciona en OS X 10.7 Lion y en OS X 10.8 Mountain Lion para crear un bundle con las dos aplicaciones. Para ello se debe crear un método especial llamado Load en el que se indica cuál es el método que se quiere hookear, para conseguir reprogramar el comportamiento de un determinado método o función dentro del paquete original.

Figura 2: Método Load para modificar el método isValidSerial

El resultado final es que se cambia el comportamiento de la app y se consigue el objetivo buscado, de resolver el CrackMe. El uso de SIMBL o EasySIMBL permite no sólo crackear apps en Objetive-C, sino cargar plugins, o funciones extras en apps sin necesidad de que haya una interfaz especialmente definida para ello.

Figura 3: CrackMe OSX Swizzler resuelto

Estas técnicas también se pueden utilizar con apps desarrolladas para iOS, aunque lógicamente la ejecución de bundle se podría realizar en sistemas en los que la validación de code-signing haya sido desactivada.

martes, 6 de agosto de 2013

iMAS - iOS Mobile Application Security

En la pasada BlackHat USA 2013, dentro del track Arsenal donde se presentan nuevas herramientas, se presentó iMAS - iOS Mobile Application Security. Este proyecto del MITRE es un framework que aglutina un conjunto de librerías Open Source disponibles para descarga y utilización, y cuyo objetivo es solucionar algunas de las vulnerabilidades de seguridad más comunes en el mundo del desarrollo de apps para sistemas operativos iOS. Las diapositivas utilizadas para la presentación pueden ser descargadas desde: BlackHat USA 2013 Arsenal - iMAS (iOS Mobile Application Security).

Como se puede ver en el siguiente gráfico, el framework se focaliza en cinco áreas claves de la seguridad, como son la seguridad en: El acceso al dispositivo, el acceso a la aplicación, el almacenamiento de datos de la aplicación, la app durante su ejecución y la protección del código de la app.

Figura 1: Debilidades y controles de iMAS en el desarrollo de apps para iOS

Todos los controles se pueden implementar con estas librerías, y están alineados con las vulnerabilidades del OWASP Mobile Top 10, algunas vulnerabilidades conocidas de apps en iOS y las CWE (Common Weaknesses Enumeration). Puedes descargar las librerías y conocer más del proyecto en sus GitHub: iMAS - iOS Mobile Application Security.

lunes, 10 de diciembre de 2012

Hacking, forense y desarrollo de apps para Android & iOS

Aprovechando que ayer hablamos sobre Kris/Chris Paget, hoy os vamos a dejar la charla que impartió en la Defcon 18: Practical Cellphone Spying, donde habla sobre cómo atacar las comunicaciones en los dispositivos móviles. Una charla que merece la pena ver para entender mejor la seguridad de las comunicaciones en dispositivos móviles, algo que puedes estudiar en detenimiento en el libro de Hacking de Comunicaciones Móviles.


Además, del 17 al 20 de Diciembre tienes una Formación online sobre Análisis Forense de Dispositivos Móviles que te enseñará los principios en los que se basa el peritaje de dispositivos iPhone/iPad o Android y se mostrarán herramientas profesionales como Oxygen Forensics. Dicha formación se puede seguir a través de Internet, y se realizará durante 10 horas en horario de tarde en España y de mañana en Latino América.

Esta misma semana, del 17 al 20 de Diciembre, en las oficinas de Informática 64 - en Móstoles - tendrá lugar un Curso de Desarrollo de Aplicaciones Android que durará 20 horas y se impartirá en horario de 09:00 a 14:00 horas que es ideal para todos aquellos que quieren aprender los principios de esta disciplina.

Y si lo que quieres es aprender a desarrollar aplicaciones iOS para la App Store siempre puedes comprar el libro de Desarrollo de Aplicaciones iOS para iPhone/iPad que utilizando este código de descuento en las observaciones [DES_iOS_20] lo podréis comprar hasta el día 31 de Diciembre al precio de 20 €.

lunes, 12 de noviembre de 2012

iOS inter-app communication methods: URL schemes

La mayoría de desarrolladores iOS saben que Apple confina las apps de terceros en sus sandboxes como medida de seguridad y conocen cuáles son los métodos de comunicación entre procesos, más conocido como IPC (Inter Process Communication) o también Inter-App Communication. Este mecanismo se basa en el manejo de esquemas URL personalizados (Custom URL Schemes). El primer paso es registrar el esquema URL deseado en el fichero Info.plist, tal y como se muestra en la siguiente captura de un ejercicio de ejemplo:

Figura 1: Registrando el esquema URL deseado para una app

Una vez hecho esto, hay que declarar el método application:handleOpenURL, para poder manejar las peticiones URL, tal y como se muestra en el siguiente ejemplo de código:

Figura 2: Ejemplo de código para manejar peticiones URL

Este método es el encargado de recoger las peticiones URL, que cumplan con el esquema declarado en el fichero Info.plist. Es decir, si nos encontramos en Safari, y se escribe la siguiente petición URL, tal y como se aprecia en la siguientes capturas, se pasarían datos a la aplicación, que tenga declarado el esquema URL “i64URL”.

Figura 3: Escribiendo una petición URL en Safari

Y, acorde al ejemplo de código mostrado, en el que se presenta una alerta con los datos recibidos en la petición URL, se presenta la captura de lo que ocurre:

Figura 4: App recibiendo datos a través de una petición URL

Hasta aquí todo bien. Pero hay que tener en cuenta varias cosillas en cuanto a seguridad. La primera es, que este método va a ser "deprecado" en cualquier momento, con lo que desde ya conviene utilizar el siguiente método:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
La ventaja de utilizar este método es que permite validar la aplicación de origen que instanció la petición URL. Además se podría especificar, que sólo determinadas apps puedan invocar a nuestra app. A continuación, se presenta un ejemplo, en el que se autoriza sólo a Safari:

Figura 5: Ejemplo de código autorizando a Safari para realizar peticiones URL a nuestra app

Otro concepto básico en cuanto a seguridad sería aplicar unos buenos filtros de validación de los datos recibidos a través de la petición URL, antes de que ésta sea procesada. En el código de ejemplo, se muestra un filtro por longitud de la petición - extraído del ejemplo LaunchMe de la sección SampleCode de Apple Developer -, pero evidentemente habrá que aplicar una expresión regular o un filtro personalizado según la criticidad de los datos pasados, o según aplicación. Hay muchas aplicaciones que utilizan este sistema, como por ejemplo Credit Card Terminal:

Figura 6: Web de Innerfence presentando su app Credit Card Terminal

La compañía declara, que por temas de seguridad, utiliza APIs licenciadas por el MIT, que seguramente hagan las cosas bien aunque, como siempre, habría que hacer una auditoría de la app, debido a la criticidad de sus datos. Un ejemplo de de petición URL de esta app:

Figura 7: Petición URL de la app de Innerfence

Innerfence tiene publicada la API para que los desarrolladores puedan integrar Credit Card Terminal en sus apps. Si se descarga, se puede ver el código, y por ejemplo, como aplican sus expresiones regulares:

Figura 8: Expresiones regulares para filtrar datos recibidos en peticiones de URL

Por último cabe comentar un detalle, no de seguridad, sino en cuanto a usabilidad, y que comenta Innerfence en su blog. Es habitual, encontrar muchas apps que utilizan el sistema de esquemas URL, y en la mayoría de los casos, cuando desde una aplicación se lanza otra, el usuario se queda “aislado” en la otra aplicación, teniendo esto un pequeño impacto negativo, en la experiencia de usuario.

Lo ideal es que cuando una app lance a otra, una vez se haya terminado la tarea, desde la app destino, se pueda volver a la app inicial, y en el punto en que el usuario se encontraba. Para ello, Innerfence envía en la petición URL, una URL de retorno - tal como se aprecia en la figura 7 -, indicando con un parámetro, en este caso llamado record_id, a que punto de la app debe regresar. Dicha información, puede ser utilizada por la app destino, para poder realizar una nueva petición URL a la app inicial, y que le proporciona al usuario un plus en su experiencia con la app. A continuación, la petición URL, que haría la app destino, para regresar a la app origen:

Figura 9: Petición URL para volver a la app origen

Como conclusión, se va a recapitular los puntos principales de los URL schemes:
- Hay que tener mucho cuidado al utilizarlos. No siendo conveniente utilizarlos para pasar datos sensibles o críticos, ni contraseñas - ya que para eso hay otros métodos, como el keychain -.
- No deben utilizarse para realizar cambios en las configuraciones.
Hay que utilizar el método no deprecado, que además permite validar el origen de las invocaciones.
- Es muy importante realizar una validación exhaustiva, de los datos recibidos a través de las peticiones URL, antes de que estos sean procesados.
- Tener cuidado a la hora de declarar el esquema URL, ya que si es igual al de otra app, el comportamiento es impredecible.
Si deseas más información, puedes leer el libro de Desarrollo de aplicaciones iOS para iPhone & iPad, consultar la Apple URL Scheme Reference, o la siguiente Wiki. Si quieres aprender a programar dispositivos iOS en la web de Informática64 publicaremos las próximas convocatorias del Curso de Desarrollo de aplicaciones para iOS.

martes, 2 de octubre de 2012

Curso Avanzado de Desarrollo de aplicaciones iOS para iPhone & iPad. Del 15 al 19 de Octubre en Informática64.

Para los desarrolladores que tengáis cierta base de desarrollo de aplicaciones, o alguna noción en iOS, y deseis aprender a desarrollar aplicaciones para iPhone & iPad, durante la semana del 15 al 19 de Octubre, en horario de 09:00 a 14:00 horas, tendrá lugar el Curso Avanzado de Desarrollo en iOS, en las oficinas de Informática64 en Móstoles. El profesor será Juan Miguel Aguayo, autor del libro “Desarrollo de aplicaciones iOS `para iPhone y iPad: Essentials”. La descripción detallada de todos los contenidos que se verán en este curso, es la siguiente:

Curso Avanzado de Desarrollo de Aplicaciones iOS para iPhone y iPad

Objetivos

El objetivo del curso es proporcionar a los alumnos, que ya tienen cierta base en Objective-C, los conocimientos necesarios para cubrir las principales necesidades de las aplicaciones reales. Los alumnos estudiarán cómo persistir datos de diversas formas (Ficheros, Core Data), cómo se crean y se configuran las Preferencias de Usuario, cómo controlar o manejar Eventos (Remotos, Multitouch, etcétera), cómo trabajar con Mapas y Geolocalización, cómo realizar Conexiones Cliente-Servidor y en definitiva aprender con ejemplos de código para cubrir las necesidades principales de las aplicaciones reales. Además el alumno aprenderá a utilizar la documentación oficial que existe en el propio entorno de trabajo, se proporciona una lista de recursos para el desarrollador (pdfs, vídeos , podcast, portales iOS, etcétera) y se presentan alternativas a la programación nativa con Objective-C.

Audiencia

Desarrolladores de otras plataformas móviles, desarrolladores con cierta base en Objective-C, y en general cualquiera interesado en aprender a trabajar con el SDK de iOS, eso sí, preferiblemente con cierta experiencia en programación, y mejor si es OOP.

Requisitos

El curso es de nivel avanzado. Por lo que se recomienda haber asistido al Curso Básico de Desarrollo iOS o tener ciertas nociones cobre desarrollo en iOS, o en su defecto, alguna experiencia previa en programación orientada a objetos. No es imprescindible disponer de dispositivos iOS para la realización del curso, ni de nociones de OS X.

Temario

1. Preferencias de usuario.
  • Tipos de preferencias.
  • Salvando/recuperando los valores.
  • Valores por defecto.
2. Eventos.
  • Conceptos.
  • Manejadores.
  • Notificación.
  • Multitouch y tipos de gestos.
  • Eventos de movimientos y orientación.
  • Eventos remotos.
3. Posicionamiento y mapas.
  • Core Location framework.
  • Requisitos.
  • Servicios de localización.
  • Parámetros de alcance y precisión.
  • Iniciar y recibir localización.
  • MapKit Framework.
  • MapView, anotaciones y overlays.
4. Multitasking.
  • Introducción.
  • Disponibilidad.
  • Background.
  • Transición entre estados.
5. Persistencia de datos.
  • Core Data y SQLite.
  • Managed Object Context.
  • Data Model.
  • Atributos.
  • Guardar y recuperar objetos.
  • Persistencia en fichero, plists.
  • Preferencias de usuario.
6. Aplicaciones Cliente-Servidor.
  • Parseo y serialización XML.
  • JSON Framework.
  • Sockets.
  • NSURLConnection.
  • Frameworks CS de terceros.
7. Recursos para el desarrollador.
  • iPhone Dev Center.
  • Apple Mailing lists.
  • Twitter, LinkedIN,…
  • iTunes y los podcast.
  • User groups.
  • Libros y ebooks.
8. Alternativas a la programación en Xcode y Objective-C.

Si quieres más información del proceso de registro, tienes toda la información que necesitas en: Curso Avanzado de Desarrollo de Aplicaciones iOS.

sábado, 22 de septiembre de 2012

Curso: Desarrollo de aplicaciones iOS para iPhone & iPad. Del 1 al 5 de Octubre en Informática64 (Móstoles - Madrid)

Para todos los que queráis aprender a programar aplicaciones para iPhone & iPad, durante la semana del 1 al 5 de Octubre, en horario de mañana de  09:00 a 14:00 horas, tendrá lugar el Curso de Desarrollo de Aplicaciones iOS para iPhone & iPad, en las oficinas de Informática64 en Móstoles. El profesor será Juan Miguel Aguayo, autor del libro “Desarrollo de aplicaciones iOS para iPhone y iPad: Essentials” que cubre gran parte de los contenidos del curso. La descripción detallada de todos los contenidos que se verán en ese curso es la siguiente:

Curso de Desarrollo de Aplicaciones iOS para iPhone & iPad

Descripción

Los smartphones y los dispositivos móviles están en auge, y están revolucionando tanto en el mundo corporativo, como a nivel de usuario particular, la manera de comunicarse, de compartir, de acceder a recursos, de trabajar, de jugar.

Es innegable el crecimiento exponencial que han experimentado las tecnologías móviles en los últimos años, y en concreto los dispositivos iOS. La mayoría de empresas, pymes o multinacionales, desean tener su app en la App Store, y superar la barrera de visibilidad, ya sea como canal de distribución, como posicionamiento, integración con redes sociales, o simplemente por aprovechar el alto ROI de las apps móviles.

Si desea convertirse en desarrollador iOS, realizar apps corporativas, o las suyas propias, este curso le proporcionará una visión global e introductoria a la programación en dispositivos iPhone/iPad, y le permitirá comenzar a desarrollar apps inmediatamente.

El curso de desarrollo básico de aplicaciones en iOS, tiene un enfoque eminentemente práctico, con lo que los alumnos estarán la mayor parte del tiempo, enfrentándose a ejercicios y problemas a resolver en el entorno de desarrollo Xcode, con lo que la carga teórica queda en un 30%, y la parte práctica en un 70%.

Objetivos

El objetivo del curso es proporcionar a los alumnos, una base estable de programación con el SDK de iOS. Al finalizar la acción formativa, se estará en condiciones de comenzar a desarrollar apps para iPhone/iPad/iPod Touch.

A lo largo del curso se aprenderá a manejar el kit completo de herramientas de desarrollo que proporciona Apple. El IDE Xcode, el constructor de interfaces gráficas Interface Builder, a utilizar el iPhone/iPad Simulator, medir rendimiento con Instruments, etc. Los alumnos aprenderán también las bases del lenguaje Objective-C, repasando conceptos de programación orientada a objetos (OOP).

Los alumnos estudiarán la arquitectura iOS, los paradigmas de diseño (MVC, delegación, gestión de memoria manual y automática o ARC, target-action y outlets), aprenderán a utilizar las clases de los frameworks de Cocoa Touch, a construir interfaces gráficas utilizando las principales vistas y contenedores del framework UIKit, ya sea de manera programática o utilizando StoryBoards, y a conectar objetos con dichas interfaces. Además el alumno aprenderá a utilizar la documentación oficial que existe en el propio entorno de trabajo, y se proporciona una lista de recursos para el desarrollador (pdfs, videos , podcast, portales iOS, etc.).

Audiencia

Desarrolladores de otras plataformas móviles, desarrolladores que deseen introducirse en el mundo de los dispositivos móviles, y en general cualquiera interesado en aprender a trabajar con el SDK de iOS, eso sí, preferiblemente con cierta experiencia en programación, y si es programación orientada a objetos, mejor aún.

Temario

1. Introducción.
  • Mac OS X, Cocoa y iPhone.
  • Dispositivos iPhone, iPad y iPod.
  • Tipos de aplicaciones: nativas y aplicaciones web.
2. Xcode.
  • Xcode IDE.
  • Interface Builder.
  • Simulador iPhone/iPad.
  • Instruments.
3. Introducción a Objective-C.
  • Características generales.
  • Tipos de datos. Envío de mensajes.
  • Clases, interfaz, implementación.
  • Categorías y extensión de clases.
  • Getters y setters.

  • Propiedades.

  • Protocolos.
  • Enumeración rápida.
4. Paradigmas de programación en iOS.
  • Modelo MVC.
  • Delegation.
  • Target-Action.
  • Memory management (MRC y ARC).
5. Cocoa Touch y sus frameworks.
  • Cocoa Touch.
  • Foundation Framework.
  • UIKit Framework.
6. Creación de interfaces gráficas.
  • Tipos de interfaces o view controllers y contenedores.
  • XIB, NIB, Outlets y Actions.
  • IB y conexiones.
  • StroyBoards.
Si quieres más información del registros, tienes los datos completos en: Curso de Desarrollo de Aplicaciones iOS.

martes, 26 de junio de 2012

Seminarios de desarrollo de aplicaciones iOS

La semana que viene, desde el lunes 2 de Julio hasta el viernes 7 de Julio en Madrid, hay uno cada día de seis horas de duración, en horario de 08:30 a 14:30 horas. Comenzarán con una primera toma de contacto con XCodeObjective-C y los paradigmas de diseño en iOS, continuando con la creación de interfaces gráficas, con el estudio de eventos, persistencia, para finalizar con los conceptos sobre cómo crear aplicaciones cliente-servidor, realizar conexiones a servicios web, servlets, etcétera. 

El profesor de todos estos seminarios será Juan Miguel Aguayo, autor del libro Desarrollo de Aplicaciones iOS para iPhone&iPad: Essentials, así que, si sueñas con tener tu propia app en la AppStore, o tienes buenas ideas y quieres implementarlas en una de las disciplinas de mayor proyección profesional, entonces no dejes pasar esta oportunidad. Tienes la información de cómo registrarse a cada uno de estos eventos en la web de Próximos Eventos de Informática64A continuación os dejamos un resumen de cada uno de ellos:

Objective-C e iOS

En este primer seminario se aprende todo lo necesario para aquellos que se enfrentan por primera vez al mundo iOS, y desean desarrollar aplicaciones en él. Desde como manejar el entorno de desarrollo de Apple, pasando por la toma de contacto con el lenguaje Objective-C (imprescindible para los profanos en la materia), patrones o paradigmas de diseño en iOS, las diversas plantillas de XCode, y finalizando con el desarrollo de aplicaciones que muestren de manera didáctica como implementar las primeras aplicaciones.

Creación de interfaces gráficas

En este seminario se aprenderá a implementar interfaces gráficas, utilizando los distintos controladores que iOS ofrece. Se estudian los las diversas vistas existentes en el SDK, los diferentes contenedores (de vista, de navegación, TapBar, vista web, etcétera) y cómo combinarlos para crear aplicaciones reales y complejas.

Persistencia de datos

Aquí se verá de manera práctica cómo almacenar datos de manera persistente en ficheros, cómo utilizar el framework de alto nivel para persistir datos (CoreData) y cómo utilizar la librería SQLite a bajo nivel. Por último se presenta cómo utilizar el sistema de preferencias de usuario NSUserDefaults, que permite almacenar pequeños conjuntos de valores, preferencias, configuraciones, etcétera, y que estos sean manejados desde el menú general de configuraciones del dispositivo, es decir, fuera de la aplicación en cuestión.

Gestión de Eventos

En este seminario se presentan los conceptos y teoría relacionada con eventos y los diferentes tipos de eventos que existen en iOS. Se aprende cómo manejarlos, gestionarlos, programarlos, etcétera. Se realizará la implementación de aplicaciones para mostrar de manera didáctica cómo implementar eventos multi-touch, eventos de movimiento y eventos de control remoto.

Aplicaciones Cliente/Servidor 

En este seminario se aprende a implementar aplicaciones cliente-servidor, es decir, cómo utilizar las herramientas que brinda iOS para comunicarse con un servidor. Además se estudia como realizar parseo de ficheros XML y JSON, imprescindible para una comunicación ligera y eficiente con un backend server. Se realizará la implementación de un cliente que consuma feeds XML y aplicaciones que conecten con servicios web. 

miércoles, 20 de junio de 2012

Curso Avanzado de Programación para iOS


La semana que viene, del 25 al 29 de Junio, en la Universidad Europea de Madrid, y con horario de 09:00 a 14:00 horas, se impartirá una formación en la que los asistentes serán capaces de utilizar las herramientas del iPhone SDK, el modelo MVC, la gestión persistente de datos con SQLite, el trabajo con Mapas y posicionamiento GPS, o las arquitecturas Cliente/Servidor usando JSON, XML, etc, además de moverse por la documentación, obtener ayuda y recursos disponibles para el programador desde la propia Apple.

Todos los asistentes recibirán el libro de Desarrollo de Aplicaciones iOS para iPhone & iPad escrito por Juan Miguel Aguayo, que será el instructor de este curso. Además, los estudiantes de la Universidad Europea de Madrid dispondrán de un descuento en la matricula del curso.

Tiens toda la información de registro y el temario completo del curso en formato PDF en la siguiente URL: Curso Avanzado de Desarrollo iOS (25 al 29 de Junio).

jueves, 31 de mayo de 2012

Formaciones sobre dispositivos móviles en Junio

Durante el mes de Junio tenemos un calendario de acciones dedicadas en exclusividad a dispositivos móviles, que tocarán todas las plataformas. Aquí te dejamos la lista de acciones y su lugar de ejecución.

Una semana para Android en Madrid

En las instalaciones de Informática 64, en horario de mañana de 8:30 a 14:30h se van a realizar cuatro seminarios dedicados a Android, repartidos en cuatro días de la siguiente forma.


El Curso de Especialización en A Coruña.

En la Universidad de A Coruña, con la colaboración de Informática 64, y la participación de Microsoft, SmartAccess, Vulnex, ESET, Telefónica y S21Sec se organiza los próximos días 20, 21 y 22 de Junio el Curso de Especialización en Dispositivos Móviles, en el que se tocarán las tecnologías iOS, Android y Windows Phone, además de temas relativos a la arquitectura del sistema, la seguridad de las aplicaciones o el análisis forense de dispositivos.


En ésta ocasión dicho curso cuenta con ponentes como Chema Alonso de la empresa Informática 64, Rames Sarwat, Director General de la empresa SmartAccess, es experto en seguridad de sistemas de información y en firma digital, Juan Miguel Aguayo, autor del libro “Desarrollode aplicaciones iOS para iPhone & iPad: Essentials”, David Barroso de Telefónica, Mikel Gastesi , especialista en e-crime de S21Sec o Simón Roses, especialista en seguridad móvil de la empresa Vulnex, entre otros.

Todos los asistentes recibirán como material el libro de Taddong "Hacking y Seguridad de comunicaciones móviles" y el de "Desarrollo de aplicaciones iOS para iPhone & iPad". Hay un periodo de registro super reducido que acaba hoy, y además se cuenta con descuento especial para los estudiantes de la universidad. Toda la información en al web del Curso de Especialización en Dispositivos Móviles.

Curso de Desarrollo de Aplicaciones iOS Avanzado en Madrid

Por último del lunes 25 de junio al viernes 29 de junio, se dará uno curso dedicado al Desarrollo de aplicaciones avanzadas en iPhone/iPad, en el cuál el alumno será capaz de utilizar las herramientas del iPhone SDK, desarrollar aplicaciones avanzadas en Objective-C, usar el modelo MVC, y muchas más de las funcionalidades del SDK,.

Dicho curso tendrá lugar en las instalaciones del Campus de Villaviciosa de Odón (Madrid) con un descuento excepcional si eres alumno de la UEM. Para más información, puedes contactar con informática 64 en el número de teléfono 91 665 99 98, o si lo prefieres a través de nuestro e-mail registro@informática64.com.

domingo, 15 de abril de 2012

Libro de Desarrollo de aplicaciones iOS para iPhone & iPad: Essentials. 300 páginas de explicaciones, código y prácticas para programar en iPhone & iPad desde ya.

Hoy día es innegable el imparable crecimiento que han tenido las tecnologías de los dispositivos móviles en los últimos años. El número de smartphones, tablets, o dispositivos de ocio y comunicación han aumentado de manera exponencial. Esto ha sido así, hasta tal punto que actualmente estos dispositivos se han posicionado como tecnologías de máxima prioridad para muchas empresas. Incluso algunas han decidido dedicarse en exclusiva al desarrollo de aplicaciones móviles para llenar este productivo mercado.

Dentro de todas estas nuevas tecnologías, Apple ha sido pionero en muchas de ellas y en una gran mayoría de los servicios asociados a estos dispositivos, consiguiendo con esto que su sistema operativo móvil, es decir iOS, sea uno de los dominantes en este mundo.


Con este Libro de Desarrollo de Aplicaciones iOS para iPhone & iPad: Essentials se pueden adquirir los conocimientos necesarios para desarrollar aplicaciones en iOS, guiando al lector para que aprenda a utilizar las herramientas y técnicas básicas para iniciarse en el mundo iOS. El libro trata de presentar los temas de una manera más o menos práctica, en donde se presentan unos conceptos teóricos, y posteriormente se presenta un proyecto o ejercicio práctico, guiado paso a paso, de manera que el lector pueda ir implementando el ejercicio por sí mismo.

El libro es un manual tanto para aquellos que se inician, como para los que ya tienen algo de experiencia. El libro pretende sentar unas bases, de manera que al finalizar la lectura, el lector pueda convertirse en desarrollador iOS y enfrentarse a proyectos de este sistema operativo por sí mismo.

Dentro del libro podrás encontrar temas como la programación en Objective-C, el diseño de interfaces con COCOA, la persistencia de datos, el manejo de datos en XML, la creación e aplicaciones cliente/servidor o el trabajo con geolocalización y mapas. El libro tiene más de 300 páginas con ejemplos de código, prácticas y explicaciones, tiene un coste de 24 € y puedes comprarlo online en: Libro desarrollo de aplicaciones iOS para iPhone & iPad: Essentials

Un libro más que recomendable para todos los que quieran adentrarse dentro del presente tecnológico del desarrollo de aplicaciones para iPad & iPhone que viene de la mano de nuestro compañero Juan Miguel Aguayo, que además impartirá esta semana un Curso de Análisis Forense de Dispositivos Móviles al que aún puedes apuntarte. 

miércoles, 25 de enero de 2012

Curso Programación de aplicaciones iPhone/iPad @Madrid

La semana que viene en Madrid, en las oficinas de Madrid on rails, tendrá lugar la 2ª Edición del Curso de desarrollo avanzado de aplicaciones iOS para iPhone e iPad. La formación dará comienzo el próximo día 30 de Enero y se impartirá durante toda la semana de lunes a viernes en horario de mañana de 09:30 a 14:30.

El coste de asistir a cada  curso es de 350 € + IVA y es necesario hacer un registro previo.  Reserva tu plaza ya y aprende a desarrollar en las tecnologías más emergentes del siglo XXI. Los contenidos de ese curso son:

Preferencias de usuario
- Tipos de preferencias
- Salvando/recuperando los valores
- Valores por defecto

Eventos
- Conceptos
- Manejadores
- Notificación
- Utilidades
- Multitouch y tipos de gestos
- Eventos de movimiento y orientación

Posicionamiento y mapas
- Location framework
- Requisitos
- Servicios de localización
- Parámetros de alcance y precisión
- Iniciar y recibir localización
- MapKit
- MapView, anotaciones y overlays

Multitasking
- Introducción
- Disponibilidad
- Background
- Transición entre estados

Persistencia de datos (SQLite)
- Core Data
- Managed Obejct Context
- Data model
- Atributos
- Guardar y recuperar objetos

Aplicaciones cliente-servidor
- Parseo y serialización XML
- JSON Framework
- Sockets
- NSURLConnection
- Frameworks cliente-servidor de terceros
- Buenas prácticas (caching, etc...)

Recursos para el programador
 - iPhone Dev Center
- Apple mailing lists
- Twitter, LinkedIn...
- iTunes y los podcasts
- User groups
- Libros y libros electrónicos

Alternativas a la programación en Xcode y Objective-C

lunes, 9 de enero de 2012

Cursos para programar aplicaciones para iPhone e iPad

Durante este mes de Enero va a tener lugar un ciclo de 50 horas de formación para aprender a programar aplicaciones en iOS para iPhone y para iPad. Las materias se han dividido en dos cursos de 25 horas cada uno que se impartirán en Madrid, en las oficinas de Madrid On Rails.

Las 25 primeras horas están dentro del Curso de desarrollo inicial de aplicaciones iOS para iPhone e iPad. Comenzará el día 16 de Enero y se impartirá de lunes a viernes en horario de 09:30 a 14:30. Los contenidos de ese curso son:


Introducción
   - Mac OS X, Cocoa e iPhone
   - Dispositivos iPhone, iPad e iPod
   - Tipos de aplicaciones: nativas y aplicaciones web
   - Xcode
Introducción a Objective-C
   - Características generales
   - Tipos de datos
   - Envío de mensajes
   - Clases, interfaz, implementación
   - Categorías y extensión de clases Getters y setters
   - Propiedades
   - Protocolos
   - Enumeración rápida
Paradigmas de programación en iOS
   - Modelo MVC
   - Delegation
   - Target-Action
   - Memory management
   - Cocoa Touch y los frameworks UFoundation y UIKit
Cocoa Touch
   - UFoundation Framework
   - UIKit Framework
Creación de interfaces gráficas
   - Tipos de interfaces o view controllers
   - XIB, NIB, Outlets y Actions
   - IB y conexiones

Las 25 sigueintes horas están enmarcadas dentro del Curso de desarrollo avanzaddo de aplicaciones iOS para iPhone e iPad. Comenzará el día 30 de Enero y se impartirá de lunes a viernes en horario de 09:30 a 14:30. Los contenidos de ese curso son:

Preferencias de usuario
- Tipos de preferencias
- Salvando/recuperando los valores
- Valores por defecto

Eventos
- Conceptos
- Manejadores
- Notificación
- Utilidades
- Multitouch y tipos de gestos
- Eventos de movimiento y orientación

Posicionamiento y mapas
- Location framework
- Requisitos
- Servicios de localización
- Parámetros de alcance y precisión
- Iniciar y recibir localización
- MapKit
- MapView, anotaciones y overlays

Multitasking
- Introducción
- Disponibilidad
- Background
- Transición entre estados

Persistencia de datos (SQLite)
- Core Data
- Managed Obejct Context
- Data model
- Atributos
- Guardar y recuperar objetos

Aplicaciones cliente-servidor
- Parseo y serialización XML
- JSON Framework
- Sockets
- NSURLConnection
- Frameworks cliente-servidor de terceros
- Buenas prácticas (caching, etc...)

Recursos para el programador
 - iPhone Dev Center
- Apple mailing lists
- Twitter, LinkedIn...
- iTunes y los podcasts
- User groups
- Libros y libros electrónicos

Alternativas a la programación en Xcode y Objective-C

El coste de asistir a cada  curso es de 350 € + IVA y es necesario hacer un registro previo. Tienes más información en las siguientes URLs:

- Curso de desarrollo inicial de aplicaciones iOS para iPhone e iPad
- Curso de desarrollo avanzado de aplicaciones iOS para iPhone e iPad

Reserva tu plaza ya y aprende a desarrollar en las tecnologías más emergentes del siglo XXI.

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares