An open API service indexing awesome lists of open source software.

https://github.com/yalishanda42/bdz-delays

БДЖ табла за всяка гара в реално време.
https://github.com/yalishanda42/bdz-delays

actors composable-architecture realm spm swiftui tca

Last synced: 10 months ago
JSON representation

БДЖ табла за всяка гара в реално време.

Awesome Lists containing this project

README

          

# БДЖ Закъснения

[![App Store](https://img.shields.io/badge/App_Store-0D96F6?style=for-the-badge&logo=app-store&logoColor=white)](https://apps.apple.com/us/app/бдж-закъснения/id6449440775)

Този iOS и macOS апп предоставя информация за пристигащите и заминаващите влакове до и от всяка гара в страната, с актулна информация за тяхното закъснение в минути.

## Архитектура

Приложението използва [The Composable Architecture (TCA)](https://github.com/pointfreeco/swift-composable-architecture), като е разделено по модули, базирани както на функционалност, така и на слоеве (т.е. и "хоризонтално", и "вертикално"), доколкото има смисъл да бъде приложимо. За модуляризацията е използван Swift Package Manager пакет ([bdz-delays](./BDZDelays/bdz-delays/)). Следната схема илюстрира най-добре избраната композиция по модули:

![Архитектура](./assets/dependencies.svg)

## Принос към проекта

Всеки е добре дошъл да оправи бъг, направи нова функционалност, или просто да се оплаче или даде идея за нещо.

⚠️ За да се подкара приложението:
1. Необходим е Xcode с версия поне 14.3, както и Swift 5.8+. Това изискване идва от зависимостта от [Actor-isolated Realms](https://www.mongodb.com/docs/realm/sdk/swift/actor-isolated-realm/). За тестовете (всички наведнъж могат да се изпълнят с `fastlane test`) няма такова ограничение.
2. По разбираеми причини, Google-Info.plist файлът за Firebase не е включен в репото. Firebase се използва само за Crashlytics за момента, така че слагането на свой собствен такъв конфигурационен фейл ще е напълно достатъчно.

## Лиценз

Избраният лиценз е [MIT](LICENSE). Приложението се използва единствено с демонстративна, информативна и обучителна, некомерсиална цел.

Информацията се придобива от [ROVR.info](https://rovr.info) в реално време. Приложението не е спонсорирано от БДЖ (засега поне 🤔).