3
« : 30 Августа 2009, 17:07:53 »
После выхода 5.0.1, в которой появляется цитатник и множественные закладки, остро встает необходимость в синхронизации с ПК. Ибо одно дело потерять (причин по которой могут потеряться настройки программы куча, начиная от сбоя при обновлении и заканчивая кражей/сменой телефона) закачанные книжки, которые с легкостью можно перекачать заного. И совсем другое дело потерять цитаты, для востановления которых, придется перечитать книгу.
В идеале я вижу приложение под ПК, чем то похожим на iTunse. Пуская он многим не нравится, но лично я, кроме производительности других проблем в нем не вижу. А то что он использует организацию в виде картотеки, а не папок, на мой взгляд является недостатком только для тех, кто привык прописывать в тегах "Track *". Тем более, что в ShortBook уже сделана организация книг в виде картотеки.
Самый простой способ для реализации, это если программа на ПК будет представлять собой простенький FTP сервер (ибо в ShortBook работа с FTP уже реализована, а пользователю абсолютно всеравно какой протокол используется, что HTTP что FTP что WebDAV) на который будет целиком выгружаться все данные программы (во внутреннем формате программы). Плюс модуль который не просто тупо осуществлять бекап, но и просмотр и редактирование (а соответственно, ShortBook должна уметь не только выгружать на сервер бекап, но и забирать с него). В частности просмотр списка книг и цитатника, редактирование тегов, добавление книг и переверстка.
Правда при всей своей простоте этот способ имеет недостаток. Не возможность корректной синхронизации если данные были изменены с обоих сторон. В iTunse такой проблемы нет, так как возможности редактирования файлов в iPod отсутсвует и синхронизироваться он может только с одной библиотекой.
Поэтому логично будет для каждой книги ввести флаг "изменилась". Который будет устанавливаться при любом изменении и сбрасываться при синхронизации. А в случае если книга была изменена с обоих сторон выдавать запрос, чтобы пользователь сам решил, что и куда переписывать. В принципе если задаться целью можно и реализовать функцию автоматического исправления коллизий, в случае если книга была изменена с обоих сторон (наподобии того как это сделано в Google Wave) но уж больно математический аппарат у всего этого дела замороченный.
PS чтото меня понесло, а ведь изначально задумывал написать, что синхронизация это хорошо и нужно. И ей стоит уделить внимание)))