Desarrollo de Apps iOS con Objective-C: Proyecto Básico de Tabla

Clase 50 de 52Curso de Desarrollo de Apps para iOS

Resumen

¿Por qué aprender Objective-C en un mundo dominado por Swift?

Aunque en el panorama actual Swift domina el desarrollo iOS, aprender Objective-C sigue siendo relevante y puede ser la clave para un trabajo como desarrollador iOS. Pese a que Objective-C, un lenguaje de programación creado hace más de 40 años, pueda parecer pasado de moda, aún es necesario para entender la estructura detrás de muchas aplicaciones antiguas y tener una ventaja en el mercado laboral. El dominio de Objective-C te permitirá no solo crear apps, sino también entender y modificar aplicaciones legado que podrían estar compuestas por ambos lenguajes.

¿Cómo crear un proyecto básico en Objective-C?

Para empezar tu viaje en Objective-C, crear un nuevo proyecto es esencial. Aquí te mostramos un paso a paso para preparar el terreno:

  1. Crea un nuevo proyecto:

    • Selecciona la plantilla "Single View App".
    • Elige Objective-C como lenguaje.
    • Guarda el proyecto en un lugar accesible, como el escritorio.
  2. Estructura del proyecto en Objective-C:

    • Los archivos se dividen en .h para la interfaz pública y .m para la implementación.
    • Incluye AppDelegate y ViewController similares a los proyectos en Swift.

Al crear un nuevo proyecto, notarás que hay más archivos que en Swift, debido al uso separado de archivos de interfaz e implementación, lo cual puede ser abrumador al inicio. Sin embargo, tener esta estructura clara es crucial para comprender cómo se relacionan entre sí las diferentes partes del código.

¿Cómo trabajar con interfaces y clases en Objective-C?

Objective-C tiene algunas diferencias notables respecto a Swift en la manera en que se manejan las interfaces y las clases. Para empezar, es importante entender cómo se establecen estas conexiones en tu código:

  • Usa @interface y @implementation para definir clases.
  • Los métodos y propiedades deben declararse en el archivo .h y definirse en el .m.

Un aspecto que destaca es el uso del asterisco ( * ) como un puntero de memoria, necesario para la declaración de variables.

Ejemplo de conexión con un outlet en Objective-C

@interface ViewController : UIViewController
@property (nonatomic, weak) IBOutlet UITableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupUI];
}

- (void)setupUI {
    self.tableView.dataSource = self;
}
@end

Aquí se observa una diferencia importante con Swift en cuanto al manejo de las interfaces: en Objective-C, necesitas implementar manualmente muchas de las funcionalidades que en Swift se configuran automáticamente.

¿Cómo gestionar tablas y celdas en Objective-C?

Crear una interfaz de usuario básica con tablas en Objective-C no difiere mucho de Swift, una vez que comprendes las bases. Aquí te proporcionamos una guía rápida para configurar una tabla:

  1. Agregar TableView desde el Storyboard:

    • Arrastra un TableView desde la biblioteca de objetos a tu pantalla.
    • Define restricciones para posicionarlo adecuadamente.
  2. Implementar métodos de datasource:

    • Implementa UITableViewDataSource en el archivo .h.
    • Añade métodos en el .m para definir la cantidad de filas y las características de las celdas.

Código para gestionar celdas

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 10; // Número de celdas
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CellID" forIndexPath:indexPath];
    cell.textLabel.text = @"Soy una celda";
    return cell;
}

En este ejemplo, se destaca el uso de métodos similares a los de Swift, pero con una sintaxis que refleja la antigüedad y las características únicas de Objective-C.

¿Qué desafíos y ventajas ofrece aprender Objective-C?

Aprender Objective-C puede ser desafiante debido a su sintaxis y enfoques distintos a Swift, pero sus beneficios incluyen:

  • Acceso a legados de software: Muchas aplicaciones existentes aún funcionan con Objective-C.
  • Ampliación de tus habilidades: Te convierte en un desarrollador más versátil y competitivo.
  • Comprensión de los orígenes de iOS: Te proporciona un entendimiento más profundo del ecosistema de Apple.

El camino para dominar Objective-C es un reto y una oportunidad de crecimiento personal y profesional. Aunque al principio puede asustarte su estructura y detalles precisos, como la necesidad de manejar punteros y diferenciar entre archivos de interfaz e implementación, enfrentarte a estos desafíos te ayudará a crecer como desarrollador, preparándote mejor para el mercado laboral de iOS.