diff --git a/README.md b/README.md
index 29ddad1..dcf65d3 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,26 @@
-# El Impostor — Juego de deducción social
+# Farolero 🎭
-Juego de fiesta para Android donde un grupo de jugadores debe encontrar al impostor.
-Todos conocen la palabra secreta menos el impostor, que debe fingir conocerla.
+Juego de deducción social para Android. ¿Quién finge saber la palabra secreta?
## Características
- 3-20 jugadores, 1-4 impostores
- Modo 1 móvil (pasa y mira) + multimóvil (Nearby Connections)
-- QR para conectar dispositivos (Bluetooth/WiFi Direct, sin internet)
-- 1000+ palabras en castellano organizadas por categorías
+- 1000+ palabras en castellano, inglés y francés (10 categorías)
+- 18 idiomas de interfaz
- Notas privadas por jugador
- Votación simultánea desde cada dispositivo
-- Pista opcional para el impostor
- 100% offline, sin servidor externo
+## Stack
+- Flutter (Dart)
+- Google Nearby Connections (P2P)
+- Package: es.freetimelab.farolero
+
+## Build
+```bash
+flutter build apk --release
+flutter build appbundle --release
+```
+
## Desarrollado por
FreeTTimeLab (freetimelab.es)
-
-## Licencia
-Propietario — todos los derechos reservados
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index a502cb2..f780089 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
}
android {
- namespace = "es.freetimelab.elimpostor"
+ namespace = "es.freetimelab.farolero"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
@@ -19,7 +19,7 @@ android {
}
defaultConfig {
- applicationId = "es.freetimelab.elimpostor"
+ applicationId = "es.freetimelab.farolero"
minSdk = flutter.minSdkVersion
targetSdk = 34
versionCode = flutter.versionCode
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 7eea1e4..8a6710a 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -14,7 +14,7 @@
'Der Hochstapler';
+ String get appTitle => 'Farolero';
@override
String get subtitle => 'Soziales Deduktionsspiel';
diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart
index 8be620a..a49dfe5 100644
--- a/lib/l10n/generated/app_localizations_en.dart
+++ b/lib/l10n/generated/app_localizations_en.dart
@@ -9,7 +9,7 @@ class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
- String get appTitle => 'The Impostor';
+ String get appTitle => 'Farolero';
@override
String get subtitle => 'Social deduction game';
@@ -365,7 +365,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get rulesTitle => '📖 How to play';
@override
- String get rulesWhatIsTitle => '🎭 What is The Impostor?';
+ String get rulesWhatIsTitle => '🎭 What is Farolero?';
@override
String get rulesWhatIsBody =>
diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart
index 007d3b2..8810b42 100644
--- a/lib/l10n/generated/app_localizations_es.dart
+++ b/lib/l10n/generated/app_localizations_es.dart
@@ -9,7 +9,7 @@ class AppLocalizationsEs extends AppLocalizations {
AppLocalizationsEs([String locale = 'es']) : super(locale);
@override
- String get appTitle => 'El Impostor';
+ String get appTitle => 'Farolero';
@override
String get subtitle => 'Juego de deducción social';
@@ -366,7 +366,7 @@ class AppLocalizationsEs extends AppLocalizations {
String get rulesTitle => '📖 Cómo jugar';
@override
- String get rulesWhatIsTitle => '🎭 ¿Qué es El Impostor?';
+ String get rulesWhatIsTitle => '🎭 ¿Qué es Farolero?';
@override
String get rulesWhatIsBody =>
diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart
index 0b8fe90..95af26e 100644
--- a/lib/l10n/generated/app_localizations_fr.dart
+++ b/lib/l10n/generated/app_localizations_fr.dart
@@ -9,7 +9,7 @@ class AppLocalizationsFr extends AppLocalizations {
AppLocalizationsFr([String locale = 'fr']) : super(locale);
@override
- String get appTitle => 'L\'Imposteur';
+ String get appTitle => 'Farolero';
@override
String get subtitle => 'Jeu de déduction sociale';
diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart
index 46360d7..707fb68 100644
--- a/lib/l10n/generated/app_localizations_it.dart
+++ b/lib/l10n/generated/app_localizations_it.dart
@@ -9,7 +9,7 @@ class AppLocalizationsIt extends AppLocalizations {
AppLocalizationsIt([String locale = 'it']) : super(locale);
@override
- String get appTitle => 'L\'Impostore';
+ String get appTitle => 'Farolero';
@override
String get subtitle => 'Gioco di deduzione sociale';
diff --git a/lib/main.dart b/lib/main.dart
index 72c1d06..ca9b07e 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import 'estado/estado_juego.dart';
import 'servicios/servicio_idioma.dart';
@@ -18,11 +18,11 @@ void main() {
systemNavigationBarColor: TemaApp.colorFondo,
),
);
- runApp(const ElImpostorApp());
+ runApp(const FaroleroApp());
}
-class ElImpostorApp extends StatelessWidget {
- const ElImpostorApp({super.key});
+class FaroleroApp extends StatelessWidget {
+ const FaroleroApp({super.key});
@override
Widget build(BuildContext context) {
@@ -38,7 +38,7 @@ class ElImpostorApp extends StatelessWidget {
child: Consumer(
builder: (context, servicioIdioma, _) {
return MaterialApp(
- title: 'El Impostor',
+ title: 'Farolero',
theme: TemaApp.obtenerTema(),
debugShowCheckedModeBanner: false,
locale: servicioIdioma.locale,
@@ -74,7 +74,7 @@ class PantallaCarga extends StatelessWidget {
const Text('🎭', style: TextStyle(fontSize: 72)),
const SizedBox(height: 24),
Text(
- l10n?.appTitle ?? 'El Impostor',
+ l10n?.appTitle ?? 'Farolero',
style: Theme.of(context).textTheme.headlineLarge,
),
const SizedBox(height: 16),
diff --git a/lib/modelos/palabra.dart b/lib/modelos/palabra.dart
index 43dcdd1..90e7de5 100644
--- a/lib/modelos/palabra.dart
+++ b/lib/modelos/palabra.dart
@@ -1,7 +1,7 @@
import 'dart:convert';
import 'dart:math';
import 'package:flutter/services.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
/// Categorías disponibles en el banco de palabras
class BancoPalabras {
diff --git a/lib/pantallas/pantalla_adivinanza.dart b/lib/pantallas/pantalla_adivinanza.dart
index b347cb1..26ea9e5 100644
--- a/lib/pantallas/pantalla_adivinanza.dart
+++ b/lib/pantallas/pantalla_adivinanza.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../tema/tema_app.dart';
diff --git a/lib/pantallas/pantalla_ajustes.dart b/lib/pantallas/pantalla_ajustes.dart
index 44ee4dd..ba9488b 100644
--- a/lib/pantallas/pantalla_ajustes.dart
+++ b/lib/pantallas/pantalla_ajustes.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../servicios/servicio_idioma.dart';
import '../tema/tema_app.dart';
@@ -120,7 +120,7 @@ class _PantallaAjustesState extends State {
onPressed: () {
showLicensePage(
context: context,
- applicationName: 'El Impostor',
+ applicationName: 'Farolero',
applicationVersion: '1.0.0',
);
},
diff --git a/lib/pantallas/pantalla_crear_partida.dart b/lib/pantallas/pantalla_crear_partida.dart
index 359098a..01134dd 100644
--- a/lib/pantallas/pantalla_crear_partida.dart
+++ b/lib/pantallas/pantalla_crear_partida.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../modelos/palabra.dart';
diff --git a/lib/pantallas/pantalla_debate.dart b/lib/pantallas/pantalla_debate.dart
index cfd7298..275c987 100644
--- a/lib/pantallas/pantalla_debate.dart
+++ b/lib/pantallas/pantalla_debate.dart
@@ -1,6 +1,6 @@
import 'dart:async';
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../tema/tema_app.dart';
diff --git a/lib/pantallas/pantalla_fin_partida.dart b/lib/pantallas/pantalla_fin_partida.dart
index 1ff5dd3..5d8ce83 100644
--- a/lib/pantallas/pantalla_fin_partida.dart
+++ b/lib/pantallas/pantalla_fin_partida.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../modelos/palabra.dart';
diff --git a/lib/pantallas/pantalla_notas.dart b/lib/pantallas/pantalla_notas.dart
index d3735fd..9a17dff 100644
--- a/lib/pantallas/pantalla_notas.dart
+++ b/lib/pantallas/pantalla_notas.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../servicios/servicio_notas.dart';
diff --git a/lib/pantallas/pantalla_principal.dart b/lib/pantallas/pantalla_principal.dart
index 580be54..9fa7706 100644
--- a/lib/pantallas/pantalla_principal.dart
+++ b/lib/pantallas/pantalla_principal.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import '../tema/tema_app.dart';
import 'pantalla_ajustes.dart';
import 'pantalla_crear_partida.dart';
diff --git a/lib/pantallas/pantalla_reglas.dart b/lib/pantallas/pantalla_reglas.dart
index 1a74353..9318e18 100644
--- a/lib/pantallas/pantalla_reglas.dart
+++ b/lib/pantallas/pantalla_reglas.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import '../tema/tema_app.dart';
class PantallaReglas extends StatelessWidget {
diff --git a/lib/pantallas/pantalla_resultado.dart b/lib/pantallas/pantalla_resultado.dart
index 32eb6c6..302e323 100644
--- a/lib/pantallas/pantalla_resultado.dart
+++ b/lib/pantallas/pantalla_resultado.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../modelos/partida.dart';
diff --git a/lib/pantallas/pantalla_unirse.dart b/lib/pantallas/pantalla_unirse.dart
index 7ef9a24..f12a13c 100644
--- a/lib/pantallas/pantalla_unirse.dart
+++ b/lib/pantallas/pantalla_unirse.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import '../tema/tema_app.dart';
class PantallaUnirse extends StatelessWidget {
diff --git a/lib/pantallas/pantalla_ver_palabra.dart b/lib/pantallas/pantalla_ver_palabra.dart
index f4021d1..16a8845 100644
--- a/lib/pantallas/pantalla_ver_palabra.dart
+++ b/lib/pantallas/pantalla_ver_palabra.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../modelos/palabra.dart';
diff --git a/lib/pantallas/pantalla_votacion.dart b/lib/pantallas/pantalla_votacion.dart
index 32fdfe7..6591965 100644
--- a/lib/pantallas/pantalla_votacion.dart
+++ b/lib/pantallas/pantalla_votacion.dart
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
-import 'package:el_impostor/l10n/generated/app_localizations.dart';
+import 'package:farolero/l10n/generated/app_localizations.dart';
import 'package:provider/provider.dart';
import '../estado/estado_juego.dart';
import '../tema/tema_app.dart';
diff --git a/pubspec.yaml b/pubspec.yaml
index 3b2a4d9..29abf1d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
-name: el_impostor
-description: "El Impostor - Juego de deducción social"
+name: farolero
+description: "Farolero — Juego de deducción social. ¿Quién finge saber?"
publish_to: 'none'
version: 1.0.0+1
diff --git a/test/widget_test.dart b/test/widget_test.dart
index 2e5ab14..a6e6f13 100644
--- a/test/widget_test.dart
+++ b/test/widget_test.dart
@@ -1,9 +1,9 @@
import 'package:flutter_test/flutter_test.dart';
-import 'package:el_impostor/main.dart';
+import 'package:farolero/main.dart';
void main() {
testWidgets('App carga correctamente', (WidgetTester tester) async {
- await tester.pumpWidget(const ElImpostorApp());
+ await tester.pumpWidget(const FaroleroApp());
expect(find.text('El Impostor'), findsOneWidget);
});
}