Pull to refresh

Comments 19

UFO just landed and posted this here
Векторная графика не всегда возможна. К примеру в сказках есть животные — это рисованные от руки персонажи, с тенями и там далее. Они не представимы в виде векторных изображений. Конечно есть изображения, которые, по сути, это фон + эффект и тогда я откажусь от картинки и буду в программно применять эффект. А если что то смогу свести к svg — то и вообще заиспользую сторонние либы. Но эта статья была про достаточно простое решение, которое сьело разумное время, зато дало хороший результат.
Работал с командой в таком жанре. В принципе, вектор возможен, но художник должен уметь работать в векторном редакторе, а это редкость. В нашем случае художник при необходимости мог и покодить, и картинки сам оптимизировал, и вапще умел много чего несвойственного. Для него работа в векторе была естественной, он сперва рисовал все основные элементы в векторе, после чего экспортировал и делал коррекцию в GIMP или RawTherapy (смотря, что его не устраивало). В итоге мы решили, что он будет стараться отдать столько готового вектора, сколько сможет, а некоторые фильтры будем реализовывать программно на месте.
Очень хорошо, что вы оптимизируете приложения под mini 1gen. К сожалению, мини во многих случаях работает в «однозадачном» режиме: переключаешься из одного тяжелого приложения в другое — происходит перезапуск программы с ноля.
Когда на iPad Mini я увидел 23Mb — я очень обрадовался. У приложения есть все шансы пережить ночь без использования на девайсе)
да, я юзаю, ImageOptim, часто помогает обжать на 50% без заметной потери в качестве
вставил задержку, чтобы пользователь подольше полюбовался на наш логотип

Это за гранью добра и зла.
Решение и вправду спорное.
Но это необходимо с точки зрения маркетинга. Зато приложение реже умирает в background даже на iPad Mini, то есть ли вы ненадолго отвлеклись во время чтения сказки, то и перезапуск приложения не произойдет, и логотип вы не увидите.
Второй момент — на новый iPad вы даже не успеваете прочитать название компании.
а возможно задавать разные задержки для разных устройств?
конечно. никому не нужна задердка после 5 секунд старта. даже болше скажу, меряю паузу от попадания в main.
До попадания в main уже может пройти до нескольких секунд в экстремальных случаях!
Ну у нас не экстремальный случай. Несмотря на небольшой размер bundle, открывается быстро(бинарь сам по себе небольшой).
Мне как пользователю плевать на название компании. Если название компании так важно для маркетинга, внутри приложение есть бесконечное количество мест куда это название можно вставить без вреда для юзабилити.

Искусственная задержка при старте приложения вредит юзбилити! И если эта задержка нужна только чтоб показать логотип…
Когда-нибудь, когда я попаду в идеальный мир, и я обязательно забуду о таких вещах как маркетинг и брэнд.
Но пока я вынужден жить в этом мире. И раз уж приложение дает и так неплохой бесплатный контент для пользователя, значит для нас оно должно давать иную пользу.
Как замену png имеет смысл рассмотреть webp.
Если lossless, то можно рассчитывать на 30% экономии по сравнению с png после ImageOptim.
Lossy с качеством 90-100% на глаз не отличается, а размер в несколько раз меньше (сильно зависит от картинок, на одном проекте экономия была в 3 раза, на другом — в 7 раз).

Конечно, webp далеко не самый лучший кодер по соотношению качество/размер. Но очень удобный по доступности и простоте интеграции библиотеки, плюс производительность не хуже чем у png.
Зачем хранить воспроизводимый контент в ресурсах? Я не знаю конечно как там у вас сделано, но книгу та можно и постранично подгружать вроде как.
Проводили как-то A/B тестирование по поводу постраничной подгрузки, правда, не книги, а журнала. В одном варианте грузили всё сразу, только потом давали открыть журнал. Во втором — читать можно сразу, каждая следующая страница подгружалась по мере просмотра. Контрольный параметр — среднее время нахождения пользователя в просмотрщике журнала при загруженной странице. Вариант с предварительной загрузкой победил. При тесте на контрольной группе, в живую, поведение варианта А: ткнул в загрузить, переключился в браузер/мессенжер/сходил за чаем/поговорил с соседом, получил уведомление, вернулся и залип в чтении. Вариант B: пользователь собирается сразу залипнуть в чтении, но загрузки каждой страницы приходится ждать, при этом время загрузки не позволяет сделать какое-то осмысленное действие. Быстро надоедает.
Для чистоты добавили кеширование, приоритетную загрузку (приложение тянет сразу текущую страницу и последующие, не ждёт запрошенных до этого), результат стал лучше, но предварительная загрузка по прежнему выигрывала.
Если ЦА — дети, то тут фактор «раздражает ждать» будет намного сильнее.
Вариант грузить постранично даже не рассматривается. На странице одно предложение. И раз уж мы стараемся сделать хороший продукт и идем на встречу тем у кого 3g, то и книжка должна быть вся на девайсе когда пользователь ее читает.
Вы конечно простите, но постраничная загрузка… это прям вэб. А наше приложение отлично работает и без инета(как минимум одна книжка в комплекте), а потом можно скачать остальные и спокойно отключится от всех сетей.
Одно из главных преимуществ нативных приложений — это работа в офлайн. С ним может поспорить только «скорость работы».
Sign up to leave a comment.

Articles