Flutter – Trabajar con palabras en inglés

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:

Publicación traducida automáticamente

Artículo escrito por rn540 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *