Desarrollo de Apps iOS con Objective-C: Proyecto Básico de Tabla
Clase 50 de 52 • Curso 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:
-
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.
-
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.
- Los archivos se dividen en
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:
-
Agregar TableView desde el Storyboard:
- Arrastra un TableView desde la biblioteca de objetos a tu pantalla.
- Define restricciones para posicionarlo adecuadamente.
-
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.
- Implementa
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.