islamic_utils 1.0.0
islamic_utils: ^1.0.0 copied to clipboard
A comprehensive Dart/Flutter package for Islamic utilities including accurate prayer times calculation with 18+ methods, Qibla direction and distance, and complete inheritance (faraidh) distribution a [...]
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2024-01-07 #
Added #
Prayer Times Module
- 9 prayer times: Imsak, Fajr, Sunrise, Dhuha Start, Dhuha End, Dhuhr, Asr, Maghrib, Isha
- 18 calculation methods from global Islamic authorities
- Kemenag (Indonesia)
- MWL (Muslim World League)
- ISNA (North America)
- Umm al-Qura (Saudi Arabia)
- Egyptian General Authority
- University of Islamic Sciences, Karachi
- And more...
- High latitude rules: middleOfNight, oneSeventh, angleBased
- Asr madhhab: Standard (Shafi'i/Maliki/Hanbali) and Hanafi
- Safety buffer for prayer start times
- Monthly prayer times calculation
- Next prayer detection
Qibla Module
- Qibla direction (bearing) calculation using great circle formula
- Distance to Ka'bah using Haversine formula
- 16-point compass direction
- Ka'bah proximity detection
Inheritance (Faraidh) Module
- 30+ heir types following Islamic jurisprudence
- 7 Hijab (blocking) rules
- Furudh (fixed share) calculation: 1/2, 1/3, 1/4, 1/6, 1/8, 2/3
- Asabah (residuary) distribution: bi nafs, bil ghayr, maa ghayr
- Aul (proportional reduction) when shares exceed 100%
- Radd (redistribution) when shares are less than 100%
- 10 special cases including Umariyatayn, Mushtarakah
- Estate deduction handling: debts, funeral costs, wasiyyah
- Wasiyyah limit enforcement (max 1/3 unless approved)
- Debug trace output
Core Utilities
Result<T>pattern for type-safe error handlingCoordinatesclass with validationDateOnlyclass for date-only operationsFractionclass for precise arithmeticLibraryErrorwith categorized error codes- Math utilities for degree-based trigonometry
Notes #
- Pure Dart implementation (no external dependencies for core calculations)
- Immutable data classes
- Comprehensive test coverage (21 tests)
[Unreleased] #
Planned #
- Hijri calendar conversion
- Prayer time notifications helper
- Additional calculation methods
- IANA timezone support (via external package)