UNIVERSIDAD PERUANA UNIÓN
FACULTAD DE INGENIERIA Y ARQUITECTURA
Escuela Profesional de Ingeniería de Sistemas
Guía de aprendizaje 07 - Sonarlint
Curso: Pruebas y Despliegue del software
Docente: Mtro. Jose Bustamante Romero
Responsables: Jorge Martin del Águila Panduro
Rubi Esmeralda Rengifo Sinarahua
Patrick André Torres Gómez
Denis Cesar Fasanando Trigoso
Renzo Renato Upiachihua Panduro
Tarapoto, San Martín – 2024
1
INDICE
1 Introducción..................................................................................................................................3
2 Configuración del entorno.............................................................................................................3
2.1 Acceso al Marketplace de Android Studio............................................................................3
2.2 Búsqueda e Instalación de SonarLint....................................................................................3
2.3 Reinicio de Android Studio:..................................................................................................3
2.4 Análisis del Proyecto con SonarLint:.....................................................................................3
2.5 Revisión de Resultados:........................................................................................................4
3 Proyecto Analizado........................................................................................................................4
4 Resultados del Análisis..................................................................................................................4
5 Conclusiones................................................................................................................................13
2
1 Introducción
El propósito principal de la creación de una aplicación móvil es mejorar la accesibilidad y la
experiencia de los clientes de "La Panca", una pollería ubicada en Yurimaguas. La aplicación
permitirá a los clientes explorar el menú, realizar pedidos, tener una cuenta en la aplicación y
reservar de manera fácil y rápida a través de sus dispositivos móviles. Con esta innovación digital, los
clientes tendrán una forma más eficiente de interactuar con la pollería, lo que agilizará los procesos
y reducirá los tiempos de espera.
La incorporación de la aplicación móvil, que hemos nombrado 'La Panca', representa una medida
estratégica para mantener y fortalecer nuestra posición competitiva en el mercado local de venta de
pollos a la brasa en Yurimaguas. Esta aplicación impulsará diversos aspectos de nuestra pollería que
interactúan directamente con nuestros valiosos clientes, mejorando significativamente aspectos
clave de nuestro negocio, como la gestión de reservas, la configuración del menú, los métodos de
pago y otros servicios personalizados.
La industria de los restaurantes se caracteriza cada vez más por la adopción de tecnología y la
creciente demanda de soluciones digitales por parte de los consumidores. 'Panca App' nos permitirá
alinearnos con estas tendencias y ofrecer una experiencia más conveniente y eficiente a nuestros
clientes. Además, esta aplicación no solo se trata de mantenernos competitivos, sino de mejorar
continuamente la satisfacción del cliente y la eficacia operativa de la pollería 'La Panca'.
2 Configuración del entorno
2.1 Acceso al Marketplace de Android Studio
Se abrió Android Studio y se accedió al menú "Archivo".
Desde el menú desplegable, se seleccionó la opción "Configuración" (o "Settings" en
versiones en inglés).
2.2 Búsqueda e Instalación de SonarLint
En la ventana de configuración, se localizó y seleccionó la opción "Marketplace" (o "Plugins"
en versiones anteriores de Android Studio).
En el cuadro de búsqueda del Marketplace, se ingresó "SonarLint".
Se seleccionó el plugin de SonarLint y se hizo clic en el botón "Instalar".
Se siguió el proceso de instalación proporcionado por Android Studio para completar la
instalación del plugin.
2.3 Reinicio de Android Studio:
Una vez que la instalación se completó correctamente, se reinició Android Studio para
aplicar los cambios y activar el plugin de SonarLint.
2.4 Análisis del Proyecto con SonarLint:
Después de reiniciar Android Studio, se abrió el proyecto que se deseaba analizar.
En la estructura del proyecto, se hizo clic con el botón derecho en el archivo, el directorio o
el proyecto en sí mismo que se quería analizar.
En el menú contextual que apareció, se seleccionó la opción "Analizar con SonarLint".
Se esperó a que SonarLint completara el análisis del código del proyecto.
3
2.5 Revisión de Resultados:
Una vez finalizado el análisis, se abrió una pestaña o ventana en la parte inferior de Android
Studio que mostraba los resultados del análisis realizado por SonarLint.
En esta pestaña, se pudo revisar los problemas encontrados, su gravedad y detalles
adicionales proporcionados por SonarLint para cada problema identificado.
3 Proyecto Analizado
"La Panca” es una aplicación móvil desarrollada con Java en Android Studio. Su propósito principal es
mejorar la accesibilidad y la experiencia de los clientes de "La Panca", una pollería ubicada en
Yurimaguas. La aplicación permite a los clientes explorar el menú, realizar pedidos, tener una cuenta
en la aplicación y reservar de manera fácil y rápida a través de sus dispositivos móviles.
Exploración del Menú: Los usuarios pueden ver el menú completo de "La Panca" con
descripciones detalladas de cada plato y precios.
Realización de Pedidos: Los clientes pueden seleccionar los platos deseados y realizar
pedidos directamente desde la aplicación.
Gestión de Reservas: Los usuarios tienen la opción de reservar mesas en el restaurante de
manera fácil y rápida, lo que reduce los tiempos de espera.
Cuentas de Usuario: Los clientes pueden crear cuentas en la aplicación para acceder a
funcionalidades personalizadas, como historial de pedidos y preferencias de menú.
Métodos de Pago: La aplicación ofrece diversos métodos de pago seguros y convenientes
para completar las transacciones.
Mejora de la Experiencia del Cliente: "La Panca" busca mejorar continuamente la
satisfacción del cliente al proporcionar una experiencia más conveniente y eficiente.
4 Resultados del Análisis
El proyecto cuenta con 38 archivos analizados de clase y son:
4.1 CartaActivity.java
Cuenta con 22 asuntos, 2 con riesgo alto, 8 riesgo medio y 12 riesgo bajo, más detalles:
Defina una constante en lugar de duplicar este literal "Credenciales" 3 veces
Defina una constante en lugar de duplicar este literal "No existe la información" 5
veces
Proporcione el tipo parametrizado para este genérico.
Elimine este campo privado de "impuestos" no utilizado.
Elimine este campo privado "pedido" no utilizado.
Eliminar este campo privado "detallePedido" no utilizado.
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda.
Elimine el campo "adaptador" y declarelo como una variable local en los métodos
relevantes.
Haga que totalFeeTxt sea una constante final estática o no pública y proporcione
accesores si es necesario.
4
Haga que taxTxt sea una constante final estática o no pública y proporcione accesores
si es necesario.
Declare "taxTxt" y todas las declaraciones siguientes en una línea separada.
Haga que deliveryTxt sea una constante final estática o no pública y proporcione
accesores si es necesario.
Haga de totalTxt una constante final estática o no pública y proporcione accesores si es
necesario.
Haga que vacíoTxt sea una constante final estática o no pública y proporcione
accesores si es necesario.
Haga de direccionUsuarioTxt una constante final estática o no pública y proporcione
accesores si es necesario.
Declare "backBtnDos" en una línea separada.
Eliminar llaves inútiles alrededor de la declaración
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Elimine este uso de "ejecutar"; está en desuso.
4.2 CartaAdapterRecycler.java
Cuenta con 4 asuntos de riesgo bajo
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
El tipo de "listaProductoSelected" debe ser una interfaz como "List" en lugar de la
implementación "ArrayList".
Declare "feeEachItem" y todas las declaraciones siguientes en una línea separada.
Declare "num" en una línea separada.
4.3 Cliente.java
Cuenta con 1 asunto de riesgo medio.
El constructor tiene 8 parámetros, lo cual es mayor que los 7 autorizados.
4.4 ClienteAdapterRecycler.java
Cuenta con 4 asuntos, 3 con riesgo medio y 1 con riesgo bajo
Elimine este campo privado de "contexto" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
5
4.5 ConexionApi.java
Cuenta con 10 asuntos, 5 con riesgo medio y 5 con riesgo bajo
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Cambie esta referencia de instancia a una referencia estática.
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
Haga de AUTH una constante final estática o no pública y proporcione accesores si es
necesario.
Haga que este campo "AUTH público estático" sea final
Cambie el nombre de este campo a "AUTH" para que coincida con la expresión
regular '^[a-z][a-zA-Z0-9]*$'.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.6 EditarClienteActivity.java
Cuenta con 20 asuntos, 2 con riesgo alto, 10 con riesgo medio y 8 con riesgo bajo
Defina una constante en lugar de duplicar este literal "No existe la información" 3
veces.
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Elimine este campo privado de "cliente" no utilizado.
Elimine este campo privado "registrarModificar" no utilizado.
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Elimine esta asignación inútil a la variable local "clieId".
Elimine esta asignación inútil a la variable local "clieUsuaId".
Este bloque de líneas de código comentadas debe eliminarse.
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Declare "clieApellidosTxt" y todas las declaraciones siguientes en una línea separada.
Elimina el campo "registrarModificar" y declaralo como variable local en los métodos
relevantes.
Cambie el nombre de este campo a "GoBackEliminarCliente" para que coincida con la
expresión regular '^[a-z][a-zA-Z0-9]*$'.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Elimine esta variable local "clieId" no utilizada.
Elimine esta variable local "clieUsuaId" no utilizada.
Eliminar llaves inútiles alrededor de la declaración
6
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.7 EleccionMesaActivity.java
Cuenta con 7 asuntos, 1 con riesgo alto, 3 con riesgo medio y 3 con riesgo bajo
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Haga de esta clase interna anónima una lambda
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Elimine el campo "mesaRecycler" y declarelo como una variable local en los métodos
relevantes.
Elimina el campo "btnRegresarInicio" y declaralo como variable local en los métodos
relevantes.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.8 HomeFragment.java
Cuenta con 27 asuntos, 4 con riesgo alto, 16 con riesgo medio y 7 con riesgo bajo
Haga que el método adjunto sea "estático" o elimine este conjunto.
Haga que el método adjunto sea "estático" o elimine este conjunto.
Defina una constante en lugar de duplicar este literal "No existe la información" 4
veces.
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Elimine este campo privado "tipoFiltrado" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Elimine este método privado "iniciarActivity" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Elimina el campo "listaTipoProducto" y declaralo como variable local en los métodos
correspondientes.
7
Elimine el campo "requestQueue" y declarelo como una variable local en los métodos
relevantes.
Elimina el campo "listaProductoAdapterRecycler" y declaralo como variable local en
los métodos relevantes.
Elimine el campo "recyclerViewProducto" y declarelo como una variable local en los
métodos relevantes.
Declare "recyclerViewListaTipoProducto" en una línea separada.
Elimine el campo "pasarVistaReserva" y declarelo como variable local en los métodos
relevantes.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.9 ListaProductoAdapterRecycler.java
Cuenta con 5 asuntos, 2 con riesgo medio y 3 con riesgo bajo
Elimine esta asignación inútil a la variable local "selectedItem".
Haga de esta clase interna anónima una lambda
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
Cambie el nombre de este campo a "row_index" para que coincida con la expresión
regular '^[a-z][a-zA-Z0-9]*$'.
Elimine esta variable local "selectedItem" no utilizada.
4.10 LoginActivity.java
Cuenta con 24 asuntos, 1 con riesgo alto, 14 con riesgo medio y 9 con riesgo bajo
Defina una constante en lugar de duplicar este literal "No existe la información" 7
veces.
Elimine este parámetro de método no utilizado "vista".
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Elimina este método privado "cargarPreferencias" no utilizado.
Elimine esta asignación inútil a la variable local "clieIdRecibido".
Elimine esta asignación inútil a la variable local "usuaIdRecibido".
Elimine esta asignación inútil a la variable local "clieDireccionRecibido".
Elimina esta asignación inútil a la variable local "clieCorreoRecibido".
Elimine esta asignación inútil a la variable local "usuaUsernameRecibido".
Elimine esta asignación inútil a la variable local "clieNombresRecibido".
Elimine esta asignación inútil a la variable local "clieApellidosRecibido".
Elimine este parámetro de método no utilizado "vista".
Elimine este parámetro de método no utilizado "vista".
Declare "txtPass" en una línea separada.
8
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Elimine esta variable local "clieIdRecibido" no utilizada.
Elimine esta variable local "usuaIdRecibido" no utilizada.
Elimine esta variable local "clieDireccionRecibido" no utilizada.
Elimine esta variable local "clieCorreoRecibido" no utilizada.
Elimine esta variable local "usuaUsernameRecibido" no utilizada.
Elimine esta variable local "clieNombresRecibido" no utilizada.
Elimine esta variable local "clieApellidosRecibido" no utilizada.
4.11 MailJob.java
Cuenta con 3 asuntos, 1 con riesgo medio y 2 con riesgo bajo
Agregue la anotación "@Override" encima de la firma de este método.
Eliminar este uso de "AsyncTask"; está en desuso.
Elimine este uso de "<init>"; está en desuso.
4.12 MainActivity.java
Cuenta con 17 asuntos, 5 con riesgo alto, 4 con riesgo medio y 8 con riesgo bajo
Agregue un caso predeterminado a este modificador.
Defina una constante en lugar de duplicar este literal "Credenciales" 3 veces.
Defina una constante en lugar de duplicar este literal "clieCorreo" 3 veces.
Defina una constante en lugar de duplicar este literal "No existe la información" 12
veces.
Defina una constante en lugar de duplicar este literal "usuaUsername" 3 veces.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Elimine esta asignación inútil a la variable local "headerView".
Elimine esta asignación inútil a la variable local "headerView".
Eliminar este uso de "NetworkInfo"; está en desuso.
Eliminar este uso de "getActiveNetworkInfo"; está en desuso.
Eliminar este uso de "isConnected"; está en desuso.
No anule un método obsoleto ni lo marque explícitamente como "@Deprecated".
Elimine esta variable local "headerView" no utilizada.
Reemplace esta declaración if-then-else por una invocación de método único.
Elimine esta variable local "headerView" no utilizada.
Reemplace esta declaración if-then-else por una invocación de método único.
4.13 ManejarCarta.java
Cuenta con 4 asuntos, 1 con riesgo alto y 3 con riesgo bajo
Defina una constante en lugar de duplicar este literal "CartList" 4 veces.
9
El tipo de retorno de este método debe ser una interfaz como "List" en lugar de la
implementación "ArrayList".
El tipo de "listaProducto" debe ser una interfaz como "List" en lugar de la
implementación "ArrayList".
El tipo de "listaProducto" debe ser una interfaz como "List" en lugar de la
implementación "ArrayList".
4.14 MesaAdapterRecycler.java
Cuenta con 6 asuntos, 3 con riesgo medio y 3 con riesgo bajo
Elimine este campo privado de "contexto" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
Cambie el nombre de este campo a "NameMesa" para que coincida con la expresión
regular '^[a-z][a-zA-Z0-9]*$'.
Declare "cantidadPersonas" y todas las declaraciones siguientes en una línea separada.
4.15 Producto.java
Cuenta con 1 asunto de riesgo medio
El constructor tiene 8 parámetros, lo cual es mayor que los 7 autorizados.
4.16 ProductoAdapterRecycler.java
Cuenta con 4 asuntos, 1 con riesgo medio y 3 con riesgo bajo
Haga de esta clase interna anónima una lambda
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
Declare "timeTxt" y todas las declaraciones siguientes en una línea separada.
Cambie el nombre de este campo a "ScoreTxt" para que coincida con la expresión
regular '^[a-z][a-zA-Z0-9]*$'.
4.17 ProductoDetallesActivity.java
Cuenta con 8 asuntos, 1 con riesgo alto, 3 con riesgo medio y 4 con riesgo bajo
Defina una constante en lugar de duplicar este literal "Agregar a tu carta - S/." 3 veces.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Este bloque de líneas de código comentadas debe eliminarse.
Declare "minusBtn" y todas las declaraciones siguientes en una línea separada.
10
Elimina el campo "producto" y declaralo como variable local en los métodos
relevantes.
Eliminar este uso de "getSerializableExtra"; está en desuso.
Reemplace esta declaración if-then-else por una invocación de método único.
4.18 ProfileFragment.java
Cuenta con 19 asuntos, 4 con riesgo alto, 10 con riesgo medio y 5 con riesgo bajo
Defina una constante en lugar de duplicar este literal "Credenciales" 3 veces.
Defina una constante en lugar de duplicar este literal "No existe la información" 12
veces.
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Declare "direccionClienteTxt" y todas las declaraciones siguientes en una línea
separada.
Cambie el nombre de esta variable local para que coincida con la expresión regular
'^[a-z][a-zA-Z0-9]*$'.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Cambie el nombre de esta variable local para que coincida con la expresión regular
'^[a-z][a-zA-Z0-9]*$'.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.19 RecuperarContraActivity.java
Cuenta con 5 asuntos, 4 con riesgo medio y 1 con riesgo bajo
Elimine este parámetro de método no utilizado "vista".
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
11
4.20 RegistrarClienteActivity.java
Cuenta con 15 asuntos, 9 con riesgo medio y 6 con riesgo bajo
Elimine este campo privado de "cliente" no utilizado.
Elimine este campo privado "registrarModificar" no utilizado.
Elimine este campo privado "registrarClienteBtn" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Elimine este método privado "modoRegistroModificacion" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Elimine este parámetro de método no utilizado "vista".
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Declare "clieApellidosTxt" y todas las declaraciones siguientes en una línea separada.
Elimina el campo "registrarModificar" y declaralo como variable local en los métodos
relevantes.
Elimine el campo "registrarClienteBtn" y declarelo como una variable local en los
métodos relevantes.
Elimine el campo "contexto" y declarelo como una variable local en los métodos
relevantes.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Cambie el nombre de este método para que coincida con la expresión regular '^[a-z][a-
zA-Z0-9]*$'.
4.21 RegistrarUsuarioActivity.java
Cuenta con 10 asuntos, 7 con riesgo medio y 3 con riesgo bajo
Elimine este campo privado "usuaIdTxt" no utilizado.
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Declare "contrasenaTxt" y todas las declaraciones siguientes en una línea separada.
Elimine el campo "usuaIdTxt" y declarelo como una variable local en los métodos
relevantes.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.22 ReservaActivity.java
Cuenta con 30 asuntos, 17 riesgo medio y 13 riesgo bajo
Elimine este campo privado "cantidadPersonas" no utilizado.
12
Elimine este campo privado "mesaImg" no utilizado.
Elimine este campo privado "recyclerMesaSelected" no utilizado.
Elimine este campo privado "recyclerViewEnabled" no utilizado.
Proporcione el tipo parametrizado para este genérico.
Elimine este campo privado "adaptador" no utilizado.
Elimine este campo privado "clieId" no utilizado.
Elimine este parámetro de método no utilizado "vista".
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Elimine este parámetro de método no utilizado "vista".
Haga de esta clase interna anónima una lambda
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Elimine este parámetro de método no utilizado "vista".
Elimine este método privado "validarCantidadPersona" no utilizado.
Declare "horaReserva" y todas las declaraciones siguientes en una línea separada.
Declara "cantidadPersonas" en una línea aparte.
Declare "bHora" en una línea separada.
Elimine el campo "dia" y declarelo como una variable local en los métodos relevantes.
Elimine el campo "mes" y declarelo como una variable local en los métodos
relevantes.
Declare "mes" y todas las declaraciones siguientes en una línea separada.
Elimine el campo "anio" y declarelo como una variable local en los métodos
relevantes.
Elimine el campo "hora" y declarelo como una variable local en los métodos
relevantes.
Elimine el campo "minutos" y declarelo como una variable local en los métodos
relevantes.
Elimine el campo "mesa" y declarelo como una variable local en los métodos
relevantes.
Declare "clieId" y todas las declaraciones siguientes en una línea separada.
Eliminar este uso de "getSerializableExtra"; está en desuso.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.23 ReservaAdapterRecycler.java
Cuenta con 5 asuntos, 2 con riesgo medio y 3 con riesgo bajo
Elimine este campo privado de "contexto" no utilizado.
Este bloque de líneas de código comentadas debe eliminarse.
Cambie el nombre de este paquete para que coincida con la expresión regular '^[a-z_]+
(\.[a-z_][a-z0-9_]*)*$'.
El tipo de "listaFiltrada" debe ser una interfaz como "List" en lugar de la
implementación "ArrayList".
Declare "reservaFecha" y todas las declaraciones siguientes en una línea separada.
13
4.24 ReserveFragment.java
Cuenta con 11 asuntos, 1 riesgo alto, 5 riesgo medio y 5 riesgo bajo
Agregue un comentario anidado que explique por qué este método está vacío, genere
una excepción UnsupportedOperationException o complete la implementación.
Elimine este campo privado "tipoFiltrado" no utilizado.
Haga de esta clase interna anónima una lambda
Este bloque de líneas de código comentadas debe eliminarse.
Defina y lance una excepción dedicada en lugar de usar una genérica.
Haga de esta clase interna anónima una lambda
Elimine el campo "requestQueue" y declarelo como una variable local en los métodos
relevantes.
Elimina el campo "reservaRecycler" y declaralo como variable local en los métodos
relevantes.
Elimina el campo "tipoFiltrado" y declaralo como variable local en los métodos
relevantes.
Cambie el nombre de esta variable local para que coincida con la expresión regular
'^[a-z][a-zA-Z0-9]*$'.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.25 RestablecerContraActivity.java
Cuenta con 13 asuntos, 8 riesgo medio y 5 riesgo bajo
Elimine este parámetro de método no utilizado "v".
Elimine este método privado de "regresar" no utilizado.
Haga de esta clase interna anónima una lambda
Elimine esta asignación inútil a la variable local "usuaTiusId".
Elimine esta asignación inútil a la variable local "usuaPassword".
Este bloque de líneas de código comentadas debe eliminarse.
Haga de esta clase interna anónima una lambda
Reemplace este uso de System.out por un registrador.
Declare "contraRestablecerConfirmar" y todas las declaraciones siguientes en una
línea separada.
Elimine esta variable local "usuaTiusId" no utilizada.
Elimine esta variable local "usuaPassword" no utilizada.
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
Reemplace la especificación de tipo en esta llamada al constructor con el operador de
diamante ("<>").
4.26 StartApp.java
Cuenta con 3 asuntos de riesgo medio
14
Agregue la anotación "@Override" encima de la firma de este método.
Este bloque de líneas de código comentadas debe eliminarse.
Vuelva a interrumpir este método o vuelva a lanzar la "InterruptedException" que se
puede detectar aquí.
5 ANEXOS
Estructura de las clases java analizados del proyecto
Adjunto imágenes del análisis del proyecto con SonarLint
15
Como se dividen los asuntos mediante el tipo de riesgo
Link de github del proyecto analizado: https://github.com/renzzoupia/app-la-panca.git
16