Технології:

ActionScript 3, FeathersUI, Reobotlegs, Flash, Windows, MacOSX, iOS, Android, Air, AGAIL

Кросплатформний багатокористувацький редактор нот

Літо 2017 р.

Кросплатформний багатокористувацький редактор музичних нот. Малювання й редагування синхронізуються на всіх пристроях користувача та його партнерів, які входять до групи. Моєю частиною була не лише розробка клієнтського застосунку, а й спрощена (прототипна) версія серверного функціоналу. Така схема заощадила величезну кількість часу на узгодженні клієнтської та серверної частин, написанні клієнт-серверного протоколу й документації. Я написав спрощені рішення на PHP без детального опрацювання: десь заглушки, десь повністю робочий функціонал. Це забрало значно менше часу, ніж могли б забрати дискусії під час написання протоколу. Згодом серверний розробник просто замінив ці сервіси стабільнішою й ретельніше опрацьованою версією на Python/Django — без жодних змін у клієнтській частині. Завдяки цьому він упродовж усієї розробки міг перевіряти результат своєї роботи на повністю робочій версії, а не писати код «наосліп».

Платформи


Bookreader


Музичні ноти зберігаються на сервері у віртуальному каталозі користувача

Bookreader


Користувач може додавати ноти до особистої бібліотеки й видаляти їх

Bookreader


Багато зусиль вкладено в якісний рендеринг нот та інтерполяцію растрових текстур за допомогою AGAL — асемблерної мови для програмування відеокарти

Bookreader


Застосунок дає змогу показувати й приховувати кожен із шарів книги

Bookreader


Підтримує багато режимів показу сторінок: подвійні й одинарні розвороти, повноекранний і фреймовий режими, навігацію сторінками

Bookreader


Bookreader


Bookreader


Особливий інтерес становить графічний редактор-малювалка. Усі елементи фактично є векторною графікою: лінії програмно малюються растровими пензлями в пам’яті GPU, і растровий малюнок щоразу відтворюється з векторного шляху. Завдяки високій продуктивності GPU після завантаження графіки у відеопам’ять сторінки показуються без найменших затримок — навіть коли процесор пристрою майже «завис» через інші застосунки чи низьку продуктивність. Річ у тім, що вся графіка малюється у відеопам’яті й майже не задіює процесор. Час витрачається лише на завантаження растра у відеопам’ять, але завдяки ретельній оптимізації навіть він непомітний для ока. Крім того, малювання відбувається в асинхронних потоках, що дає змогу уникнути пригальмовувань навіть під час завантаження великих обсягів даних.

Bookreader


Усі символи й пензлі заздалегідь завантажуються у відеопам’ять, тому зовсім не забирають процесорного часу під час малювання

Bookreader


Багато уваги приділено налаштуванням користувача

Bookreader


Bookreader


Bookreader


Користувач може зібрати власну палітру фарб

Bookreader


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