Розробка мобільного додатку для релігійних організацій
Додаток для релігійної організації — це кілька специфічних вимог, яких немає в звичайному корпоративному додатку: мультимовність з RTL-підтримкою (арабська, іврит), точне відображення священних текстів з верним рендерингом діакритичних знаків, розклад богослужінь з урахуванням лунного календаря, медіатека з проповідями та трансляції в реальному часі.
Тексти та типографія
Священні тексти — не звичайний контент. Коран потребує Arabic script з правильним tashkeel (огласовками), Тора — іврит з никудот. RTL-текст на мобільних: iOS UIKit працює з NSAttributedString + NSParagraphStyle, directional атрибути через NSMutableParagraphStyle.baseWritingDirection = .rightToLeft. У SwiftUI — environment(\.layoutDirection, .rightToLeft).
На Android: android:textDirection="rtl" чи TextView.textDirection = TEXT_DIRECTION_RTL. Для коректного рендерингу складних скриптів — HarfBuzz (вбудований в Android 5+) та ICU. Проблема з арабськими лігатурами на старих Android-пристроях: HarfBuzz pre-5.0 не підтримує всі контекстуальні форми букв. Target minSdkVersion 21+ вирішує більшість проблем.
Шрифти: для арабської — Amiri, Scheherazade New (SIL). Для іврита — Frank Rühl Libre, Miriam. Bundled fonts гарантують коректний рендеринг на всіх пристроях.
Розклад та ісламський/єврейський календар
Розклад намазу — розраховується за геолокацією на основі астрономічних алгоритмів (методи: Muslim World League, ISNA, Karachi, MWL). Бібліотеки: Adhan (Swift/Kotlin порт — open source, гарна точність). Обчислення на клієнті без мережі — критично для offline.
Ісламський (хиджрі) календар: iOS Calendar(identifier: .islamicCivil) чи .islamicTabular. Android java.util.Calendar не підтримує хиджрі напрямую — потрібен Android android.icu.util.IslamicCalendar (API 24+) чи бібліотека. Конвертація дат — частий источник off-by-one помилок при граничних датах.
Єврейський календар: iOS Calendar(identifier: .hebrew). Рош Хашана, Yom Kippur, Песах — вычисляються відносно лунно-сонячного циклу. KosherJava (Android) — найповніша бібліотека для расчёту єврейських дат та часу зажигання свічок.
Медіатека: проповіді та лекції
Проповіді — це аудіо/відео контент з вимогами як у подкаст-плеєрі: background playback, Lock Screen controls, variable speed, offline-завантаження. На iOS: AVPlayer + AVAudioSession.category = .playback. На Android: MediaSessionCompat + ExoPlayer через MediaBrowserServiceCompat для foreground service.
Каталог проповідей: серії, теги (тема, оратор, дата), full-text search. Elasticsearch з підтримкою арабської морфології — arabic analyzer, стеммер Snowball для Arabic (є в Elasticsearch). Для російськомовних громад — russian analyzer.
Live-трансляція богослужінь. RTMP-стриміинг (OBS / мобільний енкодер) → конвертація в HLS через nginx-rtmp чи AWS IVS → воспроизведення через AVPlayer (iOS) / ExoPlayer (Android). Для невеликих громад — YouTube Live embed у WKWebView як простий розв'язок. Для власної інфраструктури — Ant Media Server як self-hosted RTMP/HLS сервер.
Пожертвування та фінансові потоки
Пожертвування через Apple Pay / Google Pay: PKPaymentAuthorizationViewController на iOS, PaymentRequest API через Android Pay. Еквайринг: локальні платіжні процесори. Stripe для міжнародних організацій.
Важливо: Apple берёт 30% з In-App Purchases, але прямі платіжні SDK (Apple Pay до зовнішнього еквайрера) не підпадають під IAP fees при дотриманні App Store guidelines 3.1.1.
Уведомлення по розкладу
Нагадування про намаз, богослужіння, пост — локальні уведомлення, не push. Працюють без мережі та без сервера. На iOS: UNCalendarNotificationTrigger з DateComponents — планувати на тиждень вперед при зміні налаштувань чи геолокації. На Android: AlarmManager.setExact (API 31+ вимагає SCHEDULE_EXACT_ALARM дозвіл) чи WorkManager.
Ліміт: iOS дозволяє максимум 64 запланованих локальних уведомлення одночасно. При щодня 5 намазах на 10 днів = 50 уведомлень — вписується. При перерахуванні розкладу (користувач переїхав) — скасувати всі попередні, запланувати нові.
Графіки
1–2 тижні — базовий додаток з розкладом та медіатекою. 1–3 місяці — повнофункціональна платформа з live-трансляцією, пожертвованнями та RTL-підтримкою. Вартість розраховується індивідуально після аналізу вимог.







