Requisitos previos para desarrollar aplicaciones móviles para iOS

Requisitos previos para desarrollar aplicaciones móviles para iOS

Antes de aprender a desarrollar, lo primero que debes asegurarte es tener la motivación (externa o interna), debes tener las ganas para empezar a aprender y construir aplicaciones móviles, sin esta motivación rápidamente encontraras problemas y dificultades que veras imposible sobrepasar y no lograrás el objetivo (cada vez que sientas que tu motivación ha disminuido, tomate un tiempo para revisar tus objetivos, no te llegues a saturar de información lo más seguro es que producirá el efecto contrario)

Bueno entonces ademas la motivación necesitaras:

  • Una Mac, (no Windows o Linux) este requisito es uno de los que mayores problemas trae a los que se animan a desarrollar aplicaciones para iOS, las aplicaciones para iOS se desarrollan teniendo como sistema operativo OS X y el iOS SDK por ello necesitas una mac. Muchos intentan aprender y empiezan virtualizando, pero pronto se encuentran con muchos problemas de memoria y lentitud en el proceso, y eso lleva a desmotivarse rapidamente. Si no tienes presupuesto para una macbook, el tener una mac mini es una opción accesible, incluso si compras una usada. (Una hackintosh también es una opción)
  • Una interfaz de desarrollo (IDE), la que recomienda Apple es Xcode y es una buena sugerencia, sin embargo también puedes usar AppCode si te gustan los productos de JetBrains.
  • Tener la documentación en tus Bookmarks, o aprender los shortcuts para acceder a ella rápidamente, siempre es bueno acostumbrarse a consultar la documentación, sobre todo cuando estas aprendiendo.
  • Tener presente que tu vida como programador cambiará, (si ya eres programador quizás tendrás que hacer algunos cambios también para salir de tu zona de confort), la vida de un programador es una vida de constantes problemas que resolver, el resolver problemas en un entorno tan cambiante como la tecnología significa que el programador esta constantemente aprendiendo nuevas cosas. Siempre combatiendo con su propia ignorancia, incluso si es un programador que solamente esta reparando errores en una tecnología familiar, en algunas ocasiones el software que creamos es tan complejo que puede tomar un día entero saber que anda mal. Los programadores profesionales aprender a lidiar con este estrés continuo, hora tras hora, día tras día sin sentirse frustrado. Esa es otra habilidad que te servirá de mucho.

Eso es suficiente para empezar a desarrollar, conforme vayas lidiando con mas problemas, aprenderás a utilizar otras herramientas y necesitaras otro tipo de recursos para publicar tus aplicaciones.

Anuncios

C y su relación con Objective-C

C y su relación con Objective-C

Cuando se ejecuta un programa, un archivo es copiado del sistema de archivos a la memoría RAM, y las instrucciones de ese archivo son ejecutadas por la computadora. Esas instrucciones no son entendible para los humanos, por ello es que los humanos deben usar un lenguaje de programación, para poder escribir programas.

El lenguaje de programación de mayor bajo nivel (muy proximo al entendimiento de los computadores) se llama Assembler, en el cual se puede describir paso a paso lo que el CPU (el cerebro de la computadora) debe hacer. Este código es luego transformado a código maquina por un ensamblador.

Obviamente usar Assembler es tedioso y es muy dependiente del CPU, eso quiere decir que si deseas ejecutar el programa que has escrito en assembler en otro computador lo mas probable es que debas escribirlo nuevamente para el CPU adecuado.

Es así que para evitar estar escribiendo una y otra vez un mismo código se usa los lenguajes conocidos como de alto nivel, con ellos puedes expresar de manera genérica las instrucciones para que luego un programa llamado compilador los interprete a código maquina altamente optimizado para el CPU.

Uno de estos lenguajes de alto nivel es C. Los programadores C escriben código en lenguaje C, y un compilador de C convierte el código C en código maquina. Este lenguaje C fue creado en 1970 en AT&T por Dennis Ritchie.

Muchos programas que actualmente han hecho posible el avance tecnológico de la humanidad han sido gracias a C, y aún hoy a la actualidad sigue siendo uno de los lenguajes de programación mas usado, el sistema operativo UNIX el cual es la base de OS X y Linux, fue escrito también en C (incluso Windows en su gran parte esta escrito en C).

Objective-C esta basado en C, agrega al lenguaje base la capacidad de soportar la orientación a objetos, por ello su nombre.

¿Objective-C o Swift?

¿Objective-C o Swift?

Es un buen tema para iniciar el blog: ¿Qué lenguaje escoger, el viejo pero muy solido Objective-C o el nuevo e innovador Swift?.

Si se busca la respuesta en los diferentes blogs y foros, se encontrará de todo, hay algunos que prefieren Swift, porque es lo reciente y Apple va a darle mucha fuerza e interés a Swift, ademas la cantidad de material que ya se tiene sobre Swift en youtube y tutoriales es suficiente como para poder empezar con Swift.

Sin embargo encontraran otra gran parte que sugiere Objetive-C, no solo por sus años en el mercado y todo lo que ya se ha desarrollado para el lenguaje, sino que también lo sugieren como elemento pedagógico, Objective-C te hace fácil entender a fondo como estan construidas las aplicaciones para las plataformas de Apple.

Otra de las razones que es bueno resaltar es tener en claro para es cual es el objetivo de aprenderlos: desarrollar aplicaciones propias e independientes (indie developer) o trabajar para clientes o empresas de desarrollo. Para el primero lo mejor es Swift, mucho mas rápido de tener una aplicación en el corto tiempo, para lo segundo y si piensas como una carrera a seguir lo mejor es Objective-C.

Yo sugiero aprender los dos: Objetive-C para saber el porque de las cosas y Swift para aprovechar las ventajas que tiene sobre Objective-C, aprendiendo los dos se tiene mas opciones ya sea como indie developer o como miembro de un equipo. Y en definitiva primero debería ser Objective-C.