matecitodb_flutter 0.0.5 copy "matecitodb_flutter: ^0.0.5" to clipboard
matecitodb_flutter: ^0.0.5 copied to clipboard

SDK oficial de Matecito para Flutter (BaaS de alto rendimiento).

🧉 matecitodb_flutter v0.0.5 (Beta) #

SDK oficial de Matecito para Flutter. Lleva tu base de datos en tiempo real al siguiente nivel con una integración nativa, tipado fuerte y manejo de estado sencillo.


🚀 Instalación #

Agrega esto a tu pubspec.yaml:

dependencies:
  matecitodb_flutter: ^0.0.5

🛠️ CLI: Sincronización 100% Nativa (Dart) #

El SDK de Flutter incluye su propio CLI nativo escrito en Dart. Te permite compilar tu schema.prisma y empujar API Rules al servidor sin depender de Node.js o NPM.

# Sincroniza las colecciones en 2 pasadas (Resolución cruzada automática)
dart run matecitodb_flutter push --url https://miapp.matecito.dev --key mb_service_...

# Aplica las reglas de matecito.rules.json
dart run matecitodb_flutter rules push --url https://miapp.matecito.dev --key mb_service_...

# Aplicar un preset de seguridad rápido sin json a colecciones específicas
dart run matecitodb_flutter rules push --preset owner --collections posts,comments

# Ver las reglas actuales del servidor en una tabla ASCII
dart run matecitodb_flutter rules list

¡Bonus! Tras hacer push, se generará una copia de tu BBDD en lenguaje schema.matecito. Puedes instalar nuestra Extensión Oficial de VS Code para visualizarla a full color.


⚡ Quick Start (Provider) #

La mejor forma de usarlo es envolviendo tu MaterialApp con el MatecitoDB_Provider:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  final db = MatecitoDB.createClient('https://miapp.matecito.dev');
  await db.auth.initialize(); // Imprescindible para recuperar sesión
  
  runApp(
    MatecitoDB_Provider(
      db: db,
      child: const MyApp(),
    ),
  );
}

Para acceder al cliente en cualquier widget:

final db = MatecitoDB_Provider.of(context);

📡 Realtime con Streams #

Aprovecha el poder de los StreamBuilder nativos de Flutter:

StreamBuilder<RealtimeEvent>(
  stream: db.from('mensajes').subscribe(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return const CircularProgressIndicator();
    final event = snapshot.data!;
    return Text('${event.action}: ${event.record['texto']}');
  },
)

🔐 Autenticación #

Persistencia automática mediante shared_preferences.

final res = await db.auth.signIn(email: 'juan@matecito.dev', password: '123');

if (res.hasError) {
  print('Error: ${res.error!.message}');
} else {
  print('Bienvenido ${res.data!.user.name}');
}

📁 Manejo de Archivos e Imágenes #

// Obtener un thumbnail para un widget de imagen
Image.network(
  db.storage.getThumb(
    collection: 'recetas', 
    recordId: 'ID', 
    filename: 'mate.jpg', 
    size: '400x300'
  )
)

// Subir un archivo con Multipart
await db.from('posts').insertWithFile(
  data: {'titulo': 'Mi post'},
  files: [
    MatecitoDB_File(
      field: 'imagen', 
      path: '/path/to/image.jpg', 
      mimeType: 'image/jpeg'
    )
  ],
);

🏗️ Requisitos #

  • Flutter >= 3.0
  • Dart >= 3.0

Hecho con ❤️ por Matecito. 🧉 ¡Disfruta el sabor de una base de datos real!

0
likes
125
points
63
downloads

Documentation

API reference

Publisher

verified publishermatecito.dev

Weekly Downloads

SDK oficial de Matecito para Flutter (BaaS de alto rendimiento).

Homepage

License

MIT (license)

Dependencies

args, flutter, http, provider, shared_preferences, web_socket_channel

More

Packages that depend on matecitodb_flutter