<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rubén Saavedra Prado</title>
    <description>The latest articles on DEV Community by Rubén Saavedra Prado (@rubone).</description>
    <link>https://dev.to/rubone</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1014282%2Fdcaa0caf-84af-48fb-a2d2-093d1387dcad.jpeg</url>
      <title>DEV Community: Rubén Saavedra Prado</title>
      <link>https://dev.to/rubone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rubone"/>
    <language>en</language>
    <item>
      <title>Modo oscuro y claro en Flutter utilizando Riverpod</title>
      <dc:creator>Rubén Saavedra Prado</dc:creator>
      <pubDate>Sat, 18 Nov 2023 23:34:50 +0000</pubDate>
      <link>https://dev.to/rubone/modo-oscuro-y-claro-en-flutter-utilizando-riverpod-1240</link>
      <guid>https://dev.to/rubone/modo-oscuro-y-claro-en-flutter-utilizando-riverpod-1240</guid>
      <description>&lt;p&gt;Siguiendo con el articulo anterior &lt;a href="https://dev.to/rubone/modo-oscuro-y-claro-en-flutter-utilizando-getx-3fd4"&gt;Modo oscuro y claro en Flutter utilizando GetX&lt;/a&gt;, ahora realizaremos la misma aplicación pero utilizando &lt;a href="https://riverpod.dev/"&gt;Riverpod&lt;/a&gt;. Riverpod es un paquete para gestión de estado, ayuda a organizar y gestionar la información que se utiliza en la aplicación de manera eficiente. Proporciona un enfoque más declarativo y modular para la gestión del estado en comparación con otras soluciones.&lt;/p&gt;

&lt;p&gt;Para este ejemplo utilizaremos &lt;a href="https://pub.dev/packages/hooks_riverpod"&gt;Riverpod Hooks&lt;/a&gt;, que es una extensión de Riverpod que proporciona hooks para trabajar con el paquete Riverpod en aplicaciones Flutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creando nuestro proyecto
&lt;/h2&gt;

&lt;p&gt;Para crear el proyecto ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter create riverpod_theme
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego agregamos el paquete de Riverpod hooks al proyecto en nuestro archivo pubspec.yaml.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hooks_riverpod: ^2.4.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y por último ejecutamos el comando &lt;code&gt;pub get&lt;/code&gt; para obtener los paquetes en nuestro proyecto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter pub get
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creando nuestro tema
&lt;/h2&gt;

&lt;p&gt;Primero crearemos nuestro archivo &lt;code&gt;theme.dart&lt;/code&gt; donde tendremos definidos nuestro modo claro y oscuro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';

final ThemeData darkAppTheme = ThemeData(
  brightness: Brightness.dark,
  primaryColor: Colors.amber,
  buttonTheme: const ButtonThemeData(
    buttonColor: Colors.amber,
    disabledColor: Colors.grey,
  ),
);

final ThemeData lightAppTheme = ThemeData(
  brightness: Brightness.light,
  primaryColor: Colors.blue,
  buttonTheme: const ButtonThemeData(
    buttonColor: Colors.blue,
    disabledColor: Colors.grey,
  ),
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Utilizando Riverpod crearemos una clase provider para el manejo de estado de nuestro tema dentro de la aplicación. Crearemos el archivo &lt;code&gt;themes_provider.dart&lt;/code&gt; y agregaremos el siguiente código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

final themesProvider = StateNotifierProvider&amp;lt;ThemesProvider, ThemeMode&amp;gt;((ref) {
  return ThemesProvider();
});

class ThemesProvider extends StateNotifier&amp;lt;ThemeMode&amp;gt; {
  ThemesProvider() : super(ThemeMode.system);

  void changeTheme(bool isOn) {
    state = isOn ? ThemeMode.dark : ThemeMode.light;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Utilizando nuestro tema
&lt;/h2&gt;

&lt;p&gt;Para utilizar nuestro tema crearemos una pantalla que será nuestro Home donde agregaremos un action en nuestro AppBar para establecer el tema de la aplicación.&lt;/p&gt;

&lt;p&gt;En nuestra pantalla de Home utilizaremos &lt;code&gt;ConsumerWidget&lt;/code&gt; para estar a la escucha de los cambios generados en nuestra clase provider creada para manejar el estado de de nuestra tema.  Crearemos el archivo &lt;code&gt;home.dart&lt;/code&gt; y agregaremos el siguiente código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class HomeScreen extends ConsumerWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final themeModeState = ref.watch(themesProvider);
    return Scaffold(
      appBar: AppBar(
        title: const Text('Riverpod Theme'),
        actions: [
          IconButton(
              icon: Icon(
                themeModeState == ThemeMode.light
                    ? Icons.dark_mode
                    : Icons.light_mode,
              ),
              onPressed: () =&amp;gt; ref.read(themesProvider.notifier).changeTheme(
                  themeModeState == ThemeMode.light ? true : false)),
        ],
      ),
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente en nuestro archivo &lt;code&gt;main.dart&lt;/code&gt; utilizaremos &lt;code&gt;ProviderScope&lt;/code&gt; de Riverpod para nuestro Widget principal. Adicionalmente estableceremos los valores para theme y darkTheme utilizando las configuraciones de los temas que agregamos en nuestro archivo &lt;code&gt;theme.dart&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void main() {
  runApp(
    const ProviderScope(child: MyApp()),
  );
}

class MyApp extends ConsumerWidget {
  const MyApp({
    super.key,
  });
  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final themeModeState = ref.watch(themesProvider);
    return MaterialApp(
      theme: lightAppTheme,
      darkTheme: darkAppTheme,
      themeMode: themeModeState,
      debugShowCheckedModeBanner: false,
      home: const HomeScreen(),
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Ejecutando nuestra aplicación
&lt;/h2&gt;

&lt;p&gt;Utiliza el siguiente comando para correr la aplicación y puedas ver todo nuestro código en acción.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusiones
&lt;/h2&gt;

&lt;p&gt;Implementar el modo oscuro y modo claro en nuestras aplicaciones puede mejorar la experiencia del usuario al brindarles opciones de personalización y adaptabilidad. Con Riverpod puedes implementar dicha funcionalidad de una forma sencilla y robusta. &lt;/p&gt;

&lt;p&gt;Puedes revisar el código en &lt;a href="https://github.com/rubone/riverpod_theme"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding! ✌️&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>mobile</category>
      <category>riverpod</category>
      <category>dart</category>
    </item>
    <item>
      <title>Modo oscuro y claro en Flutter utilizando GetX</title>
      <dc:creator>Rubén Saavedra Prado</dc:creator>
      <pubDate>Wed, 11 Oct 2023 14:43:12 +0000</pubDate>
      <link>https://dev.to/rubone/modo-oscuro-y-claro-en-flutter-utilizando-getx-3fd4</link>
      <guid>https://dev.to/rubone/modo-oscuro-y-claro-en-flutter-utilizando-getx-3fd4</guid>
      <description>&lt;p&gt;En la actualidad, la implementación del modo oscuro y modo claro se ha convertido en una característica común en muchas aplicaciones. Implementar esta funcionalidad en una aplicación puede ser beneficioso para los usuarios, ya que les brinda la opción de elegir el tema que mejor se adapte a sus preferencias y necesidades. El modo oscuro, por ejemplo, puede ser útil para reducir la fatiga visual en entornos de poca luz, mientras que el modo claro puede ser más adecuado para entornos bien iluminados. No obstante, es importante tener en cuenta la accesibilidad y legibilidad en ambos modos para garantizar una experiencia óptima para todos los usuarios.&lt;/p&gt;

&lt;p&gt;En este artículo vamos a explorar cómo implementar el modo oscuro y el modo claro en una aplicación utilizando el paquete &lt;a href="https://pub.dev/packages/get"&gt;GetX&lt;/a&gt; en Flutter. GetX es un paquete de administración de estado y navegación que proporciona herramientas y funcionalidades útiles para el desarrollo de aplicaciones en Flutter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creando nuestro proyecto
&lt;/h2&gt;

&lt;p&gt;Para crear el proyecto ejecuta el siguiente comando.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter create getx_theme
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego agregamos el paquete de GetX al proyecto en nuestro archivo &lt;code&gt;pubspec.yaml&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;get: any
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y por último ejecutamos el comando &lt;code&gt;pub get&lt;/code&gt; para obtener los paquetes en nuestro proyecto.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter pub get
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Creando nuestro tema
&lt;/h2&gt;

&lt;p&gt;Primero crearemos nuestro archivo &lt;code&gt;theme.dart&lt;/code&gt; donde tendremos definidos nuestro modo claro y oscuro.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:flutter/material.dart';

final ThemeData darkAppTheme = ThemeData(
  brightness: Brightness.dark,
  primaryColor: Colors.amber,
  buttonTheme: const ButtonThemeData(
    buttonColor: Colors.amber,
    disabledColor: Colors.grey,
  ),
);

final ThemeData appTheme = ThemeData(
  brightness: Brightness.light,
  primaryColor: Colors.blue,
  buttonTheme: const ButtonThemeData(
    buttonColor: Colors.blue,
    disabledColor: Colors.grey,
  ),
);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora, utilizando GetX crearemos un controlador para el manejo de nuestro tema dentro de la aplicación. Creamos el archivo &lt;code&gt;theme_controller.dart&lt;/code&gt; y agregamos el siguiente código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import 'package:get/get.dart';
import 'package:flutter/material.dart';

class ThemeController extends GetxController {
  ThemeController({required this.context});

  BuildContext context;
  late bool isDarkMode;

  @override
  void onInit() {
    isDarkMode = Theme.of(context).brightness == Brightness.dark;
    super.onInit();
  }

  void toggleDarkMode() {
    isDarkMode = !isDarkMode;
    if (isDarkMode) {
      Get.changeTheme(ThemeData.dark());
    } else {
      Get.changeTheme(ThemeData.light());
    }
    update();
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Utilizando nuestro tema
&lt;/h2&gt;

&lt;p&gt;Para utilizar nuestro tema crearemos una pantalla que será nuestro Home donde agregaremos un &lt;code&gt;action&lt;/code&gt; en nuestro &lt;code&gt;AppBar&lt;/code&gt; para establecer el tema de la aplicación.&lt;/p&gt;

&lt;p&gt;Además en nuestro Home es donde utilizaremos el controlador creado para el manejo del valor actual de nuestro tema dentro de la aplicación:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Get.put(ThemeController(context: context));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nuestro Home quedará de la siguiente manera:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    Get.put(ThemeController(context: context));
    return Scaffold(
      appBar: AppBar(
        title: const Text('GetX Theme'),
        actions: [
          GetBuilder&amp;lt;ThemeController&amp;gt;(
            builder: (controller) =&amp;gt; IconButton(
                icon: Icon(
                  controller.isDarkMode ? Icons.light_mode : Icons.dark_mode,
                ),
                onPressed: () =&amp;gt; controller.toggleDarkMode()),
          ),
        ],
      ),
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente en nuestro archivo &lt;code&gt;main.dart&lt;/code&gt; utilizaremos &lt;code&gt;GetMaterialApp&lt;/code&gt; de GetX para crear nuestro Widget principal. Adicionalmente estableceremos los valores para &lt;code&gt;theme&lt;/code&gt; y &lt;code&gt;darkTheme&lt;/code&gt; utilizando las configuraciones de los temas que agregamos en nuestro archivo &lt;code&gt;theme.dart&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;void main() {
  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      theme: appTheme,
      darkTheme: darkAppTheme,
      themeMode: ThemeMode.system,
      debugShowCheckedModeBanner: false,
      home: const HomeScreen(),
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Ejecutando nuestra aplicación
&lt;/h2&gt;

&lt;p&gt;Utiliza el siguiente comando para correr la aplicación y puedas ver todo nuestro código en acción.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;flutter run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusiones
&lt;/h2&gt;

&lt;p&gt;En resumen, la implementación del modo oscuro y modo claro en una aplicación puede mejorar la experiencia del usuario al brindarles opciones de personalización y adaptabilidad. Existen diferentes manera de implementar esta funcionalidad y GetX es una de ellas, proporcionándonos una forma robusta y sencilla. &lt;/p&gt;

&lt;p&gt;Puedes revisar el código en &lt;a href="https://github.com/rubone/getx_theme"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy Coding! ✌️&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>mobile</category>
      <category>getx</category>
      <category>dart</category>
    </item>
    <item>
      <title>Flutter Version Management (FVM)</title>
      <dc:creator>Rubén Saavedra Prado</dc:creator>
      <pubDate>Mon, 13 Feb 2023 21:21:09 +0000</pubDate>
      <link>https://dev.to/rubone/flutter-version-management-fvm-30h8</link>
      <guid>https://dev.to/rubone/flutter-version-management-fvm-30h8</guid>
      <description>&lt;h2&gt;
  
  
  ¿Qué es FVM?
&lt;/h2&gt;

&lt;p&gt;Flutter Version Management, es una sencilla y muy útil CLI (Command-line interface) que puedes utilizar para administrar diferentes versiones de Flutter en tu ambiente local de desarrollo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo instalar FVM?&lt;/strong&gt;&lt;br&gt;
Puedes instalar FVM en diferentes Sistemas Operativos. A continuación te muestro los pasos a seguir para instalarlo en Mac, Windows y Linux.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mac&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Abre la terminal y ejecuta los siguientes comandos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew tap leoafarias/fvm
brew install fvm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Windows&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Para instalar en Windows utiliza el gestor de paquetes &lt;a href="https://chocolatey.org" rel="noopener noreferrer"&gt;chocolatey&lt;/a&gt;, una vez instalado, ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;choco install fvm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Linux&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Utilizando &lt;a href="https://brew.sh/" rel="noopener noreferrer"&gt;Homebrew&lt;/a&gt; para Linux, ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew tap leoafarias/fvm
brew install fvm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez tienes instalado FVM en el Sistema Operativo de tu preferencia, puedes administrar y utilizar diferentes versiones de Flutter en tu ambiente de desarrollo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Administrando las versiones de Flutter&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Completada la instalación de FVM puedes gestionar las diferentes versiones de Flutter que necesitas utilizar en tu entorno de desarrollo.&lt;/p&gt;

&lt;p&gt;Puedes utilizar el comando &lt;code&gt;fvm --help&lt;/code&gt; para obtener ayuda de los opciones que puedes utilizar dentro del CLI de FVM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0aceh4ce2bfyx8tik4zs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0aceh4ce2bfyx8tik4zs.png" alt="Image description" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para instalar una versión de Flutter ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm install {version}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Especifica el número de versión del SDK de Flutter que deseas instalar, puedes consultar las versiones en el &lt;a href="https://docs.flutter.dev/development/tools/sdk/releases?tab=windows" rel="noopener noreferrer"&gt;sitio oficial&lt;/a&gt; o puedes ejecutar el siguiente comando para obtener un listado de todas las versiones disponibles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si deseas remover una versión previamente instalada:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm remove {version}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para obtener un listado de las versiones que tengas instaladas en tu entorno, ejecuta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para utilizar una versión específica de Flutter utiliza el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm use {version}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si recibes un mensaje de advertencia y no te permite usar la versión que deseas, puedes agregar el parámetro &lt;code&gt;--force&lt;/code&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm use {version} --force
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora para correr tu aplicación desde la línea de comando, deberás ejecutar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fvm flutter run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tu aplicación se ejecutará utilizando la versión de Flutter que tengas establecida en la configuración de FVM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;br&gt;
FVM es una herramienta muy útil cuando te encuentras desarrollando o dando mantenimiento a distintas aplicaciones móviles creadas en diferentes versiones de Flutter. Puedes cambiar de versión con mucha facilidad sin alterar tu entorno local de desarrollo.&lt;/p&gt;

&lt;p&gt;FVM puede ser muy práctico para procesos de migración o actualización del SDK para tus aplicaciones, permitiéndote hacer pruebas y validaciones en un ambiente controlado. &lt;/p&gt;

&lt;p&gt;Si deseas indagar más sobre esta herramienta te invito a que revises con más detalle la documentación del sitio oficial:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fvm.app/es/" rel="noopener noreferrer"&gt;Sitio oficial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;También puedes revisar el código fuente disponible en Github:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/fluttertools/fvm" rel="noopener noreferrer"&gt;Repositorio Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy coding!✌️&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webscraping</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
