Skip to content

Sumários

Luís Falcão edited this page Oct 2, 2019 · 14 revisions

Aula 01 - Apresentação

11-09-2019 (20:00/23h00 - G.0.08)

  • Apresentação
  • Âmbito da disciplina
  • Avaliação teórica e prática (3 entregas)

Aula 02 - Kotlin

13-09-2019 (18:30/20h00 - G.2.07)

  • Introdução ao ambiente de programação em Kotlin

  • Compilador Kotlin de linha de comando (kotlinc)

  • Modelo de execução sobre a JVM

  • Exercícios: Kotlin Koans

  • Caracterização geral da linguagem Kotlin:

    • Tipificação estática com inferência de tipos
    • Object-Oriented com suporte para os estilos imperativo e funcional
  • Funções: fun [<parametros de tipo>] <nome> ([parametros formais]) : [tipo retorno] {...}

  • Tipo Função -- notação especial correspondente à assinatura, i.e. (Tipo de Parametros) -> Tipo Retorno

  • Tipo Função e.g. (Int) -> String, () -> Unit, entre outros.

  • Typealias e.g. Predicate<T> = (T) -> Boolean

  • lambdas: { param1, param2, ... -> block } or { block }

  • it -- implicit lambda parameter

  • Function references - :: like Java

  • SAM (Single Abstract Method) compatível com lambda

  • read-only (e.g. listOf(), setOf) <vs> mutable collections (e.g. mutableListOf, mutableSetOf)


  • ? for Nullable -- val variable: Type? = value
  • ?. -- safe call -- access member only if not null. Otherwise returns null.

Recursos

Aula 03 - Implementação de um avaliador de expressões em Kotlin

18-09-2019 (20:00/23h00 - G.0.08)

  • Implementação um avaliador de expressões aritméticas em notação prefixa.
    • Não são contempladas prioridades entre operadores. A prioridade é dada pela ordem de processamento das operações.

    • As expressões podem ser constantes (e.g. 73, 9, etc) ou binárias (e.g. + 2 3, * 5 12, etc) ou compostas pelas expressões anteriores.

    • Exemplos:

      • A avaliação da expressão * + 3 4 + 7 2 tem o resultado 63 e é equivalente ao resultado de (3 + 4) * (7 + 2).
      • A expressão * + 3 4 + 7 2 5 tem o mesmo resultado que o anterior porque o 5 é ignorado, já que a última expressão binária fica completa em + 7 2.
      • No caso de + 3 4 * + 7 2 5 tem o resultado 7 porque a avaliação termina com apenas + 3 4.
      • A expressão * 3 4 + 4 dá 12. A avaliação termina com * 3 4. Se por outro lado tivéssemos. + * 3 4 4 daria 16 <=> (3 x 4) + 4.

Recursos


Aula 04 - Laboratório

20-09-2019 (18:30/20h00 - G.2.07)

Aula de laboratório. Resolução dos Kotlin Koans


Aula 05 - Android Intro

25-09-2019 (20:00/23h00 - G.0.08)

  • Basic parts: Manifest, Main Activity e Gradle build
  • Activity:
    • visual + comportamento

    • UI Component (subclasse de Context)

    • Visual (src/main/res/layout/...xml) + comportamento (src/main/java)

    • Analogia ao front-end Web: visual (HTML e CSS) + comportamento (Javascript)

    • Ciclo de vida, i.e. Created, Started (visível), Resumed (primeiro plano), Paused, Stopped, etc

    • Métodos "gancho", i.e. onCreated(), onStarted(), etc

    • São iniciadas por instâncias de Intent

  • Intent:
    • mensagem assíncrona;
    • ligação entre componentes (e.g. Activities)
    • Main Activity <-- intent.action.MAIN
  • UI = Layouts + Widgets:
    • Layouts = ViewGroup objects = widget containers
    • Widgets = View objects = UI components e.g. botões, caixas de texto, etc
  • ConstraintLayout
  • Android Studio Layout Editor ---> activity_...xml
  • R - classe gerada dinamicamente com constantes dos identificadores (e.g. R.id.buttonSend)
  • Eventos e Listeners -- view.setOnClickListener(View -> Unit)
  • findViewById(@IdRes int id)
    • Em kotlin esta chamada não é necessária uma vez que existem propriedades de extensão como o mesmo nome do id de cada View do layout da Activity

Recursos


Clone this wiki locally