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
4
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