A pure Dart, fully tested and ISO-driven ecosystem for the world's data in the form of compile-time, tree-shakable constant sealed classes.
Tip
Flutter packages follow a world prefix convention, whereas Dart packages utilize the sealed prefix.
Package | SDK | Description | Pub |
---|---|---|---|
world_countries | Flutter | Country/phone/currency/language pickers and APIs for typed localizations. | |
world_flags | Flutter | Country flags built entirely with Flutter's CustomPainters. | |
sealed_countries | Dart | Countries in the form of compile-time constant sealed classes. | |
sealed_currencies | Dart | Currencies in the form of compile-time constant sealed classes. | |
sealed_languages | Dart | Languages in the form of compile-time constant sealed classes. |
This ecosystem exhibits a strict hierarchical dependency structure. At the foundation are languages and scripts, essential for localization and translation across all packages. Building upon this, currencies are required for subsequent packages dealing with countries. The countries package, is necessary for rendering country flags, which is then needed by the world_countries package for displaying localized (given that a locale typically consists of three components: language, script, and region/country) country, language and currency names, and also flags (for example within country/phone code pickers).
graph TD
sealed_languages["<span title='Sealed Languages Package'>sealed_languages</span>"]
sealed_currencies["<span title='Sealed Currencies Package'>sealed_currencies</span>"]
sealed_countries["<span title='Sealed Countries Package'>sealed_countries</span>"]
world_flags["<span title='World Flags Package'>world_flags</span>"]
world_countries["<span title='World Countries Package'>world_countries</span>"]
sealed_languages --> sealed_currencies --> sealed_countries --> world_flags --> world_countries
click sealed_languages "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_languages"
click sealed_currencies "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_currencies"
click sealed_countries "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_countries"
click world_flags "https://github.com/tsinis/sealed_world/tree/main/packages/world_flags"
click world_countries "https://github.com/tsinis/sealed_world/tree/main/packages/world_countries"
style sealed_languages fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_currencies fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_countries fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style world_flags fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10
style world_countries fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10