Local-first Android-приложение для расписания лекарств, точных напоминаний и истории приёмов. Основной сценарий работает без аккаунта и без сервера; аккаунт нужен только для резервной копии и синхронизации.
Android 1.0.2 · CI · Android 7+ · MIT
Статус: протестированный подписанный Android-релиз 1.0.2. Приложение проверено в реальном использовании и работает хорошо; APK, подпись, установка и основные сценарии дополнительно подтверждены release-проверками ниже. В Google Play приложение не опубликовано.
«Пора» хранит назначения локально и помогает пройти короткий ежедневный цикл без лишних экранов:
- Создать курс.
- Получить точное уведомление.
- Отметить приём или пропуск.
- Увидеть результат в истории.
Приложение не назначает лечение, не проверяет совместимость препаратов и не заменяет врача или инструкцию.
- локальная SQLite-база и полноценная работа без аккаунта;
- несколько приёмов в сутки и необязательная дата окончания курса;
- нативные Android spinner-пикеры времени и даты;
- точные Android alarms, восстановление расписания после reboot и пересчёт при смене timezone;
- действия из уведомления: принять или пропустить;
- история событий и экспорт;
- контроль остатка лекарства;
- optional account sync с token rotation, recovery code и удалением аккаунта;
- Argon2id для паролей, hashed recovery/refresh tokens и HTTPS;
- accessibility labels и увеличенные touch targets.
- Откройте GitHub Release 1.0.2.
- Скачайте
Pora-1.0.2-android.apkи файл.sha256рядом с ним. - Разрешите установку приложений из выбранного источника, если Android запросит это.
- В настройках «Поры» разрешите уведомления и точные будильники.
- На Xiaomi, Samsung и Huawei дополнительно проверьте ограничения батареи.
- Package ID:
net.logachev.pora - Version:
1.0.2 (3) - Minimum: Android 7.0 / API 24
- Target: Android 16 / API 36
- Signing certificate SHA-256:
84896805b83fb7c8bae0ceefaea0a450deca5bc3a2de5ebb67f1a4c3c5c1469c - APK SHA-256:
e9003508124ac501dc0ac2519dd075e5a01bb2eff2f880ac79edb9d7337d02a9
Полные release notes и acceptance evidence: docs/release/RELEASE_NOTES_1.0.2.md.
React Native / Expo app
- domain model и SQLite repository;
- notification planner и reconciler;
- нативный Android exact-alarm module;
- secure session store;
- optional sync client через HTTPS.
Fastify API
- Argon2id auth и JWT rotation;
- idempotent event stream;
- PostgreSQL.
Подробности: docs/ARCHITECTURE.md.
Требования: Node.js 24, npm, Android SDK и JDK 21.
npm ci
npm run typecheck
npm test -- --runInBand
npx expo-doctor
npm run androidДля web preview:
npm run webcd backend
cp .env.example .env
npm ci
npm run migrate
npm run devНужны PostgreSQL и собственный JWT_SECRET длиной не менее 32 символов. Production secrets в репозитории отсутствуют.
На текущей release-линии подтверждены:
- mobile: 18 Jest suites / 37 tests, TypeScript и Expo Doctor 20/20;
- backend: 2 Vitest suites / 8 tests, TypeScript и production build;
- signed APK: package metadata
1.0.2 (3), APK Signature Scheme v2 и сертификат RSA 3072; - clean install и update install на Android 16 emulator;
- Exact Alarm в forced deep Doze, действия уведомлений и восстановление после reboot;
- нативные time/date pickers, несколько приёмов в сутки и отмена незавершённого выбора;
- production
/health, privacy и terms endpoints.
src/— mobile domain, data, UI, notifications и sync;modules/pora-device-settings/— нативная Android exact-alarm integration;backend/— Fastify/PostgreSQL sync service;scripts/— explicit production smoke test;docs/— architecture, screenshots и release evidence.
-
локальные функции не требуют аккаунта;
-
аудио, реклама и рекламное профилирование отсутствуют;
-
серверная синхронизация включается только после создания аккаунта;
-
аккаунт и серверную копию можно удалить из приложения;
-
секреты подписи APK и production credentials не входят в репозиторий.
-
Политика: https://pora.194-87-101-107.sslip.io/legal/privacy
-
Security policy: SECURITY.md
- release не опубликован в Google Play;
- iOS target описан в Expo config, но iOS build и acceptance не подтверждены;
- доставка уведомлений зависит от OEM-настроек батареи;
- приложение не является медицинским изделием.
Код проекта — MIT. Сторонние компоненты сохраняют собственные лицензии; см. THIRD_PARTY_NOTICES.md.

