CHICIO CODING

Android Studio vs Xcode vs AppCode: una breve comparación sobre la velocidad de codificación

16 Ene 2018 – 4 min read

En este post compararé la velocidad de codificación que es posible alcanzar con Android Studio, Xcode, y algunos IDEs de JetBrains en términos de creación y refactorización de código.

IDE, Integrated Development Environment, son las cajas de herramientas para desarrolladores de software. Cuando empecé a trabajar en el grupo lastminute.com mi conocimiento de la plataforma Android era muy limitado. Pero… el grupo lastminute.com es una empresa de desarrollo de software ágil y una de las técnicas que utilizamos durante nuestro flujo de trabajo de desarrollo es la programación en parejas: dos desarrolladores trabajan en la misma función en la misma estación de trabajo.Como se informa en Wikipedia, una de las principales ventajas de la programación en parejas es el intercambio de conocimientos:

El conocimiento se comparte constantemente entre los programadores en parejas, ya sea en la industria o en un aula, muchas fuentes sugieren que los estudiantes muestran una mayor confianza cuando programan en parejas, y muchos aprenden ya sea de consejos sobre las reglas del lenguaje de programación a la habilidad de diseño en general. En el «emparejamiento promiscuo», cada programador se comunica y trabaja con todos los demás programadores del equipo en lugar de emparejarse sólo con un compañero, lo que hace que el conocimiento del sistema se extienda a todo el equipo. La programación en parejas permite a los programadores examinar el código de su compañero y proporcionarle retroalimentación, lo cual es necesario para aumentar su propia capacidad de desarrollar mecanismos de seguimiento para sus propias actividades de aprendizaje.

Por eso empecé a trabajar con mi colega Francesco Bonfadelli, un desarrollador senior de Android, iOS y Backend. Durante nuestras sesiones de programación en pareja aprendí mucho sobre el desarrollo de aplicaciones móviles para la plataforma Android. Una de las cosas que aprendí en los primeros días es la diferencia entre los IDEs oficiales: Android Studio y Xcode. Después de ver la velocidad de codificación que Francesco fue capaz de alcanzar durante una sesión de codificación de Android, y lo mucho más lento que es hacer las mismas cosas en Xcode para iOS, me di cuenta de lo mucho más avanzado que es Android Studio con su conjunto de características de refactorización en comparación con Xcode.
En este post analizaré brevemente algunos IDEs comúnmente utilizados para el desarrollo de aplicaciones móviles centrándome en la velocidad de codificación que es posible alcanzar al utilizarlos y os explicaré por qué, en el momento de escribir esto, empecé a preferir la familia de IDEs de JetBrains (no sólo para el desarrollo de aplicaciones móviles :bowtie:).

Xcode

Siempre me gustó Xcode. Empecé a usarlo hace 8 años y me sigue acompañando en mi trabajo diario. Se abre en pocos segundos y puedes empezar a codificar muy rápidamente. Pero …. ¿qué pasa cuando el código de tu aplicación empieza a aumentar en términos de complejidad y necesitas hacer una simple operación de refactorización? ¿Te ayuda de alguna manera cuando necesitas crear una nueva clase/propiedad? ¿Le ayuda cuando necesita navegar en su código y necesita saltar rápidamente de una clase a otra? Bueno, para ser honesto no te ayuda mucho. Incluso un simple cambio de nombre podría convertirse en una operación dolorosa, especialmente si tiene un proyecto con partes mixtas Swift/Objective-C. Todo debe hacerse manualmente. Considere por ejemplo esta lista de operaciones mixtas de creación/refactorización de código:

  • crear una nueva clase
  • instanciarla y mantenerla como variable local
  • añadir un método a la clase anterior
  • añadir un parámetro al método previamente creado
  • extraer la variable local como propiedad del controlador en el que la he creado

En el siguiente vídeo intentaré hacer estas operaciones en Xcode. En el momento de escribir esto la versión de Xcode disponible es la 9.2.

Más de 2 minutos para implementar todo lo de la lista anterior.Realmente lento, ¿no? :temeroso:

Android Studio

Antes del grupo lastminute.com, había utilizado Android Studio sólo unas pocas veces para algunas aplicaciones Android muy simples. Entonces empecé a trabajar con Francesco y me introdujo en el poder de JetBrains IDEs. ¡Este IDE te da la capacidad de navegar rápidamente en tu código fuente, crear y modificar clases, y te permite hacer un montón de otras operaciones de refactorización sin dejar el teclado! ¡¡Básicamente puedes escribir código y olvidarte del ratón!! :open_mouth:. La lista de atajos de teclado que puedes utilizar en tu flujo de desarrollo es interminable. Puedes encontrar la lista completa aquí. Vamos a intentar hacer exactamente las mismas operaciones que hice antes con Xcode, y además añado un renombramiento de la clase creada al final de toda la operación anterior. En el momento de escribir esto la versión disponible de Android Studio es la 3.0.1.

¡Sólo 50 segundos y he hecho todo (y eso que no estaba apretando mucho el teclado…:stuck_out_tongue_winking_eye:).Como veis, Android Studio te da la posibilidad de escribir código a la velocidad de la luz!!! :flushed:.

AppCode

Como podéis imaginar, después de trabajar unas cuantas horas con Android Studio, empecé a preguntarme si existe un IDE que me permita configurar el mismo estilo de escritura de código y flujo de trabajo. Aquí otro colega con el que trabajé, Tommaso Resti, un desarrollador senior de iOS y Android, me mostró AppCode por primera vez. Este es otro IDE de JetBrains para el desarrollo de iOS. Te permite mejorar tu velocidad de desarrollo al permitirte utilizar algunas de las herramientas de refactorización que puedes encontrar en Android Studio. Sin embargo no todo es paz y tranquilidad en este caso. Algunas de las herramientas de refactorización no están disponibles para Swift y seguirás necesitando Xcode para trabajar en Xib y Storyboard (el equipo de JetBrains desarrolló un plugin para el constructor de interfaces, pero ha sido descontinuado). De todos modos, si empiezas a acostumbrarte al flujo de trabajo de escritura de código de Android Studio, te sentirás como en casa con AppCode :relajado:.

Pensamientos finales

Android Studio y AppCode están basados en IntelliJ IDEA, el famoso IDE de Java de JetBrains. Pero eso es la mitad de la historia: La familia de IDE de JetBrains es realmente grande. Puedes encontrar un IDE para cada uno de tus lenguajes favoritos:

  • CLion, para C y C++
  • PhpStorm
  • PyCharm
  • RubyMine para Ruby
  • GoLand para GO
  • Rider para C#

Así que no te preocupes: si quieres empezar a mejorar tu velocidad de codificación probablemente haya un IDE para tu lenguaje favorito. Xcode siempre tendrá un lugar especial en mi corazón. Seguiré utilizándolo en mi trabajo diario como desarrollador móvil. Pero… la velocidad de codificación que gané con los IDEs de JetBrains no podía ser ignorada :smiling_imp:. Por eso empecé a preferirlos :corazón:.