FareBot: Lector NFC de transporte público de código abierto para Android, iOS y web. February 20, 2026 Categoría: Proyectos Prácticos de Código Abierto Etiquetas: Open Source Android Kotlin NFC Transit ¿Qué es FareBot?\n\nFareBot (github.com/codebutler/farebot) es una aplicación de código abierto multiplataforma Kotlin que te permite leer e inspeccionar datos almacenados en tarjetas inteligentes sin contacto de transporte público. Está escrita en puro Kotlin con Compose Multiplatform y funciona en\n\n* Android – API NFC nativa\n* iOS – CoreNFC\n* macOS – lectores PC/SC o PN533 USB (experimental)\n* Web – WebAssembly + WebUSB (experimental)\n\nLa aplicación admite una amplia gama de estándares de tarjetas (ISO 7816, CEPAS, FeliCa, DESFire, MIFARE Classic, MIFARE Ultralight, NFC‑V) y lee tarjetas de más de 80 sistemas de transporte en Asia, Europa, Norteamérica y más allá.\n\n## Por qué importa para los desarrolladores\n\n* Herramientas modernas – Utiliza Gradle KTS, Kotlin 2.3.0, Compose, DI con Koin, Kotlin x serialization, y más.\n* Documentación completa – El repositorio contiene un README vivo, comentarios de código y un contenedor de desarrollo impulsado por Claude Code para experimentación aislada.\n* Favorable a contribuciones – Todo el código es libre de licencias MIT/GPL, y el proceso de pull request es sencillo.\n\n## Características clave\n\n| Función | Descripción |\n|---------|-------------|\n| Descubrimiento de tarjetas | Escanea etiquetas NFC y lista tipos de tarjetas disponibles. |\n| Extracción completa de tarjetas | Lee todos los archivos EF y presenta datos en bruto, marcas de tiempo y saldo. |\n| UI multiplataforma | UI Compose compartida entre móvil, macOS y web. |\n| Registro de sistemas extensible | Añade nuevos sistemas de transporte en un solo archivo "registry". |\n| Demo WebAssembly | Construcción web experimental que lee tarjetas mediante lector PN533 USB en Chrome/Edge. |\n| Contenedor de desarrollo | Entorno basado en Docker pre-cargado con Java 21, Gradle y Claude Code. |\n\n## Tarjetas compatibles (ejemplos destacados)\n\n* Japón – Suica, Pasmo, Octopus, Edy\n* Singapur – EZ‑Link, NETS FlashPay, Octopus\n* Alemania – VDV‑Bus, VVS\n* Reino Unido – Oyster, tarjetas TfL (soporte limitado a MIFARE)\n* EEUU – Clipper, Ventra, ORCA (DESFire)\n\nLa lista completa está documentada en el README; el repositorio incluso gestiona peculiaridades específicas de la tarjeta, como las claves de cifrado de MIFARE Classic.\n\n## Inicio rápido\n\n1. Clonar el repositorio\n bash\n git clone https://github.com/codebutler/farebot.git\n cd farebot\n\n2. Construir y ejecutar (Android)\n bash\n make android-install # instala en un dispositivo conectado vía ADB\n\n3. Construir y ejecutar (iOS)\n bash\n make ios-install # instala en un iPhone físico\n\n4. Construir y servir la web\n bash\n make web-run\n\n5. Ejecutar pruebas\n bash\n make test\n\n\n> Tip: El dev‑container (.devcontainer/) te brinda un editor aislado donde puedes ejecutar Claude Code o experimentar con el repositorio sin riesgo.\n\n## Flujo de contribución\n\n1. Haz un fork del repositorio.\n2. Crea una rama de característica.\n3. Añade/modifica código; ejecuta make test.\n4. Envía una solicitud de pull request.\n\nTodos los colaboradores son reconocidos en la sección Contribuidores. El repositorio tiene más de 30 colaboradores y más de 1 k estrellas, demostrando una comunidad vibrante.\n\n## Licencia y comunidad\n\nFareBot se publica bajo la licencia GPL‑3.0 – libre de usar, modificar y redistribuir, siempre que las obras derivadas permanezcan bajo la misma licencia. El proyecto invita a contribuciones vía pull requests de GitHub, issues o añadiendo nuevos adaptadores de sistemas de transporte.\n---\n\nConclusión: Si estás construyendo una aplicación de transporte habilitada NFC, o simplemente quieres aprender cómo está estructurado un código base Kotlin Multiplatform de grado de producción, FareBot es una lectura obligatoria. Su combinación de soporte para tarjetas reales, capacidades web experimentales y un repositorio totalmente documentado lo convierte en un referente de código abierto ejemplar. Artículo original: Ver original Compartir este artículo