Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS
Code

iOS Desde Cero Con Swift: Comprendiendo el Ecosistema iOS

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment

Spanish (Español) translation by Nadia Castelli (you can also view the original English article)

Antes de que comiences a programar aplicaciones iOS, es crucial que primero comprendas el ecosistema. Este artículo examina los fundamentos de los sistemas operativos Apple, los dispositivos disponibles, y el App Store de Apple.

1. ¿Por Qué iOS?

Antes de la llegada de Android y Windows Phone, Apple era el jugador dominante en el territorio móvil, solamente rivalizado por Nokia y BlackBerry. Con el surgimiento de las nuevas plataformas móviles, se ha vuelto más y más importante preguntarte qué plataforma se adapta mejor a tus necesidades.

Aunque Apple lleva ventaja desde 2007, Android ha sobrepasado a iOS en participación en el mercado. ¿Qué significa eso para iOS? ¿Es aún una plataforma para la cual vale la pena desarrollar? Con toda seguridad, sí. Hay muchas y grandes razones para comenzar a desarrollar iOS hoy en día.

  • Fuertes Incentivos Financieros: La gente gasta más dinero en el App Store de Apple que en cualquier otra plataforma móvil. A pesar de que Android se ha convertido en el jugador dominante en el espacio móvil, la plataforma iOS sigue siendo más lucrativa para los desarrolladores.
  • Terreno Acotado: A través de los años, el App Store de Apple ha recibido muchas críticas de desarrolladores y clientes, particularmente el proceso de revisión de Apple. Está claro, sin embargo que la política de Apple ha conducido a un App Store cuya calidad de aplicaciones es más alta que en cualquier otra tienda móvil. Además, los clientes tienden a sentirse mucho más seguros al comprar aplicaciones en el App Store que en cualquier otra plataforma más abierta, como Google Play.
  • Comunidad y Soporte: La comunidad de desarrolladores iOS es una grandiosa comunidad para formar parte. Existe una cantidad casi ilimitada de artículos, tutoriales, y documentación para ayudarte cuando te encuentres estancado en un problema. Además, la documentación de Apple acerca del SDK de iOS es magnífica, sin mencionar los cientos de videos de la WWDC (World Wide Developer Conference) disponibles en el sitio web de desarrolladores Apple.

La gente suele olvidarse, o no sabe, que Android y iOS son plataformas muy diferentes. Aunque ambas plataformas fueron diseñadas para móvil, el ecosistema iOS difiere en muchos aspectos del ecosistema Android.

Desde la perspectiva del desarrollo, la mayoría de la gente parece encontrar más sencillo desarrollar para iOS que para Android. No me malinterpretes, no me estoy refiriendo a la tecnología utilizada por cada plataforma ni a las herramientas disponibles para cada una. Existen dos razones basadas en los fundamentos del abismo entre iOS y Android, fragmentación y tasa de adopción.

Fragmentación

Una de las fortalezas fundamentales de Android es, al mismo tiempo, una de sus debilidades principales. Como la mayoría de ustedes sabe, el sistema operativo Android es un proyecto de código abierto, y como tal, puede ser usado y modificado por cualquiera. Numerosos fabricadores de hardware han visto el potencial de Android, especialmente desde que está respaldado por Google.

Como resultado, Android ganó popularidad rápidamente. El problema es que cada fabricante de hardware modifica Android para satisfacer sus necesidades, y ha emergido una amplia variedad de formatos desde la introducción de Android.

Aunque la participación de Android en el mercado pareciera ser un gran tarro de miel, es muy difícil crear software que corra en cada versión de Android disponible actualmente. Debido a los miles de dispositivos que corren Android, testear el software sobre cada hardware no es una tarea trivial. Como podrás imaginar, el soporte y la compatibilidad se han convertido en un real desafío.

Tasa de Adopción

Tradicionalmente, en muchos países, el mercado inalámbrico está bajo estricto control por parte de las compañías de celulares. Desde el comienzo, Apple supo que debía estar en control de sus dispositivos móviles para proveer la mejor experiencia de usuario posible. El resultado es que los clientes pueden actualizar sus dispositivos iOS a la última versión de iOS el mismo día en que sale al público. Esta es una ventaja mayor de la plataforma iOS, y el resultado es sustancial. Menos de una semana después de la salida de iOS 9, aproximadamente el 50% de los dispositivos iOS se habían actualizado a iOS 9.

Comparémoslo con Android. En Septiembre 2015, sólo el 20% de los usuarios Android habían actualizado sus dispositivos a Lollipop (lanzado en 2014), y menos del 40% habían actualizado a KitKat (lanzado en Octubre de 2013).

La mención de estos números no es motivo para menospreciar la plataforma Android o cualquier otra plataforma móvil. Lo que quiero enfatizar es el impacto que tiene la tasa de adopción el el ecosistema de aplicaciones de estas plataformas.

Cuanto más lentamente los usuarios adoptan una nueva versión de un sistema operativo, más son forzados los desarrolladores a soportar las versiones mas antiguas de dicho sistema operativo. Además, se vuelve menos atrayente la adopción de nuevas tecnologías, que sólo pueden ser utilizadas en una fracción de dispositivos Android.

2. ¿Por Qué Nativa?

Si eres un lector frecuente de Envato Tuts+, entonces habrás leído acerca de frameworks multiplataforma como Xamarin, React Native, PhoneGap, Apache Cordova, y Titanium Mobile. Te estarás preguntando por qué deberías afrontar el problema de aprender Swift u Objective-C cuando puedes crear aplicaciones iOS usando C# o JavaScript. Déjame darte un breve resumen de tus opciones si decides desarrollar aplicaciones para iOS.

Aplicaciones Web

Una aplicación web es tu primera opción, y era, de hecho, la única opción antes de la introducción del SDK nativo de iOS en 2008. La ventaja de las aplicaciones web es que no deben lidiar con el App Store o el proceso de revisión de Apple. ¿Por qué? Una aplicación web es un nombre elegante para un sitio web que actúa y se comporta como una aplicación. Todo lo que necesitas es un navegador, como Safari Móvil o Google Chrome.

Las aplicaciones web poseen ventajas claras. Son multiplataforma por defecto, ya que las aplicaciones corren sobre un navegador. Otra ventaja es la curva de aprendizaje para crear aplicaciones web. Si estás familiarizado con el desarrollo web, entonces estarás listo y funcionando en muy poco tiempo.

Por supuesto, las desventajas de las aplicaciones web no deben ser ignoradas. Una aplicación web tiene acceso limitado a las capacidades de los dispositivos en que corren. Las aplicaciones web móviles son muy poderosas gracias a HTML5 y JavaScript. Sin embargo, existen limitaciones distintivas en términos de lo que pueden hacer. No te permitirán usar las geniales características de iPad y iPhone. Además, las aplicaciones web típicamente requieren una conexión de internet para funcionar, aunque hay excepciones a esta regla.

Tal vez, la desventaja principal de las aplicaciones web sea que, en general, se perciben significativamente más lentas que las aplicaciones nativas. La capacidad de respuesta de las aplicaciones web mejora cada año, pero el retardo heredado del navegador no debe ser pasado por alto o ignorado. La experiencia es diferente. No hay dudas acerca de esto.

Frameworks Móviles Multiplataforma

La promesa de un framework multiplataforma es que los desarrolladores pueden escribir una aplicación que puede ser instalada en múltiples dispositivos móviles a partir de un código único. Esto se logra mediante varios enfoques.

Algunos frameworks, como PhoneGap y Apache Cordova, utilizan el SDK nativo de la plataforma para crear una vista web en donde se integra la aplicación. Como en las aplicaciones web, esto impone limitaciones en términos de funcionalidad. La ventaja principal es que la aplicación se siente como una aplicación nativa en términos de experiencia de usuario, y puede ser distribuida a través de la tienda de la plataforma.

Aunque los frameworks de desarrollo móvil parecieran ser el santo grial del desarrollo móvil, existe un número de aspectos negativos que deben ser considerados. La parte más importante es que tu aplicación depende de un framework de terceros. En otras palabras, el código de tu proyecto depende de la compañía que provee la solución multiplataforma. Si esa compañía desaparece o es lenta a la hora de implementar cambios en el SDK nativo, podrás verte forzado a comenzar de cero. Ese es un riesgo que necesitas considerar.

SDK iOS

Elegir desarrollar con el SDK nativo es la mejor opción si quieres crear aplicaciones que sobresalgan y tomen ventaja de las capacidades del dispositivo. Optar por una aplicación nativa también significa que trabajarás en un entorno de desarrollo robusto y que podrás confiar en las herramientas de desarrollo, utilidades, y soporte de Apple.

3. Ecosistema iOS

Uno de los aspectos más atractivos del ecosistema iOS es su simplicidad. La lista de dispositivos capaces de correr iOS es sorprendentemente corta comparada con Android o Windows Phone. Esto significa que testear aplicaciones iOS es mucho menos engorroso comparado con otras plataformas.

Como mencioné antes, Android ha sobrepasado a iOS en términos de participación en el mercado, pero esta es la única parte de la historia. La plataforma iOS representa más de un tercio del uso web en dispositivos móviles. ¿Qué nos dice esto acerca del territorio móvil? Nos dice que iOS sigue siendo un jugador dominante en el mercado móvil, al menos online, a pesar de que Android tiene mucha más participación en el mercado.

Dispositivos

Esencialmente existen dos familias de dispositivos dentro del ecosistema iOS:

  • la familia de dispositivos iPad
  • la familia de dispositivos iPhone, que también incluye el iPod Touch

Para un panorama completo, recomiendo echarle un vistazo a  esta lista. Las diferencias primarias dentro de la familia de dispositivos iPhone son las capacidades del hardware y el tamaño de la pantalla. Para iPhone y iPod Touch, existen cuatro tamaños de pantalla posibles:

  • 3.5"
  • 4.0"
  • 4.7"
  • 5.5"

Para la familia de dispositivos iPad, hay tres tamaños de pantalla posibles:

  • 7.9"
  • 9.7"
  • 12.9"

La diferencia en tamaño impacta el desarrollo, pero no agrega mucha sobrecarga para la mayoría de las aplicaciones. Retomaré este tema más adelante en el transcurso de esta serie.

En 2012, Apple presentó el iPad Mini y en 2015 la familia iPad se expandió con el iPad Pro. Aún cuando las introducciones del iPad Mini y el iPad Pro tuvieron su efecto en la industria tecnológica, han tenido poco impacto para los desarrolladores iOS.

La pantalla del iPad Mini, por ejemplo, es significativamente más pequeña que la del iPad Air de 9.7", pero su resolución es idéntica a la de los iPad de 9.7". A causa de la pantalla más pequeña del iPad Mini, el tamaño promedio de los dispositivos táctiles es más chico, y esto puede representar un problema para algunas aplicaciones.

iOS

Tradicionalmente, Apple lanza una nueva versión de su sistema operativo cada año. A la fecha, Apple ha lanzado nueve versiones mayores de su sistema operativo móvil, de las cuales la más reciente es iOS 9.

El soporte en dispositivos es un aspecto de iOS al que la gente suele prestarle poca atención. Tomemos como ejemplo al iPhone 4S. El iPhone 4S fue lanzado en 2011 y aún así es capaz de correr iOS 9. No existe plataforma móvil que pueda siquiera acercarse a esto en términos de soporte en dispositivos.

App Store

Una de las razones principales por la cual desarrollar para la plataforma iOS es el increíble éxito del App Store. La venta de software nunca ha sido tan sencilla, gracias al App Store de Apple para iOS y OS X. Con más de un millón de aplicaciones, el App Store para iOS se está tornando un poquito concurrido, pero ten en mente que el número de dispositivos iOS continúa creciendo exponencialmente.

El mercado móvil está en su infancia, y hay aún mucho potencial esperando a ser descubierto. Así como la web en los últimos años de los noventa, el mercado móvil continuará creciendo a gran paso y la cantidad de dinero que genera aumenta con cada nuevo smartphone, reloj inteligente, o tablet vendidos.

4. watchOS y tvOS

En 2015, Apple anunció dos nuevos sistemas operativos, watchOS para Apple Watch y tvOS para Apple TV. Apple ha liberado ambas plataformas a desarrolladores de terceros, trayendo aplicaciones de terceros a tu muñeca y tu sala de estar.

Las herramientas para el desarrollo de watchOS y tvOS son idénticas a aquellas usadas en el desarrollo iOS. Esta es una razón más para elegir el ecosistema iOS. Los sistemas operativos de Apple, OS X, iOS, watchOS, y tvOS, están firmemente integrados y sus posibilidades son virtualmente infinitas.

Conclusión

Ahora tienes una imagen clara del ecosistema iOS, y espero haberte convencido de comenzar a desarrollar iOS. En el próximo artículo, te mostraré cómo comenzar con el SDK nativo, configurando el entorno de desarrollo. Te sorprenderá lo fácil que es.

Si tienes preguntas o comentarios, puedes dejarlos en la sección de comentarios aquí debajo, o contactarme vía Twitter.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.