Mocky
A clean, extensible data generator package for tests, demos, and mock data.
Features
- Multi-locale support: Ukrainian (uk) and US English (us)
- Generate random words from dictionaries of ~1000 common words per locale
- Generate random names from dictionaries of 100 names per locale
- Generate locale-specific phone numbers with real operator prefixes
- Generate Gmail email addresses with locale-appropriate names/words
- Simple, static API for easy integration
- No external dependencies
- Lightweight and fast
Getting started
Add mocky to your pubspec.yaml:
dependencies:
mocky: ^0.1.0
Then import it:
import 'package:mocky/mocky_data.dart';
Usage
Locale selection
Set the locale for data generation (default is Ukrainian):
// Use Ukrainian locale (default)
Mocky.setLocale(Locale.uk);
// Switch to US locale
Mocky.setLocale(Locale.us);
// Check current locale
print(Mocky.getLocale()); // Locale.us
Words
Generate random words in the current locale:
String word = Mocky.word();
print(word); // Ukrainian: "будинок" or US: "house"
List<String> words = Mocky.words(5);
print(words); // ["дерево", "місто", "книга", "вода", "сонце"]
Names
Generate random names in the current locale:
String name = Mocky.name();
print(name); // Ukrainian: "Олександр" or US: "James"
List<String> names = Mocky.names(5);
print(names); // ["Марія", "Андрій", "Катерина", "Дмитро", "Софія"]
Phone numbers
Generate locale-specific phone numbers:
// Ukrainian format: +380XXXXXXXXX (13 chars)
Mocky.setLocale(Locale.uk);
String phone = Mocky.phone();
print(phone); // "+380501234567"
// US format: +1XXXXXXXXXX (12 chars)
Mocky.setLocale(Locale.us);
String phone = Mocky.phone();
print(phone); // "+12125551234"
List<String> phones = Mocky.phones(5);
Email addresses
Generate Gmail addresses with locale-appropriate names:
String email = Mocky.email();
print(email); // Ukrainian: "oleksandr123@gmail.com" or US: "james456@gmail.com"
List<String> emails = Mocky.emails(5);
Complete example
import 'package:mocky/mocky_data.dart';
void main() {
// Ukrainian data
Mocky.setLocale(Locale.uk);
print(Mocky.word()); // "будинок"
print(Mocky.name()); // "Олександр"
print(Mocky.phone()); // "+380501234567"
print(Mocky.email()); // "oleksandr123@gmail.com"
// US data
Mocky.setLocale(Locale.us);
print(Mocky.word()); // "house"
print(Mocky.name()); // "James"
print(Mocky.phone()); // "+12125551234"
print(Mocky.email()); // "james456@gmail.com"
}
Supported locales
- Ukrainian (uk): ~1000 Ukrainian words, 100 Ukrainian names, Ukrainian mobile operators (039, 050, 063, 066, 067, 068, 073, 091-099)
- US (us): ~1000 English words, 100 American names, US area codes
Notes
- If you request more words or names than the dictionary size, duplicates may occur
- Phone numbers use real operator prefixes for each locale
- Email addresses are generated by normalizing names/words to lowercase Latin characters and adding random digits
Roadmap
Future versions may include:
- Additional locales (UK, Canada, etc.)
- Company name generators
- Seeded random generation for reproducible results
- Word categories and pluralization
- Address generators
Additional information
This package is in early development. Contributions, issues, and feature requests are welcome on GitHub.
Libraries
- mocky
- A clean, extensible data generator package for tests, demos, and mock data.