Proyectos

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.

DartFlutterPruebas automáticas
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.

Gráfico en tres pasos: la app pide revisar la conexión, la librería comprueba si hay Internet y devuelve una respuesta. Al comenzar, la respuesta es Revisando; después, Con Internet o Sin Internet.
Tu app pregunta, la librería revisa y te avisa

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

Terminal
Paso 1 · bash
dart pub add internet_connection_monitor

Qué deberías observar

Este comando añade la librería a tu proyecto para que puedas usarla.

Revisa si hay Internet

bin/main.dart
Paso 2 · dart
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.

Contactarme