MuslimData 是一个伊斯兰库,提供礼拜时间(固定和计算)、离线地理编码器、位置搜索、赞念(Hisnul Muslim)以及真主的 99 个尊名。
固定和计算的礼拜时间:世界上大多数城市都使用基于位置(经度和纬度)的计算方法来确定礼拜时间,但有些城市有固定的礼拜时间表。该库包含大多数固定和计算的礼拜时间。现在你可以贡献它来改进它,也可以在穆斯林社区或穆斯林应用程序中使用它。
如果你要从 muslim-data-ios
的 1.x 版本升级到 2.x 版本,请参阅 迁移指南,获取有关更新代码以适应最新版本更改的详细说明。
要运行示例项目,请克隆仓库并运行。
MuslimData 可通过 CocoaPods 获得。 要安装它,只需将以下行添加到你的 Podfile 中
pod 'MuslimData'
Swift 包管理器 是一种用于自动分发 Swift 代码的工具,并已集成到 swift
编译器中。
一旦你设置好你的 Swift 包,将 MuslimData 添加为依赖项就像将其添加到你的 Package.swift
文件的 dependencies
值或 Xcode 中的 Package 列表一样容易。
dependencies: [
.package(url: "https://github.com/kosratdev/muslim-data-ios", .upToNextMajor(from: "2.0.0"))
]
如果你更喜欢通过 Xcode 管理你的 Swift 包,你也可以使用 Xcode 的 UI 将 Muslim Data 添加为依赖项
File
菜单 > Swift Packages
> Add Package Dependency...
。https://github.com/kosratdev/muslim-data-ios.git
) 粘贴到搜索栏中,然后点击 Next
。2.0.0
版本开始,Up to Next Major
),然后点击 Next
。有一些位置助手方法提供 离线 位置搜索、地理编码器、反向地理编码器,并检查某个位置的固定礼拜时间。
你可以搜索世界各地的任何城市或地点,当用户没有互联网连接或用户的定位已关闭时,这非常有用,因此你可以在此处进行搜索
let locations = try! await MuslimRepository().searchLocation(locationName: "London")
guard let locations = locations, locations.count > 0 else {
print("Location could not be found!")
return
}
print("locations: \(locations)")
使用地理编码器按名称查找位置。
// Use geocoder to find a location by name.
let location = try! await MuslimRepository().geocoder(countryCode: "GB", locationName: "London")
guard let location = location else {
print("Location name can not be geocoded")
return
}
print("location: \(location)")
使用反向地理编码器按纬度和经度查找位置。
// Use reverse geocoder to find a location by its latitude and longitude.
let location = try! await MuslimRepository().reverseGeocoder(latitude: 36.654090, longitude: 44.541278)
guard let location = location else {
print("Location name can not be geocoded by latitude and longitude")
return
}
print("location: \(location)")
只需将 (Location
, PrayerAttribute
, 和 Date
) 对象传递给 getPrayerTimes
方法,即可轻松获取位置礼拜时间。
// Create location object.
let location = // it should be retrieved from geocoder, reverseGeocoder, or searchLocation methods.
// Crate prayer attributes object.
let attributes = PrayerAttribute(method: .makkah, asrMethod: .shafii, adjustAngle: .angleBased)
// Get prayer times
let prayerTime = try! await MuslimRepository().getPrayerTimes(location: location, date: Date(), attributes: attributes)
print("prayer times: \(prayerTime!)")
print("Fromat prayer times: \(prayerTime!.formatPrayers(.time12))")
print("Format one prayer time: \(prayerTime!.isha.toTime(format: .time24))")
print("next prayer index: \(prayerTime!.nextPrayerIndex())")
print("next prayer interval: \(prayerTime!.nextPrayerInterval())")
print("next prayer time remaining: \(prayerTime!.nextPrayerTimeRemaining())")
从 (Hisnul Muslim 书籍) 获取所有赞念,这些赞念按 (Category
, Chapter
, 和 Item
) 分类,并且这些赞念适用于以下语言 (en
, ar
, ckb
, ckb_BADINI
, fa
, 和 ru
)
获取所有赞念类别,并针对给定的语言进行本地化。
// Get azkar categories from MuslimData library
let azkarCategories = try! await MuslimRepository().getAzkarCategories(language: .en)
print("Azkar Categories: \(azkarCategories!)")
获取赞念章节,并针对给定的语言进行本地化。
// Get azkar chapters from MuslimData library
let azkarChapters = try! await MuslimRepository().getAzkarChapters(language: .en)
print("Azkar Chapters: \(azkarChapters!)")
获取特定类别的赞念章节,并针对给定的语言进行本地化。
// Get azkar chapters for a specific category from MuslimData library
let azkarChapters = try! await MuslimRepository().getAzkarChapters(language: .en, categoryId: 2)
print("Azkar Chapters for a category: \(azkarChapters!)")
获取特定章节的赞念条目,并针对给定的语言进行本地化。
// Get azkar items for a specific chapter from MuslimData library
let azkarItems = try! await MuslimRepository().getAzkarItems(language: .en, chapterId: 2)
print("azkar items: \(azkarItems!)")
获取真主的 99 个尊名及其翻译,现在这些翻译适用于以下语言 (en
, ar
, ckb
, ckb_BADINI
, fa
, 和 ru
)
// Get 99 names of allah from MuslimData library
let namesOfAllah = try! await MuslimRepository().getNamesOfAllah(language: .en)
print("Names of Allah: \(namesOfAllah)")
Kosrat D. Ahmed, kosrat.d.ahmad@gmail.com
MuslimData 在 Apache 许可下可用。有关更多信息,请参阅 LICENSE 文件。