Чому нативні додатки краще гібридних

Про нативних і гібридних додатках ми сьогодні поговоримо з Денисом Алтухова - Android-розробником в Anadea.
Скажи, як професіонал: чим відрізняються нативні додатки від гібридних?
Ну дивись: нативні створюються під конкретну платформу, будь то Android, iOS або Windows. Вони пишуться на нативних мовами - Java в разі Android і Objective C в разі iOS. Викачуються виключно з офіційних магазинів.
По суті, це web-додаток?
Так. І його перевага в тому, що воно кроссплатформне - пишеш відразу під всі платформи, Windows, Android і iPhone або що завгодно відкриють їх. Але тут накладається таке обмеження, що до багатьох технічних функцій, які вимагає замовник, ти не достукаєшся. Наприклад, він хоче активну роботу з камерою - в не-нативном ти цього не зробиш. Чи не зробиш і дизайн по Гайд, які є для iOS і Android.
У різних браузерах гібридне додаток може відображатися по-різному?
Воно може "плисти", але глобально все буде виглядати однаково. Але, наприклад, якщо людина звикла використовувати Android, то він буде очікувати побачити деякі стандартні "андроідовскіе" штучки. І коли браузерні додаток зверстаний не так, як ти очікуєш, це вже, кажучи відверто, дратує.
Всі великі додатки в основному нативні. Чому?
Відсутність яких би то не було обмежень - це основна причина. Ти можеш достукатися до будь-якого функціоналу, який тобі надає операційна система. Таке додаток більш гнучке, набагато краще працює з батареєю завдяки правильній архітектурі нативного мови. Сама операційка дивиться на твоє додаток і вибудовує правильну роботу з батареєю, екраном і так далі. Ту ж роботу з картами реалізувати в гібридному додатку, не використовуючи для цього нативні інструменти від Google і Apple, буде куди складніше.
О Боже!
І це для того, щоб хоч щось побачити! І то, усвідомити, що там відбувається, було досить важко. Зрештою, замовник прийшов до того, що замість одного гібридного він замовив два нативних додатки - для iOS і для Android.
А що стосується безпеки?
Тут гібридні теж програють. Apk файл ти можеш завантажити тільки з одного місця - з магазину. Плюс у тебе є можливість перед тим як викласти додаток стандартними інструментами все зашифрувати, приховати реалізацію і так далі. Крім шифрування, використовується ще така річ, як proguard - вона розбиває посилання, стирає імена. В не-нативном нічого цього немає, а це означає, що хто завгодно зможе його розібрати, вкрасти твій код, скачати з якихось інших місць.
Тобто, зараз гібридним програмам до нативних ще дуже і дуже далеко?
Зрозуміло. Сенс в них є, якщо ти розробляєш щось дуже простеньке, узагальнене, якщо бюджет невисокий і терміни підтискають. Щось, що не вимагає всіх потужностей пристрою, не прив'язується до "заліза". Якщо ж потрібно весь функціонал, то в рідних операційних системах Google і Apple вже вбудована ціла гора методів і способів роботи з камерою, картами, bluetooth і іншим. І звичайно ж це буде краще і якісніше, ніж пере-винайдений велосипед від якихось третіх розробників.
Абсолютно з тобою згоден. Спасибі, що знайшов час поговорити!
Завжди будь ласка.
Підіб'ємо підсумки нашої бесіди з Денисом:
