En Flutter, si te preguntas si hay alguna manera de trabajar con palabras en inglés o dónde encontrar una biblioteca que trabaje con palabras en inglés, la búsqueda termina aquí. Hay una biblioteca llamada english_words que contiene como máximo 5000 palabras usadas en inglés con algunas funciones de utilidad. Es útil en aplicaciones como diccionarios o aplicaciones relacionadas con la enseñanza. En este artículo, aprenderemos sobre él y veremos su uso. En el futuro, el autor de este paquete podría agregarle más funcionalidades.
Agrega el paquete:
Primero, agregue el paquete english_words a pubspec.yaml usando cualquiera de los siguientes métodos que se muestran a continuación.
Ejecute el siguiente comando en la terminal de IDE:
flutter pub add english_words
O agréguelo en la sección de dependencias en el archivo pubspec.yaml y configúrelo usando pub get-
Dart
dependencies: english_words: ^4.0.0
Importar la dependencia:
En el archivo main.dart , agregue la dependencia english_words.
Dart
import 'package:english_words/english_words.dart';
Implementación:
Estaremos escribiendo todo el código en el archivo main.dart .
Generar palabras:
Si queremos generar palabras en inglés, usamos la función generateWordPairs(), podemos decirle a esta función cuántas palabras queremos generar. Aquí, estamos creando una función de generar palabras(). Para recorrer cada palabra generada, usamos el método forEach() y agregamos cada palabra generada a la lista de palabras para mostrarlas más tarde en la interfaz de usuario.
Dart
generateWords() { generateWordPairs().take(5).forEach((element) { words.add(element.toString()); }); }
Generar sustantivos:
Ahora, queremos generar sustantivos, creamos funciones generateNouns(), en las que usamos el método de sustantivos y le decimos que entregue 50 sustantivos. Luego los recorremos y los agregamos a la lista de sustantivos para luego mostrarlos en la pantalla. Mostraremos elementos en la lista usando ListView.builder.
Dart
List nounsList = []; generateNouns() { nouns.take(50).forEach((element) { nounsList.add(element.toString()); }); }
Producción:
Código fuente completo:
Dart
import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:english_words/english_words.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'english words', theme: ThemeData( primarySwatch: Colors.green, ), home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { List words = []; List nounsList = []; generateNouns() { nouns.take(30).forEach((element) { nounsList.add(element.toString()); }); } generateWords() { generateWordPairs().take(30).forEach((element) { words.add(element.toString()); }); } void initState() { generateWords(); generateNouns(); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("GeeksForGeeks"), centerTitle: true, ), body: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, child: Row( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Container( width: 70, child: Column( mainAxisAlignment: MainAxisAlignment.start, children: [ Text( "Words", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), Expanded( child: words.isNotEmpty ? ListView.builder( itemCount: words.length, itemBuilder: (ctx, idx) { return Text(words[idx]); }) : Text("Loading..."), ) ], ), ), Container( width: 80, child: Column( crossAxisAlignment: CrossAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end, children: [ Text( "Nouns", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), Expanded( child: nounsList.isNotEmpty ? ListView.builder( itemCount: nounsList.length, itemBuilder: (ctx, idx) { return Text(nounsList[idx]); }) : Text("Loading..."), ) ], ), ), ], ), ), ); } }
Producción: