-
Notifications
You must be signed in to change notification settings - Fork 0
Sumários
- Aula 01 - Apresentação
- Aula 02 - Kotlin
- Aula 03 - Implementação de um avaliador de expressões em Kotlin
- Aula 04 - Laboratório
- Aula 05 - Android Intro
11-09-2019 (20:00/23h00 - G.0.08)
- Apresentação
- Âmbito da disciplina
- Avaliação teórica e prática (3 entregas)
13-09-2019 (18:30/20h00 - G.2.07)
-
Introdução ao ambiente de programação em Kotlin
-
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 notnull
. Otherwise returns null.
Recursos
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
.
- A avaliação da expressão
-
Recursos
20-09-2019 (18:30/20h00 - G.2.07)
Aula de laboratório. Resolução dos Kotlin Koans
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
-
Layouts =
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