Computação Programação Workshop iOS

Estrutura de um projeto iOS no Xcode

March 13, 2017

 

Essa imagem aí em cima é um screenshot do projeto do workshop de iOS que vou ministrar nessa terça, dividido bonitinho, organizado de uma maneira que facilita encontrar as informações. Para não gastar o tempo do workshop criando pastas e importando uma a uma pro Xcode, deixei pronto um commit com a tag “dayOne”, com toda essa estrutura prontinha, mas estou escrevendo esse post pra que os participantes ou não participantes possam aprender como fazer tudo isso.

Vamos entender um pouco mais como funciona essa estrutura e o que vai em cada pasta?

PS: todos os exemplos de arquivos podem ser encontrados no repositório do workshop no Github.

Pra começar vamos listar todas as divisões:

  1. Config
  2. InitialSetUp
  3. Managers
  4. Models
  5. Parsers
  6. ReusableView
  7. SupportingFiles
  8. TabBarControllers
  9. TableCells
  10. ViewControllers

1.Config

Dentro desse diretório eu costumo colocar arquivos que possuem trechos de código que utilizo em muitos lugares do app, arquivos de constantes e de urls. Um arquivo muito importante que uso é o AppUtils, uma classe com métodos estáticos, ou seja, não é necessário ter uma instância da classe para chamar um método. Um exemplo clássico é uma função que salve informações no UserDefaults, o cache do iOS.

2.Initial Setup

Nem sempre um projeto vai precisar dessa divisão, porque é aqui que eu coloco um Storyboard com ViewController único, responsável por ver qual tipo de usuário está logado e decidir qual TabBar (aquela barra com botões na base da tela) será apresentada. Imagine um app em que eu tenha usuários criadores de eventos e usuários que só podem seguir/confirmar presença em eventos, cada um terá uma TabBar diferente e alguém tem que decidir quando mostrar cada uma. Por ser um fluxo desconexo do restante do app, prefiro deixar esses arquivos juntos numa pasta reservada.

3.Managers

Mais simples que essa impossível: aqui só vão os arquivos responsáveis por fazer chamadas à API. No caso do workshop utilizamos métodos da biblioteca AFNetworking.

4.Models

São as entidades utilizadas no projeto (Raffle, Draw, Person)

5.Parsers

Eu precisava de um lugar pra parsear o Json recebido pelos managers em um modelo que o app sabe ler, então decidi criar um diretório só pra isso.

6.Reusable Views

Se você tem telas que aparecem várias vezes, crie uma view customizada. Empty State? Error View? Loading View? Coloca tudo ai!

7.Supporting Files

Criada automaticamente com o projeto, tem só a main. Deixa ela quietinha na dela :]

8.TabBar Controllers

Lembra que um aplicativo pode ter diferentes TabBars pra cada tipo de usuário? Cada TabBar vai precisar de uma classe e elas podem ficar todas juntas.

9.Table Cells

Na maior parte dos apps, as células de uma tabela são customizadas e as células oferecidas pela Apple são bem restritas. As células customizadas podem ser usadas em vários ViewControllers do app. YAY redução de código duplicado!

10.ViewControllers

São as classes que controlam cada tela. Falaremos mais deles num próximo post.

Entendi como funciona a estrutura, o que tem dentro de cada diretório, mas e ai?! Como eu chego nesse resultado? Primeiro vamos criar o projeto:

Passo 1: Crie um projeto no Xcode

Passo 2: Escolha o tipo do projeto (Single View Application neste caso)

Passo 3: Dê um nome, um organization identifier (tudo bem se não for uma organização real), selecione language Objective-C, devices iPhone e só!

Passo 4: Escolha onde quer salvar o projeto e clique em “create”

Agora vamos criar as pastas e os arquivos dentro delas (vou dar um exemplo e os outros vocês podem achar no repositório do workshop no GitHub:

Passo 1: Abra a pasta do projeto no Finder e entre na pasta com o nome do projeto (você verá arquivos como AppDelegate.h, Assets.xcassets). Clique com o botão direito do mouse e selecione “New Folder”. Renomeie para um daqueles diretórios que falamos aqui em cima (Config, ViewControllers, Managers…)

Passo 2: No Xcode, clique com o botão direito do mouse na pasta amarelinha do projeto e selecione “Add Files to… ”

Passo 3: Selecione a pasta que acabou de criar no Finder e na opção “Added Folders” selecione “Create Groups”

Passo 4: Clique com o botão direito em cima da pasta que acabou de adicionar e selecione “New File”

Passo 5: Selecione “Cocoa Touch Class” e aperte “Next”

Passo 6: Nomeie o arquivo e aperte “Next”

Passo 7: Se precisar, selecione a pasta, mas se você seguiu esses passos ele já estará no lugar certo. Agora é só clicar em “Create”

Pronto! Você já sabe como criar arquivos no Finder, como adicioná-los no projeto dentro do Xcode e como criar um novo arquivo pelo Xcode. Repita esses passos até ter todos os diretórios e arquivos que precisar. Se você for seguir o workshop, é só entrar no repositório do GitHub.

Espero que tenham gostado do tutorial. Qualquer dúvida é só deixar um comentário :]

Cheers!

 

 

You Might Also Like

No Comments

Leave a Reply