Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Простое приложение на Electron для изучения фреймворка - таймера помидора. Показывает значок в трее с выпадающим меню.

Notifications You must be signed in to change notification settings

hazadus/electron-pomodoro

Repository files navigation

🍅 electron-pomodoro

Простое приложение на Electron для изучения фреймворка - таймера помидора. Показывает значок в трее с выпадающим меню.

Разработка была вдохновлена вот этим приложением: https://github.com/orta/pzdeploys. Блог автора – https://orta.io/

Скриншот с окнами приложения

О методе

«Метод помидора» – техника управления временем, которая предполагает увеличение эффективности работы при меньших временных затратах за счёт глубокой концентрации и коротких перерывов. В классической технике отрезки времени — «помидоры» длятся полчаса: 25 минут работы и 5 минут отдыха.

Базовые принципы

  • Определитесь с задачами, которые планируете выполнять.
  • Установите таймер на 20-25 минут.
  • Работайте, ни на что не отвлекаясь, до сигнала таймера.
  • Сделайте короткий перерыв (5 минут).
  • После каждого 4-го «помидора» делайте длинный перерыв (15-30 минут).

Для подробностей см. статью в Википедии.

Документация

Ссылки

Запуск и сборка

Установка

  • Скачать последний релиз со страницы https://github.com/hazadus/electron-pomodoro/releases/
  • Для MacOS:
    • Так как приложение не подписано, выполнить с указанием верного пути к приложению: xattr -d com.apple.quarantine ~/Downloads/Pomodoro\ Timer.app

Для разработки

# Сборка TypeScript файлов
npm run build

# Запуск приложения
npm start

# Сборка для распространения
# Это создаст готовое приложение в папке out/
npm run make

Более подробная информация об используемых в проекте инструментах разработки и автоматизации находится в файле docs/dev.md.

📝 Система логирования

Приложение использует electron-log для комплексного логирования всех операций:

Файлы логов

Логи сохраняются в директории logs/ внутри папки данных приложения:

  • macOS: ~/Library/Application Support/Pomodoro Timer/logs/
  • Windows: %APPDATA%/Pomodoro Timer/logs/
  • Linux: ~/.config/Pomodoro Timer/logs/

Типы логов

  • main.log - основные логи приложения (до 5MB)
  • timer.log - логи работы с таймерами
  • stats.log - логи статистики
  • settings.log - логи настроек
  • notification.log - логи уведомлений
  • sound.log - логи воспроизведения звуков
  • tray.log - логи системного трея

Уровни логирования

  • error: критические ошибки, исключения, сбои системы
  • warn: предупреждения, неожиданные ситуации
  • info: важные события приложения (запуск/остановка таймера, сохранение настроек)
  • debug: детальная информация для отладки (только в development режиме)

Автоматическая очистка

  • Логи старше 30 дней автоматически удаляются
  • Максимальный размер одного файла лога: 5MB
  • Ротация файлов при превышении размера

🔒 Управление экземплярами приложения

Приложение автоматически предотвращает запуск нескольких экземпляров одновременно, используя встроенный механизм Electron requestSingleInstanceLock().

Логика работы

При запуске приложения:

  • Приложение запрашивает эксклюзивную блокировку через app.requestSingleInstanceLock()
  • Если блокировка получена - приложение запускается нормально
  • Если блокировка недоступна (уже есть запущенный экземпляр) - приложение завершается с соответствующим логом

При попытке запуска второго экземпляра:

  • Второй экземпляр автоматически завершается
  • Первый экземпляр получает событие second-instance и выполняет следующие действия:
    • Логирует попытку запуска дополнительного экземпляра
    • Если нет открытых окон - показывает окно "О программе"
    • Если есть открытые окна - восстанавливает их из свернутого состояния и устанавливает фокус

Кроссплатформенность

Логика single instance работает на всех поддерживаемых платформах:

  • Windows: Полная поддержка через механизмы Windows
  • Linux: Полная поддержка через файловые блокировки
  • macOS: Дополнительная нативная поддержка через Finder (автоматическое предотвращение запуска из GUI)

About

Простое приложение на Electron для изучения фреймворка - таймера помидора. Показывает значок в трее с выпадающим меню.

Resources

Stars

Watchers

Forks