darkmoonight / ToDark

📝 Task management application
MIT License
186 stars 23 forks source link

Десктопная версия(+синхронизация между ПК и телефоном) #25

Open f1refa11 opened 8 months ago

f1refa11 commented 8 months ago

Синхронизация будет осуществляться по Wi-Fi; Типы синхронизации: Автоматически(можно выбрать частоту синхронизации), вручную; В случае, если данные двух девайсов будут конфликтовать, на обоих устройствах в приложении отобразится уведомление, нажав на которое, откроется список элементов которые конфликтуются. Ниже каждого элемента будет 2 кнопки: "Из ПК", "Из телефона", слева каждого будет checkbox, выше всех будет кнопка "Выбрать всё"(при нажатии которой текст заменится на "Отменить всё"), а поверх всех будут также 2 кнопки "Из ПК", "Из телефона".

Про саму фичу десктопной версии ничего описать не могу т.к. вы сами писали что новый дизайн в разработке :) поэтому могу только пожелать удачи сделать это как можно скорее!

Leonavichus commented 8 months ago

Это будет не скоро. Я еще не настолько опытный программист.

f1refa11 commented 8 months ago

Это будет не скоро. Я еще не настолько опытный программист.

Насчёт десктопной версии - я вижу, что вероятно проект написан на Flutter(через Dart), и также в проекте присутствуют папки "windows", "linux", "macos". Я хоть сам и не знаю Flutter(да и dart тоже), но знаю что он хорошо подходит для создания кросс-платформенных приложений, поэтому я думаю в интернете найдутся туториалы для создания десктопной версии.

Насчёт синхронизации сам не знаю т.к.:

сам и не знаю Flutter(да и dart тоже)

но могу только примерно объяснить: нужно на двух платформах настроить мини-сервер и желательно требуется держать его запущенным пока устройство работает - на пк можно поставить либо службу которая будет "следить" за соединёнными устройствами либо при запуске системы запускать просто целую программу, на телефоне только через какую-нибудь службу(не знаю как это реализовывается). Но также надо заметить что на двух девайсах придётся ещё и клиентскую одновременно часть держать включённой.

Дальше, каждые несколько минут(например), телефон отправляет "пинг" на ПК с действием "сравнить и найти что появилось, а что удалилось", получает, меняет в приложении на телефоне данные, и если всё прошло отлично, отправить компьютеру ещё запрос по типу "эй, не забудь и у меня сравнить!", после чего ПК понимает это действие и делает всё также, как делало мобильное приложение.

НО, если лень самому всё такое реализовывать, не забываем, что уже есть похожее решение - git и другие SCM(source code management) утилиты - там также есть сравнение, fetch, pull и т.д. что впринципе может сделать разработку синхронизации ещё легче :).

По желанию, могу немного поддержать вас через DonationAlerts прямо сейчас, чтобы появилось немного мотивации :)

Leonavichus commented 8 months ago

Большое спасибо за объяснение, постараюсь сделать. Просто еще проблема во времени, его не очень много. Но со следующей недели его будет больше и я смогу активно заняться улучшением приложения.

По желанию, могу немного поддержать вас через DonationAlerts прямо сейчас, чтобы появилось немного мотивации :)

Лучше это сделайте, когда я выложу новую версию, чтобы было за что. Думаю, к концу месяца выпущу.