Хочу программировать. Связь между приложениями
Всем привет. Продолжение поста Хочу программировать. От WEB-приложения до ПК версии
Сейчас в приложении можно добавить материал, в него – текст и фото. Можно редактировать, переносить между полосами/номерами, удалять, копировать и т. д. Выглядит все это так:
После первых тестов при реальных условиях работы изменил способ хранения информации. Изначально все материалы каждого газетного номера хранились в общем JSON файле. Однако при таком способе стали возникать проблемы при его совместном использовании: во время синхронизации в облачном хранилище временами сталкивались запросы к одному и тому же файлу, что приводило к конфликтам и созданию ненужных резервных копий. В итоге от единого файла я отказался, заменив его на папку с файлами. Каждая папка – отдельный номер, в ней подпапки с номерами газетных полос, а уже в них каждый материал хранится в отдельном JSON. На этом проблемы при совместной работе прекратились.
Второй серьезный этап – связать хранилище газетных статей с Adobe InDesign. Реализовано это на основе Adobe CEP HTML Engine. Самодельная панель с гордым именем "ВЕРСТАЛЬНЯ". Основная функция – читать материал из JSON и расставлять его элементы по определенному шаблону, добавляя к тексту изображения. Помимо этого панель может подгонять содержимое, видоизменять графические фреймы, экспортировать готовые полосы в PDF, измерять площадь объектов, работать с некоторой информацией открытых файлов и т. д.
Такой подход сократил время на однообразные повторяющиеся операции в несколько раз. Можно сосредоточиться на более полезных вещах. Совместно с написанием панели пошел изучать SVG и в Adobe Illustrator сделал верхний ряд иконок. Раньше вместо них были кнопки с текстом, которые занимали гораздо больше места.
Основной объем работы проделан. Дальше – допиливание мелких функций и исправление найденных ошибок...



Почему json, а не база данных?
При больших объемах данных, считать инфу из базу будет быстрее, чем из json.