Flutter
Internet Connection Monitor
Desarrollé esta librería para que una app pueda comprobar si tiene acceso a Internet y avisar cuando la conexión se pierde o vuelve. Si una revisión falla, lo intenta de nuevo antes de confirmar que no hay conexión. Puedes usarla, por ejemplo, para mostrar un mensaje de «Sin Internet» o añadir un botón de «Reintentar».
Mi aporte
Creé la librería y preparé las pruebas, las instrucciones y los ejemplos de uso.
Para qué sirve
Puedes usarla en distintas apps y elegir cómo mostrar los avisos. Está disponible en pub.dev y su código se puede consultar en GitHub.
- Herramientas
- 3
- Funciones
- 5
- Imágenes
- 1
Cómo funciona
En tres pasos
Tu app pide una revisión y recibe una respuesta sobre su conexión.
Código de ejemplo
Pruébala con este ejemplo
Añade la librería a tu proyecto y usa este código para saber si hay Internet. También muestra cómo volver a revisar cuando lo necesites.
Añade la librería
dart pub add internet_connection_monitorQué deberías observar
Este comando añade la librería a tu proyecto para que puedas usarla.
Revisa si hay Internet
import 'package:internet_connection_monitor/internet_connection_monitor.dart'; Future<void> main() async { final monitor = InternetConnectionMonitor(); final subscription = monitor.changes.listen((status) { print('Cambio de conexión: ${status.name}'); }); try { print('Estado inicial: ${monitor.status.name}'); await monitor.start(); print('Estado tras comprobar: ${monitor.status.name}'); // Esta demo permanece activa durante 10 segundos. await Future<void>.delayed(const Duration(seconds: 10)); // También puedes llamar a check() desde un botón de reintento. await monitor.check(); } finally { await subscription.cancel(); await monitor.dispose(); }}Qué deberías observar
Al empezar aparece unknown (todavía sin comprobar). Después verás online (con Internet) u offline (sin Internet), según el resultado. Este ejemplo funciona 10 segundos, vuelve a revisar y luego se detiene.
Para probarlo desde la terminal, guarda el código en bin/main.dart y ejecuta dart run bin/main.dart. Las últimas líneas detienen las revisiones cuando termina el ejemplo. En una app, deja la revisión activa mientras la necesites y detenla cuando ya no la vayas a usar.
Qué problema resuelve
Una app puede estar conectada al Wi-Fi y aun así no tener Internet. Si no detecta eso, puede quedarse esperando o mostrar errores que no ayudan al usuario.
Cómo lo resuelve
La librería revisa si hay Internet, sigue comprobándolo cada cierto tiempo y le avisa a tu app cuando la conexión cambia. Tu app puede mostrar un mensaje o volver a intentar una acción cuando la conexión regrese.
Qué hace la librería
- Prueba otra dirección de Internet si la primera no responde.
- Revisa dos veces antes de avisar que no hay Internet, para evitar falsas alarmas.
- Sigue revisando la conexión y avisa cuando se pierde o vuelve.
- Puedes elegir cada cuánto revisar y pedir una nueva revisión cuando quieras.
- Puedes detener las revisiones cuando ya no necesites usarla.
Lo que aprendí
- Tener Wi-Fi no siempre significa tener Internet.
- Una segunda revisión ayuda a evitar avisos por fallos pasajeros.
- Probar qué ocurre cuando Internet se pierde y vuelve ayuda a que los avisos sean más claros.
Más sobre la librería
Qué hace y qué decides tú
La librería comprueba la conexión y te da una respuesta. Tú decides qué hace tu app con ella: mostrar un mensaje, esperar para enviar información o permitir otro intento.
Para qué puedes usarla
Tu app puede usar los avisos de la librería para ayudar al usuario. Por ejemplo:
- Mostrar «Sin Internet» y quitar el mensaje cuando vuelva la conexión.
- Esperar para volver a enviar información cuando haya conexión.
- Ofrecer un botón «Reintentar» para volver a revisar.
Qué comprueba
Comprueba si puede obtener una respuesta de Internet. Si recibe la respuesta correcta, considera que hay conexión. Esto no asegura que todos los sitios estén funcionando.
Dónde conseguirla
La librería es gratuita y está publicada en pub.dev. En GitHub puedes ver el código, las instrucciones, el ejemplo y las pruebas que comprueban su funcionamiento.
Hablemos de tu idea
¿Quieres algo parecido para tu app?
Cuéntame qué necesitas y vemos cómo hacerlo.