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:
arturmarques.com | entrada ; home| contacto ; contact |