Device preview in Flutter

Mattepuffo's logo
Device preview in Flutter

Device preview in Flutter

device_preview è un package per Flutter che ci permette di attivare una preview per vari dispositivi.

Quindi ad esempio, ho avviato la app per Windows.

Sulla destra apparirà un "menu" in cui possiamo decidere con quale dispositivo visualizzare le schermate.

Ovviamente sono emulati, e potete anche chiuderlo/riaprirlo.

Possiamo installarlo così:

flutter pub add device_preview

Qui sotto un esempio di codice in cui aggiungiamo anche una voce custom:

import 'package:device_preview/device_preview.dart';
import 'package:flutter/material.dart';

import 'custom.dart';

void main() {
  runApp(
    DevicePreview(
      enabled: true,
      tools: const [
        ...DevicePreview.defaultTools,
        Custom(),
      ],
      builder: (ctx) => const MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Test',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.deepPurple,
        ),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: const Text('Flutter Test'),
      ),
      body: const Center(
        child: Text('CIAO'),
      ),
    );
  }
}

Questo il widget Custom:

import 'package:device_preview/device_preview.dart';
import 'package:flutter/material.dart';

class Custom extends StatelessWidget {
  const Custom({super.key});

  @override
  Widget build(BuildContext context) {
    return ToolPanelSection(
      title: 'Custom',
      children: [
        ListTile(
          title: const Text('Print in console'),
          onTap: () {
            print('Print dal custom!');
          },
        )
      ],
    );
  }
}

Enjoy!


Condividi

Commentami!