Categorias

Programar para iOS: Estrutura Básica do Objective-C

Seguindo nossa série de Artigos sobre Programar para iOS, hoje trataremos sobre a estrutura básica do Objective-C.

O primeiro artigo foi mais teórico. Este pode ser mais maçante, vamos iniciar a parte técnica, então separe sua caneca de café e vamos lá!

Se você ainda não leu o primeiro artigo, leia-o: https://codft.me/3hF

O Objective-C é a linguagem de programação que utilizaremos para desenvolver para iOS.

Criando o primeiro projeto para iOS

Agora, iremos criar o nosso primeiro projeto para iOS, que ainda não terá uma interface gráfica, pois ainda não é este o nosso objetivo.

O nosso objetivo é ver a estrutura básica e criar um Hello World.

Agora, Abra o Xcode. Provavelmente ele abrirá uma tela de projetos.
Para criar um novo projeto, basta clicar emCreate a new Xcode project ou no menu, ir em File -> New -> Project ou basta apenas utilizar o atalho COMMAND + SHIFT + N

Agora, o Xcode mostrará vários templates. Vá em iOS -> Applications -> Empty Application e Depois clique em Next.

Em Product Name coloque “Hello World“; em Organization Name o seu nome ou o nome de sua empresa; Company Identifier é um identificador que usamos para subir o app na loja. O nome real do seu aplicativo será [Company Identifier].[Product Name].

Geralmente o Company Identifier é o domínio da empresa invertido. Por exemplo: para o codigofonte.com.br, o company identifier é br.com.codigofonte.

Em Devices, coloque iPhone.

Não coloque nada em Class Prefix e não marque Use Core Data. Clique em Next. E salve o seu projeto onde quiser.

Agora, perceba que ele criou alguns arquivos. Provavelmente a estrutura é:

+ Hello World
   – App Delegate.h (Header da Classe App Delegate. O App delegate é onde tratamos algumas ações do App)
   – App Delegate.m (Implementação da Classe App Delegate)
   – Images.xcassets (Diretório de Imagens)
   + Supporting Files
     – Hello World-Info.plist (Informações do Projeto)
     – InfoPlist.strings
     – main.m (O Famoso main está aqui por questões históricas, não usaremos ele para nada)
     – Hello World-Prefix.pch (Prefixo. Todas as classes que importamos aqui, são importadas no projeto inteiro)

Abra o App Delegate.h. Você provavelmente vê algo assim:

#import  //Importa as classes de User Interface da Apple

@interface AppDelegate : UIResponder  // @interface: aqui começa a declaração de atributos e métodos.

@property (strong, nonatomic) UIWindow *window; //@property: um tipo de variável “global” veremos isto mais para frente

@end //@end: no caso, é o final da declaração de métodos e atributos

Note os comentários que adicionei à cada linha.

Agora, vamos abrir o App Delegate.m, e vamos por partes:

O “@implementation” que você vê, é o início da implementação da Classe.

Temos vários métodos, vamos dar uma olhada:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Este é o formato de função no objective-c. Entenderemos mais para frente. Mas esta função, o iOS chama quando o App acaba de abrir

Está aqui dentro este código:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;

Este código é padrão para Empty Applications, ele apenas cria uma tela, já que você não tem nenhuma. Caso você não tenha uma tela (view) o programa dá erro.

Depois temos outros métodos:

- (void)applicationWillResignActive:(UIApplication *)application //App vai voltar à ativa

- (void)applicationDidEnterBackground:(UIApplication *)application // App entrou em background (pode ser causado por alguma ligação ou quando o usuário aperta o botão home

- (void)applicationWillEnterForeground:(UIApplication *)application // App vai entrar em Foreground

- (void)applicationDidBecomeActive:(UIApplication *)application // App voltou para a ativa

- (void)applicationWillTerminate:(UIApplication *)application // App vai ser encerrado (geralmente por algum bug)

No primeiro método, antes de “return YES” iremos utilizar uma função do objective-c que dispara um log. O nome desta função é NSLog(); A Sintaxe é : NSLog(NSString * format,…); Ou seja, podemos inserir uma String dentro, que pode ser formatada (Ter outras variáveis dentro).
Agora, digite (não copie, vai ajudar à aprender o comando): NSLog(@”Hello World”);

O @ no objective-c é um “criador rápido” de objetos. Por exemplo o @10 é um NSNumber com o valor 10 (veremos mais para frente isto). O @”” é um String.

Rode o projeto agora, e veja que quando abrir o app no iOS Simulator, logo o App irá disparar um Hello World no Log.

Por hoje é só, logo postarei mais artigos sobre desenvolvimento para iOS. Fique ligado.