Інженер-архітектор мобільних застосунків Андрій Колодяжний: “Відсутність інтернету не повинна блокувати роботу сервісів”
Дістатися до місця призначення за геолокацією, оплатити міжнародні рахунки, провести переговори з партнерами з інших країн, та й взагалі вирішити будь-яке нагальне питання сьогодні допомагають мобільні застосунки.

Дістатися до місця призначення за геолокацією, оплатити міжнародні рахунки, провести переговори з партнерами з інших країн, та й взагалі вирішити будь-яке нагальне питання сьогодні допомагають мобільні застосунки.
Але між можливістю вийти в мережу й можливістю завжди залишатися на зв’язку – велика різниця: зазвичай сервіси розраховані на постійне під’єднання, і щойно сигнал зникає, вони перетворюються на марні іконки на екрані. Чи можна зробити мобільні застосунки по-справжньому стійкими до перебоїв інтернету?
На це та інші запитання відповів магістр комп’ютерних наук, член міжнародного Інституту інженерів з електротехніки та електроніки (IEEE), інженер-архітектор мобільних застосунків Андрій Колодяжний.
Його спеціалізацію можна назвати технологічним кризовим менеджментом: він здатен без вихідного контексту розібратися в чужому проблемному програмному забезпеченні й довести його до повноцінного релізу. За цим стоять роки практики: понад п’ятнадцять – в IT, з них більше восьми – робота з Flutter, інструментом Google, який Андрій почав застосовувати ще до виходу першої стабільної версії.
Від інших інженерів Колодяжного відрізняє й рівноцінний досвід роботи із софтом та “залізом”: на початку кар’єри він розробляв автомобільну електроніку й системи на мікроконтролерах. Тож він однаково добре розбирається і в коді, і в принципах роботи пристроїв, якими цей код керує.
– Пане Андрію, які завдання в застосунках можуть бути доступні без інтернету, а для яких він потрібен?
– Без інтернету застосунок має показувати вже завантажені дані, зберігати нові записи та виконувати обчислення безпосередньо на пристрої. Для цих завдань не потрібно постійно звертатися до сервера, якщо таку можливість передбачено заздалегідь.
Під’єднання до мережі важливе, коли потрібно отримати актуальну інформацію ззовні, обмінятися даними з іншими користувачами або одержати підтвердження від іншої системи. Але загалом втрата зв’язку не повинна блокувати роботу сервісу.
– У 2010 році ви спроєктували для української компанії SNGE електронну частину системи протибуксування авто й навіть отримали на неї патент. Але згодом перемкнулися на мобільну розробку, а тепер ви – головний інженер-програміст у дочірній компанії Samsung HARMAN International. Чим вас привабив цей напрям?
– У першому проєкті я зрозумів, що робочий прототип і патент ще не гарантують, що хтось скористається розробкою. Ми випробували систему на реальному автомобілі, але інвесторів не знайшли, тому до масового виробництва справа не дійшла. А мені дуже хотілося бачити результат своєї роботи в руках людей.
Мобільна розробка дає змогу швидко пройти всі етапи – від ідеї до користувача, і мені це підійшло: у 2016 році я влаштувався у харківську компанію ProArea на посаду Android-розробника. І тут досвід в електроніці став у пригоді: коли застосунок пов’язаний із пристроєм, причину збою шукаєш одразу в кількох місцях – у коді, передачі даних і самому пристрої. Розуміння всього ланцюжка допомагає швидше й точніше знаходити проблему.
– Вас називають експертом із порятунку складних мобільних архітектур. Що це означає?
– Я долучаюся, коли розробка зайшла в глухий кут: ніяк не вдається випустити застосунок або він дає збої, а команда не може з’ясувати їхні причини. Я вивчаю чужий код, відновлюю логіку ухвалених рішень, визначаю, що зберегти, а що переробити. Якщо проблема виникає через інтернет, з’ясовую, які функції можна виконувати безпосередньо на пристрої, які дані зберігати та як передавати їх на сервер після відновлення зв’язку. В одному проєкті, до речі, ми вже реалізували таке накопичення даних із подальшою синхронізацією, щоб люди могли працювати без пауз. Загалом я спираюся на перевірені інженерні підходи: добираю їх та адаптую під конкретний продукт.
– Це їх ви застосували у 2023 році, коли швидко знайшли вихід для модного американського бренду одягу SKIMS?
– Я отримав проблемну версію мобільного застосунку SKIMS від зовнішньої агенції, частково переписав його та довів до релізу. За короткий період сервіс набрав понад 1 млн завантажень на iOS і понад 100 тисяч на Android, а сам я став першим розробником в історії SKIMS, якого компанія взяла до свого штату (сміється).
– Як вам вдається ефективно доробляти за кимось роботу й не грузнути в переробках?
– У чужому коді завжди є те, що хочеться негайно переписати. Особливо якщо ти звик працювати інакше. Тож доводиться стежити за собою: чи справді це заважає продукту, чи мені просто не подобається, як влаштована конкретна частина? У SKIMS застосунок не витримував навантаження, а частина функцій була відсутня. Повна переробка означала б новий великий проєкт із власними ризиками та дедлайнами, тому потрібно було точно визначити обсяг змін і частково переписати застосунок.
– У ProArea ви перевели команду на Flutter ще до виходу першої стабільної версії. Як це було?
– Замовникам були потрібні застосунки для Android та iOS, а команда працювала лише з Android. Треба було зрозуміти, як розв’язати завдання наявними силами. Flutter давав змогу одній команді працювати з обома платформами, але сама зміна технології вимагала зусиль: я перевчив розробників, вибудував архітектурний підхід компанії та керував подальшим розвитком цього напряму.
– У HARMAN International ви працюєте над аудіозастосунком Roon ARC. Які інженерні нюанси приховані від слухача за кнопкою Play?
– Слухач не повинен розбиратися, звідки саме він зараз чує звук: із домашнього сервера, потокового сервісу чи з пам’яті телефона. Але для застосунку це різні умови роботи. Особиста бібліотека може налічувати сотні тисяч альбомів, а звук передається без стиснення. Файл високої роздільної здатності, наприклад 192 кГц, потрібно перерахувати відповідно до можливостей конкретного пристрою: телефона, домашньої аудіосистеми чи автомобіля. Пошук у такій бібліотеці за десятками параметрів – від учасників запису до частоти дискретизації – має працювати швидко навіть через мобільну мережу.
Без інтернету Roon ARC відтворює заздалегідь завантажену музику з особистої бібліотеки. Отримати новий трек із віддаленого сервера в цей момент неможливо – жодна архітектура не скасує цього обмеження, тому інженерне завдання полягає в тому, щоб зберегти доступ до того, що доступне, і коректно обробляти те, що недоступне. Якщо для обраного треку потрібне під’єднання, застосунок має повідомити про це, а не просто зависнути. Під час перероблення архітектури я враховую такі відмінності: від них залежить, наскільки надійним людина сприйматиме весь продукт.
– Крім основної роботи, ви знаходите час для менторства та виступів на зустрічах Flutter-спільноти в Кремнієвій долині й Сан-Франциско. Що для вас означає можливість впливати на розвиток інших інженерів?
– Сильний інженер уміє розібратися зі складним завданням. Як ментор, я хочу навчити цього інших. На виступах такі речі можна обговорювати з широким колом колег і паралельно вчитися самому: тобі ставлять запитання, пропонують інше бачення, помічають те, що ти випустив з уваги.
Успіх продукту значною мірою залежить від того, чи зможе команда самостійно розвивати його надалі. Якщо після моєї участі люди впевненіше розбираються в проблемах і допомагають зростати іншим, значить, результат моєї роботи вийшов за межі коду. І, мабуть, цим я пишаюся не менше, ніж випущеними застосунками.
Останні новини
Армія РФ втратила більше території, ніж захопила у 2026 році: ISW оцінив результати "Вівальді"
20:14Пригожин планував вторгнення до країн НАТО для створення "сухопутного коридору" до Калінінграда
19:42Фронт стоїть, нових важелів тиску немає: "Бути Або" оцінив публікацію про плани Трампа щодо України
18:26