Presento FonHunter (Tal y como va el desarrollo)

Portal cautivo de FON
Hace poquito comentaba que acababa de terminar una aplicación de iPhone y porqué la empecé. Hoy la enseñaré: tal y como va su desarrollo y contaré que hace y como se utiliza.
FonHunter es una herramienta para localizar lugares en los que te puedes conectar a WiFi gratis (Por ahora sólo puntos de acceso FON, por lo que será grátis sólo si perteneces a la red FON, si no tendrás que pagar).
Y una vez localizado te permite autentificarte en el sin que tengas que toquetear la página de login (el denominado “Portal cautivo”).
Realmente lo que considero especialmente novedoso de la aplicación está en la licencia libre (que imagino que le calzaré una GPL, pero me gustaría ver si es completamente compatible con colgar la aplicación en el AppStore).
Partiendo de la definición que acabo de dar: “FonHunter es una herramienta para localizar lugares en los que te puedes conectar a WiFi”, se debe de entender que la aplicación está diseñada para NO hacer uso de la conexión a internet para tal tarea. A esa premisa había que añadir el poder colgar la aplicación en el AppStore para permitir la instalación a los usuarios que no han modificado el teléfono.
La Base de datos de POIs
(POI = punto de interés)
Es decir, desde el primer momento en el que empecé a escribir la aplicación consideré que no se debía de hacer uso de Google Maps u otros servicios (y si hiciera uso de tales servicios debería de ser meramente accesorio).
Comenzando a desarrollar la aplicación, empecé haciendo un listado de POIs (POI = punto de interés) típicos de los GPS. En un principio comencé con un listado ordenado que mostraría los 20 puntos de acceso más cercanos con su correspondiente dirección.
Ese listado se parecía bastante al de la actual revisión:

(Nota mental: Tengo que mejorar el “subtítulo” de cada “celda”)
Sin embargo antes, los logotipos eran logos de Foneras con diferentes colores, representando cada color a una distancia. Actualmente esos logotipos han sido sustituidos por zapatos que apuntan en la dirección cardinal en la que hay que caminar.
Manteniendo los POIs actualizados
Haciendo pruebas reales a pie de calle, percibí el mayor problema que podía tener: el 60% de los puntos de acceso ofrecidos por FON no daban servicio. Lo cual frustraba los “pateos”. En un principio alguien puede pensar “bahh” miras otra vez y ya está”, pero cuando vas has comprobado que 3 sitios no existen la cosa cambia.
Finalmente encontré un listado de POIs mejor que el de http://maps.fon.com concretamente el de francofon.fr en el que te dan la funcionalidad de descartar los puntos de acceso inactivos en las últimas horas (lo que deja el listado español en 3302 nodos sobre los 18047 que consta en el FON_ES.csv). Me ha resultado muy curioso, que según francofon, en España hay 9000 nodos incluidos los desconectados y según los POI de FON son 18000. En fin, no voy a hacer más comentarios al respecto.
Dentro de la dificultad que me supuso adaptarme a “Objective C”, he de decir que las mayores “cafradas” creo que las cometí parseando los ficheros de POIs. Pero finalmente añadí los algoritmos al teléfono para que fuese el propio teléfono el que mantuviera las listas actualizadas.

Tengo que buscar un color menos cantoso
De este modo no habría que acudir al AppStore a por actualizaciones, si no que los propios datos que ofrece uno de los grupos de Foneros generaría toda la información necesaria.
La evolución del Listado de POIs
Realmente la funcionalidad que más facilita la localización de un POI totalmente offline y sin utilizar offlinemaps ni ningún otro truco es esto:

Esta parte de la aplicación hace un “bip” cada vez que el GPS ofrece una nueva lectura (lo cual en ocasiones puede resultar un tormento). También tengo que acordarme de borrar ese maldito + y volver a poner la frasecita en castellano xD
Una “rosa de los vientos” en la que los puntos de acceso de desplazan mientras tu te desplazas y que al mismo tiempo te indica en la dirección que te mueves. Es decir, es “un mapa sin mapa” que te muestra lo que tienes a tu al rededor.
Sinceramente me sorprendió que funcionase, por que la cantidad de veces que transformé angulos en distancias lineales y de vuelta a ángulos no fueron pocas (para sacar distancias, direcciones, movimientos,…).
Aun que actualmente es la solución que estoy aportando al problema, tenía un segundo as en la manga, basado en un fichero alternativo con los “Tiles” de los mapas. De forma que la aplicación calculase el “La foto” correspondiente a las coordenadas actuales y la mostrase en lugar de la rosa de los vientos. Esto lo tengo medio descartado por que no se si sería aceptado por Apple.
Autenticarse en FON
(Cuando se autentifica algo, se demuestra que es autentico. Cuando algo se autentica se comprueba la credencial es válida.)
Otra funcionalidad con la que decidí dotar la aplicación es la de autenticarse en los nodos sin tener que teclear usuario y contraseña, así como un botón que cerrase la sesión (cosa que no existe en el actual portal cautivo de FON).
Esta es sin duda la imagen más fea de la aplicación
Aproveché esta “pantalla” para mostrar una serie de datos:
- la dirección IP por si la “Fonera” no estaba asignando IP correctamente
- la dirección MAC del adaptador inalámbrico del teléfono
- La configuración Edge y su IP (Por si el teléfono está conectado a internet por la red de telefonía móvil), más que nada para evitar mal entendidos.
- Información sobre los intentos de conexión previos o si se ha rechazado el router por no ser una fonera.
El pequeño navegador
La aplicación incorpora un pequeño navegador (un “Safari” incrustado cortesía de Apple). Cuya función es básicamente poder realizar pruebas (o ver la parte personalizable de cada Fonera, mostrando el texto que el dueño de la fonera nos quiere enseñar).

Tengo que poner dibujos al navegador, por que eso de “rewind” y “fast forward” no tiene sentido alguno.
Me tomé la libertad de modificar un trozo del portal cautivo para poder visualizar los vídeos de youtube. Los cuales actualmente apuntan erróneamente a googlevideo.
¿Que cambios tengo previstos?
Principalmente añadir los iconos que faltan, revisar mis actuales traducciones así como revisar un poco el interfaz de usuario. Quizá en el próximo post publique el diseño definitivo y las características también definitivas.
También es posible que próximamente cuelgue una versión de prueba (todavía sin liberar los fuentes), para conocer opiniones.
Sobre la publicación en el AppStore: Tras enviar un par de mensajes a Martin Varsavsky, los cuales ignoró ampliamente (hubiera preferido un “No” que un silencio sepulcral), creo que debería de empezar a considerar que esta aplicación no se publicará allí o al menos no por esa vía.


Me parece muy interesante tu trabajo. Entiendo que si este es tu “hello world” no voy a tener mas remedio que tener grandes expectativas sobre lo que puedas llegar a crear. Me gustaría seguir en contacto, quizas podamos ayudarnos. Un saludo
@Tony
Me alegro de que te gustase Tony.
Realmente tenía una aplicación casi lista para enviar al AppStore (por ahora no puedo contar de que va), si un día me animo igual la envío