Esmaul Husna Flutter Package | MuslimBG

Esmaul Husna Flutter Version Null Safety

A comprehensive Flutter package providing the 99 Names of Allah (Esmaul Husna) with translations and meanings in multiple languages. Currently supports Bulgarian, English, Turkish. Perfect for Islamic applications, prayer apps, and educational software.

Features

  • Complete list of the 99 Names of Allah with:
    • Original Arabic script
    • Transliterations
    • Translations in multiple languages
    • Detailed meanings and descriptions
  • Async API for efficient data loading
  • Random name selection functionality
  • Comprehensive language support
  • Null safety enabled
  • Offline support (bundled data)
  • Extensive documentation and examples

Installation

Add to your pubspec.yaml:

dependencies:
  esmaulhusna_muslimbg: ^1.0.0

Then run:

flutter pub get

Usage

Import the package:

import 'package:esmaulhusna_muslimbg/esmaulhusna_muslimbg.dart';

Get Names in Specific Language

// Get all names in a specific language
final names = await EsmaulHusna.getNames('en');
final bulgarianNames = await EsmaulHusna.getNames('bg');
final turkishNames = await EsmaulHusna.getNames('tr');

// Get a random name
final randomName = await EsmaulHusna.getRandomName('en');
 

Name Structure

Each name entry contains:

{
  'arabic': 'Arabic text of the name',
  'name': 'Name in requested language',
  'translation': 'Description/meaning in requested language'
}

Example ListView Implementation

FutureBuilder<List<Map<String, String>>>(
  future: EsmaulHusna.getNames('en'),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      return ListView.builder(
        itemCount: snapshot.data!.length,
        itemBuilder: (context, index) {
          final name = snapshot.data![index];
          return ListTile(
            title: Text(name['arabic']!),
            subtitle: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(name['name']!),
                Text(name['translation']!),
              ],
            ),
          );
        },
      );
    }
    return CircularProgressIndicator();
  },
)

Supported Languages

  • 🇬🇧 English (en)
  • 🇧🇬 Bulgarian (bg)
  • 🇹🇷 Turkish (tr)

Error Handling

The package includes robust error handling:

try {
  final names = await EsmaulHusna.getNames('invalid_code');
} catch (e) {
  print('Error: Invalid language code');
}

Contributing

Contributions are welcome! Please feel free to submit pull requests, report bugs, or request features on our GitHub repository.

License

This package is available under the MIT License.

Support

If you find this package helpful, please give it a ⭐ on GitHub!