Computação Programação Workshop iOS

Mini Curso IFSP + Resumão Swift

November 10, 2017

 

Faz tempo que não publico nada, eu sei. Mas precisava compartilhar esse resumão atualizado em Swift, principalmente porque prometi pra essa turma linda aí em cima que participou do meu mini curso de iOS. Espera ai, que curso?

Do dia 06/11 ao dia 11/11 o IFSP São Carlos realizou a WeComp, um evento que visa aproximar os alunos do mercado de trabalho. Eu fui chamada pra oferecer um workshop de iOS e junto do Carlos Menzoni (aquela fofurinha de óculos e camiseta de dinossauros do meu lado) apresentamos os conceitos mais utilizados no desenvolvimento mobile para iPhones.

O projeto final que usei está no meu GitHub ❤️

Os conteúdos apresentados foram os seguintes:

  • Swift
  • XCode
  • iOS
  • Estrutura de projeto
  • Storyboard
  • Constraints
  • ScrollView
  • UINavigationController
  • TableView
  • Segue
  • Tab bar
  • Segmented control
  • Custom UIView
  • Keyboard
  • BarButtonItem
  • UIAlertController
  • Delegate
  • Animations (vou criar um post só com isso por ser um tema mais longo)

No último dia dos cursos eu procuro sempre fazer um resumo relembrando tudo que ensinei nos dias anteriores, assim os participantes podem ter uma visão geral de tudo que aprenderam. Esse post é um ponto de referência com todo o conteúdo do tal resumo :]

Swift

  • let – propriedade com conteúdo imutável
  • var – propriedade com conteúdo mutável

  • optional – uma propriedade que pode ter conteúdo ou a ausência dele
    • símbolo “?” é o marcador de optional
    • símbolo “!” é o marcador de unwrap
    • para usar um optional é necessário fazer a verificação do conteúdo
      • guard let 
      • if let

  • declaração de classe

  • declaração de struct
    • pode ser usada como uma forma de criar “namespaces

  • declaração de enum
    • pode ser usada como uma forma de criar “namespaces

  •  functions
    • keywork func + nome do método + parâmetros entre parênteses + -> + tipo do retorno
    • pode ser criado um alias para o nome do parâmetro
      • (aliasOutOfFunction aliasInsideFunction: Type)
      • quando a função é chamada, usa-se o  aliasOutOfFunction
        • pode ser substituído por “_” para que não precise ser colocado nada
      • dentro da função usa-se o aliasInsideFunction

XCode

  1. simulador ou device
  2. search
  3. arquivos
  4. filtro dentro dos arquivos
  5. árvore de views
  6. identity inspector
  7. attributes inspector
  8. size inspector
  9. connections inspector
  10. object library
  11. add new constraints
  12. align constraints
  13. embed in stack (botão da maldade)
  14. update frames

  1. propriedades e métodos. Use //MARK: – para organizar os métodos e facilitar a manutenção do código

  1. assistant editor (usamos para puxar outlets)

  1. breakpoint
  2. continuar execução
  3. variables view
  4. console

iOS

Estrutura de projeto

  • sempre divida seus arquivos em groups por contexto
  • para dividir seu código por contexto use //MARK: – dentro das classes
  • ao criar uma pasta no finder, clique com o botão direito em cima da pasta no XCode e selecione “Add files to
    • não esqueça de marcar a opção “create groups” em options

 Storyboard

  • IB – interface builder
  • XIB – xml + interface builder
  • conjunto de XIBs

Constraints

  • regras de posicionamento
  • relação entre componentes
  • top, bottom, leading (esquerda), trailing (direita)
  • lembre de remover o “Relative to Margins” (que adiciona 16pts nas margens esquerda/direita)

ScrollView

  • coloque todas as constraints em zero (em relação a parent view)
  • coloque uma UIView dentro da ScrollView e coloque todas as constraints em zero (em relação a ScrollView)
  • coloque uma constraint de Equal Widths entre a UIView dentro da ScrollView e a parent view
  • coloque uma constraint de Height fixa, depois de pinar todos os componentes dentro da view, remova a constraint de altura

UINavigationController

  • faz o controle de um fluxo de navegação
  • todo storyboard que tem o começo de um fluxo deve ter uma navigation controller
    • deve ser o entry point do storyboard
  • já faz o controle do back button (inclusive com swipe)
  • a relação entre a navigation e o primeiro view controller é de “root view controller

TableView

  • registrar a classe e o nib das cells

  • delegate
  • data source
    • dois métodos obrigatórios

Segue

  • ligação entre duas telas
  • pode ser de dois tipos
    • push (pop para voltar)
    • present (dismiss para voltar)
  • coloque um identifier
    • pode usar uma struct para guardar os valores dos identifiers

  • pode ser feito programaticamente

Tab Bar

  • cada tab tem um fluxo independente
  • o tab bar icon tem que ser colocado na navigation bar de cada fluxo
  • a relação entre a TabBarController e a Storyboard reference é “View Controllers

Segmented control

  • use a propriedade selectedSegmentIndex para saber a posição atual
  • crie uma IBAction do tipo ValueChanged para atualizar a tela de acordo com a posição

Custom UIView

  • coloque o File Owner class como a classe de mesmo nome do XIB
  • implemente os init methods na classe
  • utilize @IBDesignable para conseguir ver o layout dentro dos outros XIBs/Storyboards

Keyboard

  • para esconder o teclado, troque o tipo da UIView para UIControl e puxe uma IBAction do tipo “Touch Up Inside“, dentro do método finalize a edição da view

Bar Button Item

  • pode ser criado um botão ou um array de botões

UIAlertController

  • não esqueça de incluir uma action

Delegate

  • uma maneira de enviar conteúdo para trás
  • No view controller 2
    • implemente o protocolo
    • crie uma variável do tipo do protocolo
    • chame o método do protocolo

  • No view controller 1
    • conforme com o protocolo
    • sete self como delegate do view controller 2 no momento do segue
    • implemente os métodos obrigatórios

You Might Also Like

No Comments

Leave a Reply