Наконец-то переписал классический ShortBook, практически с нуля, раньше в основе был Objective-C, теперь Swift, и где-то на 70% SwiftUI (чертовски удобный и дьявольски сырой).
В первую очередь сосредоточился на вёрстке, алгоритм сделал быстрее, но из-за особенностей работы со строками в Swift в итоге он не ошеломляюще быстр, а просто быстр, к тому же сейчас страница верстается не в один проход, а в несколько. Зато теперь иллюстрации хорошо ложатся на макет. Результат намного лучше прежнего, есть конечно накладки, но в спорных местах, я их маскирую концовками и прочим декоративным материалом, это даже освежает страницу.
Интерфейс чтения тоже переработал, теперь всё управление чтением собрал в один Навигатор, вышло довольно удачно и удобно, теперь можно быстро книгу пролистать только по закладкам, по иллюстрациям или другим точкам интереса в книге.
Модернизировал контроль чтения. Я часто люблю возвращаться в книге чтобы перечитать какой-то момент который вдруг оказался важнее чем ожидалось. Раздражала необходимость запомнить место где остановился, часто забывал ставить быструю закладку. Теперь всё иначе, читалка следит за потоком чтения и пытается определить страница была прочитала или просто перевёрнута, таким образом программа всегда знает где ты остановился в чтении и одной кнопкой возвращает тебя «на место» чтобы ты не делал до этого. Ещё есть нюансы, но в целом это работает слажено. Пытался в это место нейросеть «прикрутить», но она работает нестабильно, может долго нормально работать, а на каких-то страницах выдаёт заведомо странные оценки. В итоге пока аппроксимация попроще, но стабильнее, хотя нейросеть стоит на запасном пути, учится :)
В итоге теперь читалка точно знает какая книга была честно прочитана, а какую пролистали «по диагонали». Когда ставишь отметку о прочтении, то «честно» прочитанные книги так и отмечаются, а остальные остаются «отмеченными как прочитанные», читалку не проведёшь.
Сейчас вот на основе этого продумываю систему мотивации регулярного чтения, пытаюсь собрать материал сколько нужно читать, как регулярно, не вредно ли это. Чертовски мало про это информации, сплошное «читать полезно», а сколько, как, почему, откуда такие данные - пусто. Вероятно придется сначала встроить простой механизм интегрально-дифференциальной оценки, который одновременно следит сколько всего было прочитано и как регулярно это делается. Затем когда наберу каких-то оценок можно будет построить модель точнее.
Задел есть.
В общем и целом, разглядывать буквы не так-то просто, а показывать их это целая наука.