Todo proyecto con más de 3 años (probablemente hasta de 2) de desarrollo les puedo asegurar que todavía tiene algo de Objective-C en sus entrañas. Lo mejor es conocer ambos lenguajes pero darle prioridad a Swift
Recursos
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
.hpara la interfaz pública y.mpara 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
@interfacey@implementationpara definir clases. - Los métodos y propiedades deben declararse en el archivo
.hy 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
UITableViewDataSourceen el archivo.h. - Añade métodos en el
.mpara 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.