Платформна мобільна розробка: питання дорослим

Розробляти мобільний додаток незалежно для різних платформ, або чимдуж налягати на кросплатформені кошти? Багато хто скаже, що це свідомо помилкова постановка питання: у обох варіантів є свої переваги і недоліки, так що єдино вірної відповіді немає. Але це не означає, що розмови на цю тему можуть бути лише холивором, безглуздим і нещадним.

По-перше, переваги і недоліки обох підходів будуть абсолютно по-різному виявлятися в різних ситуаціях. Значить, це питання варто розглядати не у вакуумі, а стосовно до конкретних умов. А по-друге, нюанси ще й змінюються з часом: наприклад, зовсім недавно Microsoft, купивши Xamarin, зробили цей продукт є безкоштовним. Чи означає це, що звичні нам «за і проти» пора переглянути?



Ми поставили кілька запитань трьом фахівцям, які займаються розробкою мобільного на замовлення і добре знайомим з тим же Xamarin: кому ще оцінити спектр можливих ситуацій, як не їм, задіяним у проектах різного масштабу і характеру? Нашими співрозмовниками стали:

  • Михайло Самарін (Futurice, бізнес-директор)
  • Денис Кретов («Нотиссимус», технічний директор)
  • Максим Pocheshire Євтух («Нотиссимус», розробник)




Який підхід до кроссплатформної розробки використовують у вашій компанії, і з яких міркувань зроблений вибір?



Денис Кретов
Наша компанія займається розробкою мобільного більше 3-х років і створювалася під окреме галузеве рішення – мобільні додатки для інтернет-магазинів. Так як у кожного інтернет-магазину є загальний перелік сутностей, то і на старті вирішили використовувати Xamarin і змогли винести 70% загальної логіки в окремі бібліотеки. Це дозволило створювати типові рішення для інтернет-магазинів в стислі терміни.


Максим Євтух
Ми довго і вперто йшли до тієї архітектурі і до тих принципів розробки, які використовуються зараз в компанії. У підсумку кожний проект складається з:
* API
* CORE
* UI
API – взаємодія з сервером, CORE – бізнес логіка, UI – безпосередньо верстка та код, що покриває супутні UI моменти (анімація, переходи тощо). Причому API і CORE не залежать від змін платформи (тобто використовуються і в На е і в iOS), що дає відчутний приріст у швидкості розробки, а головне, спрощує підтримку проекту в майбутньому.

Досягти подібного ми змогли за допомогою Xamarin, а з допомогою MvvmCross змогли розширити кількість переносимого коду.

Михайло Самарін
Оскільки ми розробляємо під всі існуючі мобільні платформи практично з першого дня існування компанії Futurice, тобто 16 років, то пробували і продовжуємо пробувати знайти оптимальне рішення в кожному випадку. В даний час ми використовуємо всі варіанти: нативні рішення, Cordova, React Native, Xamarin Native і Xamarin Forms. Яке саме в конкретному випадку — залежить від цілей конкретного замовника та особливостей проекту.

Що ви можете порадити іншим — коли варто використовувати кросплатформені інструменти, а коли уникати їх?
Максим Євтух
Я вважаю, що немає сенсу використовувати кроссплатформенную розробку в двох випадках:
  • проект спочатку придуманий під одну платформу і розширення на інші платформи не планується;
  • проект має кардинальні відмінності у своїй реалізації кожної з платформ, які тягнуть за собою збільшення кількості платформного коду.
Виходячи з поточної практики, більш ймовірний перший випадок, т. до. більшість додатків спеціально зараз замислюються схожими (архітектурно), зберігаючи при цьому особливості кожної платформи («плоский» дизайн на iOS і material на Android)

Денис Кретов
До слів Максима ще можу додати, що кожне завдання на мобільний розробку потрібно аналізувати на можливу повторюваність коду, унікальність дизайну і використання апаратних функцій телефону. Сукупність цих факторів дає загальну картинку, коли ми можемо використовувати кроссплатформенной рішення, а коли краще Native.

Михайло Самарін:
На нашому досвіді можу сказати, що визначальними є комбінація трьох факторів: оцінка можливості довготривалої підтримки, бюджет замовника і допустимі компроміси в user experience. Для оцінки останнього можливий такий критерій: якою буде частота і тривалість використання програми? Якщо користувач буде вдаватися до нього раз у тиждень на п'ять хвилин, то можна йти на значно більші компроміси і більше робити кросплатформним засобами, ніж в додатку, яке використовують кожен день і довго, помічаючи кожний недолік.

Як ви думаєте, чи зміниться що-то протягом найближчого року: наприклад, підвищиться сильно популярність Xamarin з-за його переходу в нову якість?
Денис Кретов:
Я дивлюся з оптимізмом. З появою безкоштовної версії Xamarin кількість використань його в проектах має різко зрости.

Максим Євтух:
Великий плюс те, що Microsoft купив Xamarin – він зробив його безкоштовним. Але кардинально нічого не зміниться, хіба що помилки Xamarin будуть виправлятися швидше завдяки open source (принаймні, я на це сподіваюся). Якщо ж зросте популярність Xamarin – що ж, це також краще, тому що хороших фахівців, знайомих з цією технологією, що зараз не вистачає.

Михайло Самарін:
Так, підніметься за рахунок indie-разаработчиков. А в корпоративному середовищі, де ціна ліцензій ніколи не була проблемою — за рахунок того, що і Xamarin та Tools тепер open source. Це добавлает відчуття безпеки і довіри вибору. Крім того, ми повинні пам'ятати, що C#, Xamarin Studio on Mac, Visual Studio on Windows — це дуже, дуже хороший набір. Ми спостерігали випадки, коли розробник, на 100% що займається тільки iOS, після знайомства з Xamarin наступний проект, теж на 100% для iOS, робив з Xamarin. Тільки з-за того, наскільки комфортний мова C#.




Торік Михайло Самарін на петербурзькій конференції Mobius говорив про це питання серед багатьох інших, і його торішній доповідь викладений на YouTube. А 4 червня на Mobius 2016 Денис і Максим Кретов Євтух в своєму спільній доповіді покажуть на реальних прикладах, як саме вони у своїй компанії реалізують обраний ними підхід з використанням Xamarin і MvvmCross — не пропустіть!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.