Представляем Чжун
Сегодня я рад представить Zhong, мой последний проект с открытым исходным кодом. Zhong — отсутствующее приложение часов для macOS и Windows. Чжун состоит из трех частей: мировых часов, секундомера и таймера. Он был разработан, чтобы иметь чистый и элегантный пользовательский интерфейс.
Технологии
Я использовал Electron, потому что он предоставляет кросс-платформенный графический пользовательский интерфейс, а также позволяет легко настраивать и макетировать. Electron — моя любимая библиотека для настольных интерфейсов, требующих детализированных интерфейсов.
Typescript предоставляет строго типизированный язык, совместимый с javascript. Он также предоставляет полезные функции, такие как интерфейсы и перечисления. Typescript также позволяет мне гарантировать правильные типы параметров для компонентов и методов и предотвращает недопустимое преобразование данных.
ReactJS — моя любимая библиотека для HTML-интерфейсов благодаря ее гибкости и моему опыту работы с ней. Я использовал отличную библиотеку BlueprintJS для компонентов и Emotion для пользовательского стиля. Я также использовал ReactJS для рендеринга пользовательских SVG, используемых для аналоговых часов на экране мировых часов и обратного отсчета таймера.
В качестве инструмента сборки я использовал Parcel. Parcel поддерживает Electron в качестве цели и допускает несколько точек входа. Мне проще использовать его в небольших проектах, чем Webpack и Rollup.
Задачи
Двумя основными проблемами при создании Zhong были создание надежного таймера и рисование аналоговых циферблатов.
Я исправил дрейф времени Javascript setInterval с помощью метода, описанного здесь.
Часть 2 (скоро) объяснит математику рисования циферблатов.
Скачать
Скачать Zhong с GitHub можно здесь. Звезды приветствуются 😄