Cómo solicitar la calificación de tu aplicación Flutter con in_app_review
Uno de los factores que más influyen en el éxito de una aplicación móvil es su calificación en las tiendas. Una aplicación con una valoración promedio de 4,8 estrellas genera mucha más confianza que otra con 3,7, lo que puede traducirse en un mayor número de descargas y mejores tasas de conversión.
Sin embargo, muchos desarrolladores esperan que el usuario ingrese voluntariamente a Google Play o App Store para dejar una reseña. En la práctica, esto ocurre muy pocas veces.
Flutter ofrece una solución sencilla mediante el paquete in_app_review, que permite solicitar la valoración directamente desde la aplicación, sin que el usuario tenga que abandonar la experiencia de uso.
¿Qué es in_app_review?
in_app_review es un paquete oficial para Flutter que utiliza las APIs nativas de cada plataforma:
- Google Play In-App Review API en Android.
- SKStoreReviewController en iOS.
Cuando se cumplen las condiciones establecidas por cada plataforma, se muestra un pequeño cuadro de diálogo para que el usuario valore la aplicación sin necesidad de abrir la tienda.
Ventajas de utilizar in_app_review
Entre sus principales beneficios se encuentran:
- Incrementa la cantidad de valoraciones recibidas.
- Mejora la calificación promedio de la aplicación.
- El usuario no necesita abandonar la app.
- La integración es muy sencilla.
- Funciona tanto en Android como en iOS.
- Aprovecha las APIs oficiales de Google y Apple.
Instalación
Agregar la dependencia al archivo pubspec.yaml:
dependencies:
flutter:
sdk: flutter
in_app_review: ^2.0.10
Luego ejecutar:
flutter pub get
Importar el paquete:
import 'package:in_app_review/in_app_review.dart';
Centralizando la funcionalidad
Una buena práctica consiste en encapsular toda la lógica en una clase utilitaria. De esta manera, cualquier pantalla de la aplicación podrá solicitar la valoración mediante una única llamada.
import 'package:in_app_review/in_app_review.dart';
class Util {
static final Util _instance = Util._init();
factory Util() => _instance;
Util._init();
Future<void> showValorateApp({bool forceStore = false}) async {
final available = await InAppReview.instance.isAvailable();
if (available && !forceStore) {
await InAppReview.instance.requestReview();
} else {
await InAppReview.instance.openStoreListing();
}
}
}
Esta implementación presenta varias ventajas:
- Toda la lógica queda centralizada en un único lugar.
- El resto de la aplicación no necesita conocer cómo funciona
in_app_review. - Si en el futuro cambia la implementación, sólo será necesario modificar esta clase.
¿Cómo funciona?
El método showValorateApp() sigue una lógica muy simple:
- Consulta si las In-App Reviews están disponibles en el dispositivo.
- Si están disponibles, solicita la valoración dentro de la aplicación.
- Si no lo están, o si se recibe
forceStore = true, abre directamente la ficha de la aplicación en la tienda correspondiente.
Esto permite ofrecer siempre una alternativa al usuario.
Utilizando la clase
Desde cualquier parte de la aplicación simplemente se invoca:
await Util().showValorateApp();
En este caso, la aplicación intentará mostrar el cuadro de valoración integrado.
Si se desea abrir directamente la página de la aplicación en Google Play o App Store, por ejemplo desde un botón «Calificar aplicación», basta con utilizar:
await Util().showValorateApp(forceStore: true);
¿Cuándo conviene solicitar la valoración?
Elegir el momento adecuado es mucho más importante que la implementación técnica.
Algunos buenos escenarios son:
- Después de generar un nuevo CV.
- Al finalizar exitosamente una simulación.
- Luego de exportar un documento.
- Después de completar una compra.
- Cuando el usuario alcanza un objetivo importante dentro de la aplicación.
En estos momentos el usuario acaba de obtener un beneficio y es mucho más probable que deje una valoración positiva.
¿Cuándo no debería solicitarse?
Evite mostrar la solicitud:
- Al abrir la aplicación por primera vez.
- Durante el proceso de registro.
- Mientras el usuario está realizando una tarea importante.
- Después de mostrar un error.
- Repetidamente en cada inicio de la aplicación.
Solicitar una valoración en momentos inadecuados suele generar el efecto contrario al esperado.
Consideraciones importantes
Es importante comprender que ejecutar:
await InAppReview.instance.requestReview();
no garantiza que el cuadro de valoración vaya a mostrarse.
La decisión final depende de Google Play y App Store, que consideran diversos factores internos, entre ellos:
- Cantidad de veces que ya se solicitó la valoración.
- Frecuencia de uso de la aplicación.
- Tiempo transcurrido desde la última solicitud.
- Políticas internas de cada plataforma.
Por este motivo, durante las pruebas es completamente normal que el diálogo no aparezca siempre.
Buenas prácticas
Una estrategia recomendable consiste en combinar in_app_review con alguna forma de persistencia local, por ejemplo utilizando shared_preferences, para controlar cuándo fue la última vez que se solicitó una valoración.
Algunas estrategias habituales son:
- Solicitarla únicamente después de que el usuario haya utilizado la aplicación varias veces.
- Mostrarla tras completar una acción importante.
- Esperar varios meses antes de volver a solicitarla.
Aunque Google y Apple ya limitan automáticamente la frecuencia, controlar también este comportamiento desde la aplicación mejora la experiencia del usuario.
Conclusión
El paquete in_app_review permite integrar en muy pocos minutos una funcionalidad que puede tener un impacto significativo en la reputación de una aplicación dentro de las tiendas.
La implementación es sencilla, pero el verdadero éxito depende de solicitar la valoración en el momento adecuado. Mostrar el diálogo después de que el usuario complete una acción satisfactoria, y evitando hacerlo de forma insistente, incrementa considerablemente las probabilidades de obtener reseñas positivas y mejorar la visibilidad de la aplicación en Google Play y App Store.
¿Querés el proceso completo, paso a paso?
La guía 2026 cubre los 6 pasos con capturas reales de cada pantalla, el checklist final de 20 puntos y la plantilla de política de privacidad.