Proyecto para Programaciรณn Multimedia y Dispositivos Mรณviles 2020-2021 por Carlos Vรญllora Tercero.
Tenรญa que hacer una aplicaciรณn con mapas y ubicaciรณn. Para eso querรญa aรฑadir a un mapa informaciรณn adicional y pensรฉ utilizar viviendas y contacte con idealista para que me diera una API para el desarrollo que solo permite 100 llamadas al mes cuidado con eso.
Clona el proyecto en android studio y copia o crea el fichero Secrets.properties en la raรญz del proyecto. Este fichero no lo subirรฉ a github porque contiene mi clave privada, esta clase tiene una variable llamada auth
con la auth de idealista API y los ficheros correspondientes a la API de mapas, se puede utilizar en fragmentMaps.java el repositorio falso para minimizar el uso de llamadas.
Todo en espaรฑol a demanda del profesor, aunque quizรกs se me vaya la pinza y ponga algo en inglรฉs, o usos especรญficos como en la clase Vivienda estรก en inglรฉs para adaptar el json por ejemplo.
La aplicaciรณn se ha hecho con un nivel mรญnimo de API 22 (Lollipop). Se utilizarรกn dependencias de okhttp para hacer llamadas http y jackson para convertir json a clases POJO , eso se puede ver en el gradle.
Consta de un mapa en el que pasado el suficiente tiempo se obtendrรก la localizaciรณn, iniciarรก un audio y mostrarรก en el mapa las viviendas que puedes comprar. Aquรญ hay un dialogo para elegir entre Venta y Compra en el menรบ superior derecho y otro botรณn del menรบ para ir al listado de viviendas obtenidas.
Se muestran las distintas vivienda obtenidas anteriormente y se pasarรกn a travรฉs de Intent dรณnde las imรกgenes se descargarรกn de nuevo.
La aplicaciรณn se dividirรก en 4 capas que serรกn las siguientes:
Todos los datos e interfaces hacia la infrastructura.
Clases para conectar con la api,
Todas las clases que gestionan la UI, activities, etc. desde Java.
Los ficheros en res son la parte de la interfaz grรกfica.
Eso estรก explicado en la parte de pantallas, los 2 primeros son los activities mapa, listado.
La actividad mapa pasa un Parcelable a la actividad listado.
La actividad mapa realiza un sonido mรญo hablando al actualizar las viviendas.
La actividad mapa utiliza tanto mapas como localizaciรณn.
Guarda en preferencias el auth obtenido de la api que caduca a las 12 horas para poder reutilizarlo sin pedirlo cada vez que sea necesario, eso estรก en esta clase.
Contiene un dialogo para elegir entre compra y ventas, tambiรฉn aparece un Toast si se intenta cargar las viviendas antes de que las cargue el mapa
7) Presentaciรณn grรกfica y el uso de elementos no vistos en clase (menรบs, pestaรฑas, controles personalizados, etc)
Nada en especial, un mapa y un RecyclerView muy sencillo, he preferido no dedicarle tiempo a eso
La llamada a la api si cuentas el Backend, pero he intentado solo utilizar cosas vistas en clase
He utilizado una API de idealista porque creo que es la que mejor trabaja en Albacete.
Tambiรฉn he aรฑadido unos pocos test unitarios para ir desarrollando cosas especรญficas como la convierte el JSON a POJO. Tambiรฉn tengo tests instrumentados para comprobar el funcionamiento real de la API antes de hacer la interfaz grรกfica.
He utilizado git con github para el control de versiones como de costumbre aunque cree de nuevo el proyecto cuando se me filtro la autenticaciรณn de idealista en el historial
Tenรญa prisas y poco tiempo y no querรญa alargar o mejorar este proyecto, asรญ que la parte del fragmento y demรกs esta todo muy solapado
Aunque tenga algo montado para el control de excepciones nada llega a la ui, asรญ que no me he molestado en implementarlo bien, si te da algรบn fallo avรญsame
Al descargar de nuevo las imรกgenes estas no se actualizan hasta deslizar abajo y arriba en el RecyclerView
No me he molestado en mejorar el texto ni nada
Esta es la respuesta que me dio a 100 metros del instituto
{
"elementList": [
{
"propertyCode": "40013150",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/4e/cb/00/668266794.jpg",
"externalReference": "40243",
"numPhotos": 13,
"floor": "bj",
"price": 380000.0,
"propertyType": "chalet",
"operation": "sale",
"size": 257.0,
"exterior": false,
"rooms": 3,
"bathrooms": 3,
"address": "San Pablo - Santa Teresa",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9885703,
"longitude": -1.8693012,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/40013150/",
"distance": "34",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"parkingSpace": {
"hasParkingSpace": true,
"isParkingSpaceIncludedInPrice": true
},
"priceByArea": 1479.0,
"detailedType": {
"typology": "chalet",
"subTypology": "terracedHouse"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Chalet adosado"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "35756521",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/ba/8b/5e/668738871.jpg",
"externalReference": "JV25",
"numPhotos": 37,
"floor": "bj",
"price": 380000.0,
"propertyType": "chalet",
"operation": "sale",
"size": 220.0,
"exterior": false,
"rooms": 3,
"bathrooms": 3,
"address": "San Pablo - Santa Teresa",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9880703,
"longitude": -1.8695012,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/35756521/",
"distance": "72",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"parkingSpace": {
"hasParkingSpace": true,
"isParkingSpaceIncludedInPrice": true
},
"priceByArea": 1727.0,
"detailedType": {
"typology": "chalet",
"subTypology": "terracedHouse"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Chalet adosado"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "86611855",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/17/65/23/698059991.jpg",
"numPhotos": 12,
"floor": "2",
"price": 62000.0,
"propertyType": "flat",
"operation": "sale",
"size": 125.0,
"exterior": true,
"rooms": 4,
"bathrooms": 2,
"address": "Calle Donantes de Sangre",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9890615,
"longitude": -1.8696366,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/86611855/",
"distance": "39",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"hasLift": false,
"priceByArea": 496.0,
"detailedType": {
"typology": "flat"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Piso en Calle Donantes de Sangre"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "88233836",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/4c/8d/12/741984820.jpg",
"externalReference": "ARK-318",
"numPhotos": 25,
"floor": "1",
"price": 68000.0,
"propertyType": "flat",
"operation": "sale",
"size": 70.0,
"exterior": true,
"rooms": 3,
"bathrooms": 1,
"address": "San Pablo - Santa Teresa",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9884611,
"longitude": -1.8700591,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/88233836/",
"distance": "44",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"hasLift": false,
"parkingSpace": {
"hasParkingSpace": true,
"isParkingSpaceIncludedInPrice": true
},
"priceByArea": 971.0,
"detailedType": {
"typology": "flat"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Piso"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "83250764",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/ce/df/7f/810402587.jpg",
"externalReference": "NV0073",
"numPhotos": 13,
"floor": "3",
"price": 129000.0,
"propertyType": "flat",
"operation": "sale",
"size": 115.0,
"exterior": true,
"rooms": 4,
"bathrooms": 2,
"address": "Franciscanos",
"province": "Albacete",
"municipality": "Albacete",
"district": "Franciscanos",
"country": "es",
"latitude": 38.987953,
"longitude": -1.8690335,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/83250764/",
"distance": "99",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"hasLift": true,
"priceByArea": 1122.0,
"detailedType": {
"typology": "flat"
},
"suggestedTexts": {
"subtitle": "Franciscanos, Albacete",
"title": "Piso"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "81678146",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/3c/7b/ff/835433070.jpg",
"externalReference": "VS-233",
"numPhotos": 4,
"floor": "bj",
"price": 60000.0,
"propertyType": "flat",
"operation": "sale",
"size": 85.0,
"exterior": false,
"rooms": 3,
"bathrooms": 1,
"address": "San Pablo - Santa Teresa",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9893094,
"longitude": -1.8692513,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/81678146/",
"distance": "75",
"hasVideo": false,
"status": "renew",
"newDevelopment": false,
"hasLift": true,
"priceByArea": 706.0,
"detailedType": {
"typology": "flat"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Piso"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
},
{
"propertyCode": "90461030",
"thumbnail": "https://img3.idealista.com/blur/WEB_LISTING/0/id.pro.es.image.master/4e/4f/9f/790904939.jpg",
"externalReference": "1203-1203",
"numPhotos": 14,
"floor": "2",
"price": 65000.0,
"propertyType": "flat",
"operation": "sale",
"size": 86.0,
"exterior": false,
"rooms": 4,
"bathrooms": 1,
"address": "San Pablo - Santa Teresa",
"province": "Albacete",
"municipality": "Albacete",
"district": "San Pablo - Santa Teresa",
"country": "es",
"latitude": 38.9888199,
"longitude": -1.870092,
"showAddress": false,
"url": "https://www.idealista.com/inmueble/90461030/",
"distance": "39",
"hasVideo": false,
"status": "good",
"newDevelopment": false,
"priceByArea": 756.0,
"detailedType": {
"typology": "flat"
},
"suggestedTexts": {
"subtitle": "San Pablo - Santa Teresa, Albacete",
"title": "Piso"
},
"hasPlan": false,
"has3DTour": false,
"has360": false,
"hasStaging": false,
"topNewDevelopment": false
}
],
"total": 7,
"totalPages": 1,
"actualPage": 1,
"itemsPerPage": 20,
"numPaginations": 0,
"hiddenResults": false,
"summary": [
"Comprar",
"Viviendas",
"distrito San Pablo - Santa Teresa, Albacete",
"Todos los precios",
"Todos los tamaรฑos"
],
"lowerRangePosition": 0,
"upperRangePosition": 7,
"paginable": false
}