Desenvolvimento para Dispositivos Móveis Mobile Apps Development
arturmarques.com | entrada ; home| contacto ; contact

Semana de 2024-01-21 (#--/15)

2024-01-22

Exame de época normal. Estão disponíveis as classificações:

N E
200100195 10
180100502 10

Semana de 2024-01-14 (#--/15)

2024-01-15

Estão disponíveis as classificações finais, após avaliação contínua.

N Teste Prj Final
70118039 10 17 13
210100274 13 13 13
210100461 10 14 12
200100317 12 12 12
180100322 9 13 11
200100259 10 14 12
200100253      
220001124 11 12 11
210100065 10 17 13
200100272 12 13 12
200100005 11 11 11
190100146 9 11 10
150118005 11 14 12
190100291 15 11 13
210100108 12 11 12
180100312 10 11 10
190100274      
200100265 11 12 11
200100278 11 12 11
200100195 6 11 8
210100489 9 14 11
210100350 12 17 14
210100201 10 12 11
180100502 5 11 7
200100152 10 11 10
170100249 11 12 11
210100158 14 17 15
210100171 10 12 11
200100385 15 13 14
200100053 14 13 14
210100076 10 15 12
200100420 9 13 11
210100063 16 17 16
210100222 16 11 14
200100273 11 12 11

Semana de 2024-01-07 (#15/15)

2024-01-09

Continuação e conclusão: apresentações finais de trabalhos de alunos @URL.

Os alunos fazem as suas apresentações, a partir do lugar em que se sentarem, na sala de aula, ligando-se a uma sessão Zoom, vídeo-projetada a partir de este URL. Quem estiver a apresentar TEM QUE TER O MIC ABERTO.

2024-01-08

Apresentações finais de trabalhos de alunos @URL.

Os alunos fazem as suas apresentações, a partir do lugar em que se sentarem, na sala de aula, ligando-se a uma sessão Zoom, vídeo-projetada a partir de este URL. Quem estiver a apresentar TEM QUE TER O MIC ABERTO.

Semana de 2023-12-10 (#13/15)

2023-12-12

Continuação: apresentações de [ideias de] trabalhos de alunos @URL.

Os alunos fazem as suas apresentações, a partir do lugar em que se sentarem, na sala de aula, ligando-se a uma sessão Zoom, vídeo-projetada a partir de este URL. Quem estiver a apresentar TEM QUE TER O MIC ABERTO.

2023-12-11

Apresentações de [ideias de] trabalhos de alunos @URL.

Os alunos fazem as suas apresentações, a partir do lugar em que se sentarem, na sala de aula, ligando-se a uma sessão Zoom, vídeo-projetada a partir de este URL. Quem estiver a apresentar TEM QUE TER O MIC ABERTO.

Ordem sorteada:

Grupo #0: ['200100265', '210100171']
Grupo #1: ['210100489', '210100461']
Grupo #2: ['200100420', '210100274', '200100272']
Grupo #3: ['180100502', '190100146', '200100005']
Grupo #4: ['200100273', '200100278', '200100317']
Grupo #5: ['200100152', '200100195', '180100312']
Grupo #6: ['170100249', '210100201, '220001124']
Grupo #7: ['180100322', '200100385', '200100053']
Grupo #8: ['70118039', '210100065', '210100158']
Grupo #9: ['210100108', '210100222', '190100291']
Grupo #10: ['210100063', '210100350']
Grupo #11: ['210100076']
Grupo #12: ['150118005']
Grupo #13: ['200100259']
Ordem: [ 2  4  6  5 11  3 13  8  7  1 12  0  9 10]

Semana de 2023-12-03 (#12/15)

2023-12-05

Teste escrito.

Relativamente ao teste escrito 20231205, está disponível o enunciado, uma solução parcial, e as classificações:

N Teste
70118039 10
210100274 13
210100461 10
200100317 12
180100322 9
200100259 10
200100253  
220001124 11
210100065 10
200100272 12
200100005 11
190100146 9
150118005 11
190100291 15
210100108 12
180100312 10
190100274  
200100265 11
200100278 11
200100195 6
210100489 9
210100350 12
210100201 10
180100502 5
200100152 10
170100249 11
210100158 14
210100171 10
200100385 15
200100053 14
210100076 10
200100420 9
210100063 16
210100222 16
200100273 11

2023-12-04

Preparação para o teste escrito.

Ficou disponível o teste do ano anterior e a sua solução: esgts_teste_ddm_20230110_v6_sol_v2.pdf

Semana de 2023-11-26 (#11/15)

2023-11-28

Apps finais em discussão:
231128_fav_geo_places.zip [ilustra GoogleMaps, exige API KEY e pode implicar despesa - ler também 20231127_rmaps_revisiting_gmaps_and_billing_account_v5.pdf],
231128_AnimalFarm.zip [ilustra ImageView, Drawables, MediaPlayer, sons],
231127_webfavorites_v20231128.zip [nova técnica para execução de código assíncrono],
231128_PrivateTextNotes.zip [um projeto muito simples, com tratamento de teclado em EditText].

2023-11-27

Discussão das apps/projectos: 231127_webfavorites.zip ; 231121_SimplestSQLite.zip

Tarefas assíncronas em Android.

Semana de 2023-11-19 (#10/15)

2023-11-21

Escrita de uma nova aplicação "Telefonador" que faz uso de SQLite e do padrão estudado para permissões.

Objetos Spinner.

Bases de dados SQLite em Android: padrão por herança de SQLiteOpenHelper.

Ficou disponível: 231121_SimplestSQLite.zip [para estudo autónomo] ; 231121_Telefonador.zip [feito em aula]

2023-11-20

Apontamentos finais relativos ao projeto anterior: sugestão de utilizar-se "%4d-%02d-%02d" na formatação da data respondida por SAFR.

Permissões em Android: "install time", até Android 6.0; "run time" desde então.

Escrita de ferramentas genéricas relacionadas com permissões:
- consulta de GRANTED e DENIED;
- averiguação do estado.

Padrão para permissões:
- elemento uses-permission em AndroidManifest.xml;
- assunção explícita de todas as android.Manifest.permission necessárias;
- utilização das ferramentas adequadas;
- override de onRequestPermissionsResult.

Nova app/projecto "Simplest Permissions" que exemplifica o padrão e as ferramentas para a "dangerous" permission ACTION_CALL.

Ficou disponível: 231120SimplestPerms.zip ; 231107_did_v20231120.zip

Semana de 2023-11-12 (#09/15)

2023-11-14

Continuação e conclusão da app/projecto "Distance in Days".

Considerações sobre inputs do utilizador:
- android:inputType;
- objetos InputFilter;
- controlo de eventos de foco;
- utilização de expressões regulares para verificação do formato de Strings;
- utilização de setError em EditText.

Ficou disponível: 231107_did_v20231114.zip [com bug resolvida: não usar "x"=="y" mas "x".compareTo("y")==0]

2023-11-13

Continuação da app/projecto "Distance in Days".

Escrita de uma classe AmDate para aritmética entre datas e construção de objetos adequados à representação de momentos yyyy-mm-dd, utilizando Calendar.

Implementação dos padrões já estudados:
- MVC para ListView;
- "modern SAFR" para a invocação da segunda Activity DateInput, via "launcher".

Ficou disponível: 231107_did_v20231113.zip

Semana de 2023-11-05 (#08/15)

2023-11-07

Continuação e conclusão da simplest app para SAFR. SAFR baseado em "contracto".

Início da escrita de uma nova app: "Distance between dates".
Utilização do Calendar do sistema. Objetos NumberPicker. Exercícios relacionados.

Ficou disponível: 231106_safr_v231107.zip ; 231107_did_v231107.zip

2023-11-06

O padrão "Start Activity For Result" (SAFR).

Início da escrita de uma "simplest app" correspondente, para ilustração das implementações deprecated [feito] e corrente [por fazer].

Ficou disponível: 231106_safr_v231106.zip

Semana de 2023-10-29 (#07/15)

2023-10-31

Continuação e conclusão da app "PassGen".

Aleatoriedade com Strings.

MVC com ListView, ArrayAdapter, e ArrayList.

Padrão onSaveInstanceState/onRestoreInstanceState com dicionários Bundle.

Ficou disponível: 231024_PassGen_v20231031.zip

2023-10-30

Continuação da app "PassGen".

Implementação de memória de settings, via SharedPreferences.

Ficou disponível: 231024_PassGen_v20231030.zip

Semana de 2023-10-22 (#06/15)

2023-10-24

SharedPreferences: leitura e escrita. Autoria de uma aplicação minimalista para ilustrar a sua utilização, incluindo todas as escritas possíveis.

Início da App "PassGen" (Passwords Generator): desenho dos layouts e do menu.

Ficou disponível: 231024_SimplestSP.zip ; 231024_PassGen.zip

2023-10-23

Padrão para criação de menus, para Activity(ies), em Android. Exemplificação pela app "SimplestMenu".

Objetos Intent. Navegação entre Activities, em Android. Exemplificação pela app "SimplestMA".

Ficou disponível: 231023_SimplestMenu.zip ; 231023_SimplestMA.zip

Semana de 2023-10-15 (#05/15)

2023-10-17

Continuação e conclusão da app "Motivator (or not)".

Leitura e escrita em "Private Internal Storage".

Reescrita da UI com ConstraintLayout.

Introdução a múltiplas Activities.

Ficou disponível: ddm_231010_Motivator_v231017.zip

2023-10-16

Continuação da app "Motivator (or not)".

Operações sobre Strings; leitura e escrita em TextView.

Objetos ScrollView.

Introdução a problemas de manutenção de estado de apps, por motivo do ciclo de existência de Activity.

Soluções para memória não volátil.

Escrita em "Private Internal Storage". Exercícios relacionados.

Ficou disponível: ddm_231010_Motivator_v231016.zip

Semana de 2023-10-08 (#04/15)

2023-10-10

Início do projeto/app "Motivator".

Recursos do tipo array. Arrays com recursos do tipo string.

Objetos Seekbar. Leitura e escrita multi-linha em TextView.

Sobre memória não volátil em "private internal storage".

Ficou disponível: ddm_231010_Motivator.zip

2023-10-09

Continuação e conclusão da app "Four Corners".

Novas técnicas exemplificadas:
- declaração, instanciação e atribuição de "listeners" dedicados;
- suporte a multi-lingualismo, via qualifier "locale" e multiplicação de "strings.xml";
- "controlo de qualidade" de objetos relevantes;
- OnLongClickListener.

Ficou disponível: ddm_231002_FourCorners_v231009.zip

Semana de 2023-10-01 (#03/15)

2023-10-03

Continuação da app "Four Corners".

Novos layouts XML adequados ao problema:
- RelativeLayout
- ConstraintLayout

Propriedades específicas de ConstraintLayout: restrições horizontais, verticais, e resultados das suas conjugações.

Introdução ao padrão "init".

Concretização de técnicas (listeners) para comportamento (click) em Views (Button):
- por deprecated android:onClick;
- por herança de View.OnClickListener, por implementação de public void onClick(View pV).

Início da escrita de uma class ("AmUtil") de utilitários, reutilizável entre apps.

Objetos Toast. Conceito de "Context".

Ficou disponível a versão corrente da app: ddm_231002_FourCorners.zip

2023-10-02

Início do projeto/app "Four Corners".

O projeto pretende exemplificar:
- recursos em XML (Layouts e Strings);
- layouts: LinearLayout, RelativeLayout, ConstraintLayout.
- comportamentos em Java (Activity).

Propriedades específicas de LinearLayout, como orientation e layout_weight.
Propriedades específicas de RelativeLayout, como atributos de *align*.

Semana de 2023-09-24 (#02/15)

2023-09-26

Continuação e conclusão das "generalidades".

Primeira utilização do "Android Studio".

AVDs: criação e utilização de AVD(s) para correr a versão corrente da app.

Primeira app "vazia", mas com o APK correspondente comunicado por ADB para um AVD.

2023-09-25

Generalidades sobre Android.

Ficou disponível: android_generalidades_v1.pdf

Instalação do ambiente "Android Studio".

Semana de 2023-09-17 (#01/15)

2023-09-19

Sem aulas - dia reservado ao acolhimento de novos alunos.

2023-09-18

Apresentação.

Está disponível a ficha da disciplina.

Generalidades sobre "dispositivos móveis": alguma história, aspetos técnicos Android de muito alto nível, modelos de negócio comuns entre plataformas.

Alguns dos recursos livres sugeridos para a disciplina:

Recursos de relevo para emulação Android alternativa:


Desenvolvimento para Dispositivos Móveis Mobile Apps Development
arturmarques.com | entrada ; home| contacto ; contact