Resumen de la Keynote Platforms State of the Union, la interesante para desarrolladores

En esta entrada veremos el resumen de la conferencia principal para desarrolladores de las plataformas de Apple durante la #WWDC18

Read More

Curso Básico de Objetive C: 1 Introducción a Xcode 5

Introducción a XCode 5

Lo primero que debemos saber a la hora de empezar con Objetive C es conocer el entorno de programación que necesitamos para hacer los desarrollos. 
Debido a que la finalidad de este curso es prepararnos para el Curso Básico de Desarrollo de Aplicaciones para iOS. Tenemos un sólo requisito técnico sobre el entorno de desarrollo:

  • Disponer de una máquina de Apple con Mac OSX instalado al menos en la versión 10.8.4
Este será nuestro mayor problema a la hora de iniciar el desarrollo porque la herramienta principal será Xcode 5 y sólo puede instalarse oficialmente en un Mac.

Instalación de XCode 5 [1]

Para instalar el Xcode lo podemos hacer desde la App Store:
Desde el buscados podremos encontrar la página del Xcode:

Pulsaremos en el botón verde de instalar la App, nos pedirá confirmación de compra, no te preocupes es gratuita e iniciará la descarga, son unos 1,9GB así que espera a que este disponible desde el Launchpad.
Una vez descargada para podremos arrancar el Xcode:
Como puedes ver se nos darán las opciones principales de crear un nuevo proyecto, enlazar a un repositorio o abrir proyectos recientes u otro proyecto.
Al pulsar sobre el botón de crear proyecto veremos lo siguiente:
 En el apartado de la Izquierda se pueden ver los distintos proyectos que podemos desarrollar tanto para iOS como para OS X.
En la parte de la derecha se nos mostrarán las opciones particulares para cada tipo de proyecto. 
De cara al curso nos centraremos por su simplicidad en las aplicaciones para OS X:
En este apartado vemos los tres tipos disponibles, para este curso utilizaremos la Command Line Tool como base para todos los proyectos. Esto simplificará la estructura de proyecto y la introducción de código.
Tras pulsar Next nos sale la pantalla de configuración del proyecto:
En ella deberemos rellenar:
  • El nombre del proyecto
  • El nombre de la organización
  • El Identificativo de la misma (deberá ser único en el mundo)
  • y el Tipo: Fundation
Pulsamos en Next  y nos saldrá el diálogo de guardar el proyecto:
Seleccionamos el directorio donde queremos guardar la carpeta del proyecto y pulsamos en Create.
A continuación veremos el interfaz de Xcode de gestión de proyectos:
Como podemos ver nos muestra todas las opciones del proyecto en la parte izquierda veremos el menú de proyecto, en la parte central las configuraciones del mismo y en la parte de la derecha las propiedades.
Esta estructura es muy compleja, así que nos centraremos en los apartados básicos de la misma. 
Al tener seleccionado el proyecto en la parte izquierda puede verse que debajo de él existen las carpetas:
  • una carpeta con el nombre del proyecto, que dentro tiene los ficheros del mismo
  • una carpeta frameworks donde veremos las bibliotecas y frameworks relacionados con el proyecto.
  • y una carpeta Products donde veremos el resultado de la compilación del proyecto, en nuestro caso un programa de linea de comandos. 

Estructura del proyecto

Si expandimos la carpeta del con el nombre del proyecto veremos lo siguiente:
Como podemos ver tenemos el fichero principal de nuestro programa main.m al seleccionarlo con el ratón veremos que la parte central del Xcode presentará el contenido del fichero:

Hola Mundo

Nos encontraremos con el siguiente texto:
//
//  main.m
//  ejemplo001-base
//
//  Created by pepesan on 12/10/13.
//  Copyright (c) 2013 pepesan. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
    @autoreleasepool {
        
        // insert code here…
        NSLog(@»Hello, World!»);
        
    }
    return 0;
}

Dentro de este fichero destacan 3 apartados principales:

  • La cabecera con los comentarios
  • El import de las clases fundaciones de Objective C
  • La función principal del programa, donde vemos la directiva @autorelease que es la que nos va a permitir liberar los recursos de la aplicación una vez terminada.
  • La llamada a NSLog(), que nos permite una salida por consola. 
Como detalle curioso en Objective C todos los literales de cadenas de caracteres deben ir precedidos de un @.

 Compilación y ejecución del Proyecto

Una vez realizado el desarrollo como siempre debemos compilar y ejecutar el proyecto, para lo cual tenemos varias opciones:
  • Mediante el botón de Play que está presente en la barra superior a la izquierda
  • Mediante la combinación de teclas Comando + r

 una vez compilado el proyecto debería salir en la parte superior central de la ventana un mensaje de que la compilación ha sido un éxito:

Por otro lado habrá ejecutado el proyecto y deberíamos tener una salida en la consola, en la parte inferior central de la ventana:

Donde debería aparecer el mensaje del Hola Mundo.
Si en algún momento deseas parar la ejcución de un programa puedes hacerlo pulsando en el botón de stop o con la combinación te teclas Comando + . (esto es un punto no el final de línea 🙂 ).

Depuración en Xcode

Una de la tareas típicas en la codificación es el tratar de resolver errores en la compilación o la ejecución del programa.
Xcode es una buena herramienta en este aspecto ya que nos ayuda a la resolución de estos errores de código. Para ello en la edición del fichero se nos muestran en la parte lateral izquierda del área círculos rojos o triángulos de alerta en cada línea que incluye un error o aviso respectivamente:

Como puede verse en la captura vemos que hay errores y en la misma línea nos indica el error.
Una vez arreglado el código los errores visualmente desaparecerán:

Algunas veces esto no es suficiente para arreglar los errores, ya que será debido a fallos en ejecución de la aplicación. Para ello necesitaremos el uso de los BreakPoints.
Los breakpoints nos permitirán parar la ejecución de la aplicación en un determinado punto, indicando sobre una línea de código dicho punto de ruptura.
Para ello necesitaremos  hacer click en el número de línea donde queramos colocar el breakpoint, y nos debería aparecer un resaltado en azul sobre la misma:

Al ejecutar la aplicación deberá parar en dicho breakpoint:

En la parte inferior central debería aparecer la consola y el inspector de variables con las opciones de depuración:

Como puede verse la captura en la parte de la izquierda, están representadas las variables involucradas en el método que se está ejecutando en ese momento y su valor. Y encima de las variables podemos observar los botones típicos de acción en la depuración, que continúan normalmente con la ejecución, el paso a paso, etc…
También la parte de la izquierda nos aparecerá seleccionado el tercer icono de la barra empezando por la derecha y nos indicará información sobre el uso de CPU, el consumo de memoria y los hilos en ejecución:

Ejercicios

  1. Instala en Xcode en tu ordenador.
  2. Crea un nuevo proyecto de MacOSX tipo Aplicación/Línea de Comando/Foundation.
  3. Ejecuta tu nuevo proyecto.
  4. Coloca un pequeño bucle en el código y depura la línea que muestre en pantalla el valor de la variable i que recorra el índice. 

Referencias

Licencia Creative Commons

Curso Básico de Objetive C

Curso Básico de Objective C

En este curso trataremos de explicar el funcionamiento de la plataforma Xcode y el lenguaje de programación Objetive C, desde la perspectiva de un programador de aplicaciones web con conocimientos en programación orientada a objetos (POO) y bases de datos relacionales (BBDD).

Temario

Licencia Creative Commons

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos:

Cursos Gratuitos

También disponemos de algunos cursos de pago por si son de tu interés:

https://cursosdedesarrollo.com/tienda/

Curso de Angular:

Angular

 

Categorías de Cursos

RSS Cursos de Desarrollo

  • Serie de Artículos de Docker 13/01/2020
    En esta entrada veremos cómo manejar Docker, en una serie de artículos explicativos. No te los pierdas He instalado Docker, ¿Y ahora qué? Docker Compose, para cuando quieres arrancar varios contenedores de manera coordinada
  • ¿Que Frameworks de Frontend son los más utilizados en el millón de páginas del Top de Alexa? 09/01/2020
    Partiendo de la idea del blog de de Andros, y del post sobre su estudio del uso de WordPress con un ejemplo de Clojure. He iniciado un proyecto secundario sobre el uso de las tecnologías usadas en las, más de 1.000.000 principales webs de Internet según Alexa. La idea, es la de ampliar la publicación […]
  • Artículos de administración de Servidores 08/01/2020
    Esta serie de artículos nos permiten saber cómo se instala y se configura un servidor desde cero: Nuevo Servidor NAS reciclado Acceso a servidor de la oficina desde fuera gracias a dinaip Configuración de un firewall de manera sencilla en Debian/Ubuntu
  • ¿Cuál es el uso de WordPress en los principales sitios de Internet según Alexa? 14/12/2019
    Empezamos con nuestra serie de publicaciones sobre tecnologías concretas que más se usan en Internet, en este caso con WordPress. ¿Quieres saber cómo es de importante y cuánto se utiliza? No te pierdas esta entrada.
  • Estudio de Uso de Tecnologías en el millón de páginas más vistas según Alexa 13/12/2019
    Partiendo de la idea del blog de de Andros, y del post sobre su estudio del uso de WordPress con un ejemplo de Clojure. He iniciado un proyecto secundario sobre el uso de las tecnologías usadas en las, más de 1.000.000 principales webs de Internet según Alexa. La idea, es la de ampliar la publicación […]
  • Configuración de un firewall de manera sencilla en Debian/Ubuntu 08/12/2019
    Uno de los problemas principales a la hora de asegurar un servidor es la de filtrar el tráfico de entrada y de salida del mismo, asegurando así que todas las conexiones entrantes y salientes están controladas y sabemos desde donde podemos entrar a los servicios que queremos y no desde donde no queremos. En esta […]
  • Acceso a servidor de la oficina desde fuera gracias a dinaip 06/12/2019
    Una de las tareas para poder acceder a los servicios de nuestro flamante servidor reciclado desde Internet es la de poder configurar el Router y el DNS Dinámico para darle un nombre fijo en Internet, en esta entrada explicaremos cómo lo hemos hecho. Solicitud de IP abierta a Internet en Pepephone El primer paso que […]
  • Arquitectura Web 4.0: Entornos Desacoplados 04/12/2019
    Dentro de la arquitectura Web un Entorno Desacoplado es la combinación de un FrontEnd y un Backend. En esta entrada veremos cómo funciona esta arquitectura desde los puntos más básicos. Como puede verse en el diagrama, una vez cargada una aplicación Frontend, se debería comportar como un agente más que consulta al Servicio Web Rest […]
  • Arquitectura Web 3.0 Frontend 02/12/2019
    Para entender cómo funciona la web iremos viendo cómo funciona de una manera sencilla a la más compleja. En esta entrada veremos los pasos para resolver una petición Web HTTP que gestionar el Navegador Web y cómo se ejecuta el código Javascript   Cliente Web: Solicita la resolución de nombres, actúa como un cliente DNS, […]
  • Estudio de uso de CMSs en los principales 100.000 sitios de la web según Alexa 02/12/2019
    Partiendo de la idea del blog de de Andros, y del post sobre su estudio del uso de WordPress con un ejemplo de Clojure. He iniciado un proyecto secundario sobre el uso de las tecnologías usadas en las, en principio, 100.000 principales webs de Internet según Alexa. La idea, será la de ampliar la publicación […]

Si estás interesado en seguir formándote tenemos una serie de cursos gratuitos: http://cursosdedesarrollo.com/cursos/

También disponemos de algunos cursos de pago por si son de tu interés: https://cursosdedesarrollo.com/tienda/

Curso de Angular: https://cursosdedesarrollo.com/tienda/angular/

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies