ПісенникV2

Готуємо документацію…

Будь ласка зачекайте

ПІСЕННИК • ДОКУМЕНТАЦІЯ 1.1.5

Версія 1.1.5 готується до випуску

Архітектура, що відчувається швидшою

Повна документація переходу Пісенника з нативного Kotlin і Jetpack Compose на легку гібридну оболонку VF Style V2. Нижче пояснення кожного технічного рішення простими словами, порівняння продуктивності та огляд нової дизайн системи.

До офіційного випуску версії 1.1.5 залишилось

00днів
00годин
00хвилин
00секунд
Коротко

Що саме змінилось

У версії 1.1.4 застосунок був побудований на класичному нативному стеку: Kotlin, Jetpack Compose, Material 3, Hilt та Firebase. Інтерфейс складався з 31 файлу Kotlin і понад 7550 рядків коду. У версії 1.1.5 архітектура стала набагато простішою, легкою та швидкою в роботі.

1 файл замість 31

Один простий шар

Весь нативний код тепер поміщається в одному файлі MainActivity приблизно на 800 рядків. Він лише відкриває вбудований веб перегляд, а вся логіка живе всередині легких веб файлів.

до 38 МБ оперативної пам'яті

Менше навантаження

Прибравши важкі бібліотеки для впровадження залежностей та аналітики, застосунок почав споживати значно менше пам'яті, залишаючи більше ресурсів для телефону.

нульові трекери

Більше приватності

Firebase Analytics і Crashlytics повністю видалені. Застосунок більше не збирає жодних аналітичних даних та не відправляє їх третім сторонам.

Продуктивність у вісьмох напрямках

Чому нова версія відчувається швидшою

Нижче пояснення кожного з восьми технічних напрямків, за якими стара та нова версія відрізняються. Кожен блок показує як працював старий підхід і чому новий підхід дає кращий результат.

01Запуск застосунку

Раніше

Застосунок проходив через складну систему впровадження залежностей, запускав Firebase та завантажував важкий рушій Compose, перш ніж намалювати перший кадр.

Тепер

Одна активність одразу завантажує локальні файли у вбудований веб перегляд, а рушій V8 читає список з 322 пісень швидше, ніж стара система встигала розпакувати свої об'єкти.

02Прокрутка списку

Раніше

Кожен новий рядок у списку вимагав перерахунку компонентів на головному потоці, що іноді викликало невеликі затримки під час швидкої прокрутки.

Тепер

Список намальований один раз, а прокрутку повністю бере на себе графічний процесор браузера. Це дає плавні 120 кадрів за секунду без жодних затримок навіть при дуже швидкій прокрутці всіх 322 пісень.

03Пошук пісень

Раніше

Пошук мав штучну затримку у 150 мілісекунд та обробляв результати у фоновому потоці, перш ніж показати їх на екрані.

Тепер

Пошук виконується миттєво в оперативній пам'яті. Фільтрація всіх 322 пісень займає менше однієї мілісекунди, тому результати з'являються одразу під час набору тексту.

04Перехід між екранами

Раніше

Кожен перехід створював та знищував елементи інтерфейсу, а обчислення анімацій конкурувало з головним потоком процесора.

Тепер

Усі екрани вже існують в пам'яті одночасно, а перехід між ними це лише перемикання класу та анімація прозорості й зсуву, яка виконується повністю на графічному процесорі.

05Зміна теми

Раніше

Зміна теми змушувала перерахувати кольори для кожного видимого елементу інтерфейсу одразу.

Тепер

Зміна теми це оновлення одного атрибута, після чого всі кольори плавно переходять до нових значень завдяки змінним CSS.

06Перегляд нот

Раніше

Перегляд нот використовував складні жести масштабування та завантажував важкі несжаті зображення, що навантажувало пам'ять.

Тепер

Ноти показуються у легкому вікні з оптимізованими зображеннями формату webp, а масштабування та гортання працюють миттєво завдяки апаратному прискоренню.

07Робота з пам'яттю

Раніше

Постійне створення тимчасових об'єктів під час взаємодії спричиняло паузи для очищення пам'яті та дрібні підвисання.

Тепер

Нативний шар майже не створює об'єктів, а рушій V8 використовує сучасне покоління збирача сміття, завдяки чому загальне споживання пам'яті впало з приблизно 55 до 32 мегабайтів.

08Залежності та розмір

Раніше

Застосунок включав десятки важких бібліотек для інтерфейсу, впровадження залежностей та аналітики.

Тепер

Усі ці бібліотеки повністю видалені, що прибрало близько 15 мегабайтів скомпільованого коду та сотні фонових потоків стеження.

VF Style V2

Дизайн мова, створена для читання

Пісенник 1.1.5 це флагманська реалізація VF Style V2, власної дизайн системи студії V Framework, створеної спеціально для зручного читання, ясності та приємних дотиків.

М'якість замість строгості

Гострі кути зникли повністю. Поверхні мають великі заокруглення, від 20 пікселів аж до повністю округлих форм у вигляді таблеток.

Фізична вага та інерція

Елементи не з'являються різко, вони пружинять, розтягуються та плавно заспокоюються за фізичними моделями руху.

Редакційна ієрархія

Виразні жирні заголовки поєднуються з теплими класичними підписами, що створює емоційний зв'язок з піснями.

Тактильний відгук

Кожен дотик до екрана синхронізований з вібрацією пристрою, завдяки чому взаємодія відчувається фізично реальною.

Дев'ять токенів

Система кольорів та чотири теми

Вся система кольорів побудована на дев'яти змінних, які автоматично підлаштовуються під кожну з чотирьох доступних тем.

--bg фон полотна --s1 поверхня рівня один --s2 поверхня рівня два --s3 межі та фокус --on основний текст --on2 другорядний текст --pri основний акцент --onpri текст на акценті --shadow колір тіні

Світла

Чиста та світла, для яскравого денного середовища.

Темна

М'яке глибоке вугільне середовище без напруги для очей.

AMOLED чорна

Повністю чорний фон, що дає максимальну контрастність та економію батареї.

Сепія для читання

Теплий архівний відтінок, натхненний класичними друкованими збірниками гімнів.

Фізика руху

Анімації, що відчуваються живими

VF Style V2 описує рух двома основними кривими. Натисніть на будь яку картку нижче, щоб побачити різницю між ними наживо.

Пружинна крива

cubic-bezier(.34, 1.56, .64, 1)

Елемент навмисно проскакує свою ціль, а потім м'яко повертається назад, імітуючи фізичну пружність.

Крива сповільнення

cubic-bezier(.22, 1, .36, 1)

Різкий та впевнений вхід, що використовується для вікон, сповіщень та перемикання екранів.

Шрифти

Пара шрифтів Onest та Lora

Стара версія використовувала звичайний системний шрифт Roboto. Нова версія має власну редакційну типографічну ідентичність.

Onest

Геометричний сучасний шрифт без зарубок, у трьох нарізках 400, 600 та 800. Використовується для заголовків, назв пісень, елементів інтерфейсу та тексту гімнів, забезпечуючи максимальну читабельність навіть у поганому освітленні.

Lora Italic

Класичний редакційний курсив, що розміщується одразу під заголовками Onest як теплий акцент. Він додає інтерфейсу гідність та спадщину класичного друкованого збірника гімнів.

Повне порівняння

Версія 1.1.4 проти версії 1.1.5

Детальна таблиця усіх технічних характеристик, що змінились між двома версіями застосунку.

ХарактеристикаВерсія 1.1.4Версія 1.1.5
ІнтерфейсJetpack ComposeHTML, CSS, JavaScript
Нативний код31 файл, 7553 рядки1 файл, 801 рядок
АрхітектураMVVM, Hilt, корутиниЄдина нативна оболонка
ЗапускHilt, Firebase, ComposeПряме завантаження файлів
Завантаження пісеньБінарний кеш, потік корутинМиттєвий масив у пам'яті
Прокрутка спискуРозрахунок на головному потоціГрафічний процесор, нуль JS
Затримка пошуку150 мс та затримка корутинМенше 1 мс, миттєво
НавігаціяОбчислення на процесоріШар трансформації на GPU
Система темMaterial 3 динамічнаДев'ять змінних CSS
Кількість тем3 теми4 теми
Рушій рухуСтандартні специфікаціїФізика пружини з проскоком
ФонПлаский статичний колірЖиві форми на GPU
ТипографікаСистемний RobotoOnest та Lora Italic
Шрифти ззовніСистемні шрифтиПовністю вбудовані
АналітикаFirebase, CrashlyticsНуль трекерів
Пам'ятьПриблизно 50 до 65 МБПриблизно 30 до 38 МБ
Офлайн роботаПовна, через бінарний кешПовна, через локальні файли
Екран увімкненоНе реалізованоНативний прапорець системи
ВібраціяБазовий сервіс вібраціїБагаторівнева композиція

Нова версія вже зовсім близько

Пісенник 1.1.5 поєднує легкість, швидкість та нову дизайн мову VF Style V2 в одному оновленні. Слідкуйте за таймером вгорі сторінки, щоб не пропустити випуск.