Integrando Xcode4 con GitHub

0
10358

1. Desarrollo de la solución

Todos los años, durante el verano, dedico tiempo a actualizarme tecnológicamente. Este verano le toca al desarrollo de aplicaciones en Iphone: es que esto avanza muy deprisa, y aunque en Autentia hay gente que siempre sabe más que yo, me molesta hablar comercialmente de oídas sin haber rascado el suficiente código.

Aunque trabajemos solos en un proyecto, es conveniente utilizar con un sistema de control de versiones distribuido, por muchas causas:

  • Se nos puede romper el ordenador, perderlo o que nos lo roben.
  • Podríamos trabajar en equipos distintos en distintas ubicaciones, sin preocuparnos del equipo concreto que usemos.
  • En cualquier momento invitar a otra persona a revisar nuestro código o a colaborar en el proyecto.

Uno de los mecanismos más sencillos es abrirnos una cuenta en Github en https://github.com/ y configurar nuestro entorno Xcode4, que ya trae soporte nativo.

En este tutorial vamos a ver como se hace e incluso ver otras herramientas que nos permitan gestionar nuestros fuentes Objective-C sin usar el interfaz de Xcode.

Primero nos abrimos una cuenta. Para ello vamos a la home del portal y pulsamos en Signup and Princing, que está arriba a la derecha.

Como voy a compartir todo el código que genere puedo elegir el plan gratuito. Completamos los datos y seguimos.

Una vez completado el proceso, nos aparece una sección de bienvenida que os recomiendo recorrer.

En la primera, te dice como instalar Git localmente en tu sistema. Incluso mejor, te permite descargarte un cliente visual que te simplifica la instalación de Git y la interacción remota con GitHub.
Pinchamos en el botón naranja de: Download GitHub for Mac

Se nos descomprime el fichero y lo llevamos a la carpeta de aplicaciones de nuestro mac.

Al lanzarlo, configuramos unos datos básicos y pinchamos en Install Command Line Interface

Ya tenemos instalado el software de líneas de comando:

Metemos el usuario y contraseña de GitHub, los mismos de la cuenta que acabamos de crear en el Web.

Y ya hemos terminado de momento. Podríamos crear nuestro repositorio remoto desde aquí pero lo voy a hacer desde la página Web.

Pinchamos el botón Create a New Repo arriba a la derecha.

Elegimos un repositorio público y que cree el fichero readme por defecto para objective-C

Veremos que ya tenemos ficheros en github.com:

Ahora nos vamos a Xcode4, al organizador. Os muestro donde está por si no os suena.

Vamos a dar de alta el repositorio, por lo que tenemos que obtener, de la página de GitHub, la cadena de conexión, en mi caso: https://github.com/rcanalesmora. Abajo tenemos un botón + para añadir distintos elementos. Pinchamos en Add repositorio

Simplemente copiando la URL, nos encontrará automáticamente el nombre y tipo de repositorio:

Ahora deberemos añadir el usuario y contraseña. Me da algún problema de certificado que sospecho que es lo que crea algún que otro problema de sincronización.

Pulsaremos el botón Clone (clonar)

Y elegiremos el directorio deseado donde se nos cargarán los fuentes que de momento tiene nuestro proyecto (el readme solamente).

Deberemos comprobar que se crea la carpeta con el nombre de nuestro repositorio y que encontramos los ficheros.

Volvemos a Xcode y creamos un proyecto.

Voy a elegir una vista simple.

Elijo el nombre del proyecto, el prefijo de las clases y otros parámetros.

Y digo que se guarde en el directorio de nuestro repositorio GitHub.

Se nos creará una carpeta con el nombre del proyecto.

Hacemos una pequeña modificación en la vista de nuestro proyecto para ver que compila y que se reflejan los cambios. Fijaos que aparece una A al lado de los fuentes.

Elegimos el destino del simulador (en mi caso iphone) y pulsamos Run para ejecutar.

Se compilará la aplicación y comprobaremos que sale lo que debe.

Ahora iremos a la opción de menú Commit para reflejar los cambios en el repositorio.

Nos pedirá que elijamos los ficheros deseados. También tendremos que poner una etiqueta o mensaje al paquete de subida para poder identificarlo.

Si queremos mandar los cambios a la red, pulsaremos Push.

etiqueta o mensaje al paquete de subida para poder identificarlo.

Nos pedirá que elijamos el repositorio remoto configurado.

Podremos comprobar en el Web que está el nuevo proyecto con sus ficheros.

Hasta aquí todo bien pero, cuando cierro y vuelvo a abrir Xcode, me da la sensación de que algo no funciona bien, el push no termina de hacerlo bien. Juraría que es el tema que comentaba antes de aceptación del certificado.

Manejar los fuentes desde los entornos de desarrollo, como ya me había advertido @alejandropgarci, muchas veces introduce más inconvenientes que ventajas, ya que nos obliga a aprender las particularidades de cada producto (molesto para las empresas que trabajamos en varios lenguajes y nos adaptamos a las preferencias del cliente) y por ello, podemos elegir un cliente para hacer el proceso manual. Es decir, creamos el repositorio, creamos el proyecto, y con una herramienta externa los sincronizamos.

Si lo deseamos, podemos utilizar el cliente de GitHub para sincronizar los ficheros locales con los remotos. Nos aparecería el repositorio creado en GitHub.
Podemos decirle que lo clone al entorno local (pinchando en el botón Clone to Computer).

Como el directorio existe, nos pedirá cancelar o reemplazar. Como son los mismos ficheros, los remotos que los locales, podemos pinchar en reemplazar porque realmente nada debería cambiar (aunque siempre ojito con esto no vayáis a perder algo valioso, yo haría copias en otro sitio hasta estar seguro que las secuencias son seguras).

Y ya tenemos otro cliente configurado para manejar desde nuestro PC el repositorio de GitHub.

Podremos ver los fuentes afectados con facilidad.

De hecho, esta herramienta nos puede valer para detectar ese error (o tal vez es que no lo entiendo). He modificado un fichero fuente y hecho commit en Xcode y queda registrado pero da la sensación que solo en el Git local.
Fijaos en la entrada (estamos en repositorios en Xcode): Pequeños cambios.

Podemos ver dentro del cliente que hay commits no sincronizados:

Pinchando en el botón sincronizar, ya suben al repositorio GitHub remoto. Bueno, este es un Workaround sencillo para el problema, aunque hay que estar atento.

Una opción todavía mejor al cliente de GitHub es un producto gratuito de Atlassian llamado SourceTree.
Nos los descargamos directamente de: http://www.sourcetreeapp.com/

Nos aparecerá este Wizard o asistente.

Elegimos el repositorio GitHub.

Elegimos el directorio local, igual que en los casos anteriores, y el solito identificará el repositorio.

Tendremos una herramienta mucho más completa y visual para manejar nuestros fuentes. Ya tenemos para investigar un rato.

Ahora sólo hay que tener una precaución antes de seguir: que usando los ficheros del proyecto en otra máquina, funcionen bien. En algunos casos, en distintos entornos de desarrollo, hay que sincronizar sólo los ficheros de fuentes porque los ficheros de proyecto incluyen parámetros y trayectos locales y, si no son idénticos, dan problemas.

Yo he estado probando el proyecto Xcode en dos ordenadores distintos, en directorios distintos, y no he tenido ningún problema en el desarrollo.

Bueno, con esto ya estamos en órbita con la configuración de los repositorios distribuidos y los fuentes de nuestros proyectos. Para mí es importante porque soy de los que se van pasando a portátiles cada vez más pequeños y menos potentes , para labores comerciales, y sobremesas, para cacharrera en casa, cada vez más grandes y potentes.

Dejar respuesta

Please enter your comment!
Please enter your name here