La programació és una ciència principalment pràctica i, com la majoria de ciències pràctiques, està estructurada en projectes. Aquesta és la premissa de la qual parteix l’assignatura de Projectes de Programació II. L’objectiu principal de l’assignatura és ampliar els coneixements dels alumnes en el camp de la programació, presentant-los un nou àmbit: la programació per a dispositius mòbils. Atès que el món de la programació per a dispositius mòbils és molt ampli, l’assignatura se centrarà en el sistema que, de moment, té una major presència al mercat. Aquest sistema és Android.
L’assignatura tindrà també com a objectiu dotar l’alumne de tècniques i coneixements que li permetin afrontar el món de la programació amb les eines necessàries. L’assignatura pretén utilitzar una metodologia eminentment pràctica amb la finalitat d’impartir el nou coneixement. D’aquesta manera, serà habitual que els coneixements vagin acompanyats d’exercicis i/o projectes, tant individuals com en equip.
Professors Titulars
Professors Docents
Es recomana que l'alumne tingui coneixements bàsics de programació en llenguatges orientats a objectes, en Java, així com una comprensió general dels conceptes de desenvolupament de programari. També és convenient estar familiaritzat amb les bones pràctiques de disseny i estructuració de codi.
1. Introducció a el desenvolupament en tecnologies mòbils
2. Introducció a la plataforma Android i al ser entorn de desenvolupament
3. Desenvolupament d'interfícies d’usuari i interacció amb l’usuari
4. Aplicacions amb múltiples activitats i fragments en Android
5. Interfícies d'usuari flexibles i adaptables
6. Gestió i obtenció de dades de serveis remots i backend
7. Mapes i ús de serveis de tercers
L’assignatura es basa en la metodologia Project-Based Learning (PBL), una metodologia docent en què l’alumne adquireix els coneixements mitjançant el desenvolupament d’un projecte, seguint el principi de Learn by Doing o “aprendre fent”.
En el marc de l’assignatura Projectes de Programació II, es considera que la millor manera de consolidar els coneixements és a través del desenvolupament d’un projecte complet, abastant totes les fases del cicle de vida del programari: des de l’anàlisi dels requeriments fins a la implementació, les proves i la demostració del software.
El treball es realitza en equips, incorporant tècniques de programació col·laborativa, com el pair programming, que promou el treball conjunt de dos estudiants sobre el mateix codi, afavorint la qualitat del desenvolupament, la revisió contínua i l’aprenentatge compartit.
Els aspectes relacionats amb el desenvolupament del projecte com la planificació, la coordinació de l’equip, la comunicació, la presentació oral i la resolució de conflictes es consideren part integrant del procés formatiu i contribueixen a l’adquisició de competències professionals pròpies de l’àmbit de l’enginyeria.
Concretament, els estudiants desenvolupen un projecte de programació en Android en equips, combinant hores de treball presencial a l’aula amb hores de treball autònom. La dedicació total del projecte s’ajusta als crèdits ECTS assignats a l’assignatura.
La nota de l'assignatura es calcularà a partir del conjunt d'exercicis i la pràctica que desenvolupin al llarg de l'assignatura: Nota assignatura = 30% * Nota_Exercicis + 70% * Nota_Pràctica El professor realizarà un seguiment regular a l'aula amb els grups. Es podran realitzar entrevistes individuals i grupals. Els alumnes realitzaran demostracions del seu projecte de software, justificant les decisions de disseny, implementació, etc. L'assignatura no s'avaluarà mitjançant exàmens, de forma que no hi haurà examen semestral.
- Aplicar correctament els coneixements de programació mitjançant el desenvolupament d’activitats pràctiques i projectes.
- Dissenyar i implementar solucions de programari funcionals i tècnicament correctes d’acord amb els requisits plantejats.
- Assolir els criteris tècnics i funcionals definits a la rúbrica del projecte.
- Demostrar capacitat de treball continuat i progressiu al llarg del semestre.
- Participar activament a l’aula i mostrar implicació en el desenvolupament de les activitats i del projecte.
- Treballar de manera efectiva en equip, assumint responsabilitats individuals dins del projecte col·lectiu.
- Justificar les decisions tècniques adoptades durant el desenvolupament del projecte en entrevistes individuals o grupals.
- Evidenciar autonomia, iniciativa i capacitat de resolució de problemes.
- Complir els criteris mínims establerts a l’enunciat del projecte.
Android Programming: The Big Nerd Ranch Guide (3rd Edition)
- ISBN-13: 978-0134706054
- ISBN-10: 0134706056
Android Studio 3.5 Development Essentials - Java Edition: Developing Android 10 (Q) Apps Using Android Studio 3.5, Java and Android Jetpack
- ISBN-13: 978-1951442019
- ISBN-10: 1951442016
Jetpack Compose 1.8 Essentials: Developing Android Apps with Jetpack Compose 1.8, Android Studio, and Kotlin
- ISBN-13: 978-1965764190
- ISBN-10: 1965764193
GENERAL https://developer.android.com/guide/index.html https://developer.android.com/guide/index.html https://developer.android.com/about/dashboards/index.html TEMA 1 https://developer.android.com/studio/index.html http://socialcompare.com/en/comparison/android-versions-comparison https://developer.android.com/studio/run/oem-usb.html TEMA 2 https://material.io/guidelines/ https://developer.android.com/design/material/index.html https://developer.android.com/training/material/index.html https://developer.android.com/guide/topics/ui/declaring-layout.html http://www.vogella.com/tutorials/AndroidListView/article.html https://www.raywenderlich.com/124438/android-listview-tutorial https://material.io/guidelines/components/snackbars-toasts.html http://www.truiton.com/2015/06/android-snackbar-example/ https://developer.android.com/training/appbar/index.html http://www.vogella.com/tutorials/AndroidActionBar/article.html https://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/ https://developer.android.com/guide/topics/ui/dialogs.html https://material.io/guidelines/components/dialogs.html TEMA 3 https://developer.android.com/guide/components/intents-filters.html TEMA 4 https://developer.android.com/guide/components/fragments.html https://www.pluralsight.com/blog/software-development/android-fragments https://medium.com/@ali.muzaffar/should-i-use-fragment-or-activity-in-android-5dbcc2703ecc TEMA 5 https://developer.android.com/training/basics/data-storage/databases.html http://www.vogella.com/tutorials/AndroidSQLite/article.html#creating-and-updating-database-with-sqliteopenhelper https://developer.android.com/guide/components/broadcasts.html http://www.vogella.com/tutorials/AndroidBroadcastReceiver/article.html https://developer.android.com/training/basics/network-ops/connecting.html https://developer.android.com/reference/java/net/HttpURLConnection.html https://developer.android.com/reference/android/os/AsyncTask.html http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html http://www.androidhive.info/2014/05/android-working-with-volley-library-1/ https://developer.android.com/training/volley/index.html TEMA 6 https://developer.android.com/training/location/index.html https://developer.android.com/guide/topics/location/strategies.html https://developer.android.com/guide/topics/location/index.html https://developer.android.com/training/permissions/requesting.html http://www.vogella.com/tutorials/AndroidPermissions/article.html