Mobius 2016: мобільна розробка по-новому

В цьому році продаж айфонів вперше перестали рости, мобільний ринок в цілому теж не хвалиться тим самим бурхливим зростанням, а нові смартфони і нові версії ОС вже не вражають уяву. Чи Не означає це, що в розробці мобільного настає час застою? Чи Не почнуть доповіді про неї повністю повторювати те, що говорили попередні роки на тих же самих конференціях?

Пройшла в Петербурзі конференція Mobius дозволила отримати відповідь і на це питання, і на багато інших. Під катом — докладна розповідь про те, що там було.





Конференція стала частиною «Літнього фестивалю розробників»: днем раніше неї відбувся DotNext, днем пізніше — HolyJS. Виходила можливість порівняти три різних всесвітів: в .NET-світі за масштабні зміни зараз відповідає .NET Core, JavaScript-світ взагалі відомий постійними потрясіннями, а може протиставити цьому щось гучне світ мобільної розробки?

У відкриває keynote від Вібе Элсинга була заявлена тема #UXmatters, і можна було подумати, що глядачів чекає суцільне «капітанство»: ну так, UX важливий, хто ж з цим сперечається? Однак серед наведених прикладів «поганого user experience» зустрічалися і неочевидні, і навіть холиварные. Спікер сміливо атакував гігантів, наприклад, критикуючи Über за перебарщивание з анімацією при запуску: «Я говорив з людиною, яка зробила це, і він пояснював, що треба чимось розважити користувача, поки в тлі завантажуються дані. Але коли ти в аеропорту, борючись з джет-лагом, намагаєшся викликати таксі через погане інтернет-з'єднання, анімація зовсім не в тему».



Більш того, горде звання Google Developer Expert не завадило Вібе критикувати свіжий редизайн від самої компанії Google. Нещодавно у програмі «Google Фото» крім «гамбургера», за яким виїжджає меню зліва, з'явилася ще і панель внизу з вибором з трьох основних розділів. На думку спікера, одночасна присутність того й іншого заплутує користувача: спочатку всі бігають очима, не розуміючи, куди натискати.



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

Потім інший Google Developer Expert, Денис Неклюдов, розповідав про представленому в травні на Google I/O, де він особисто побував. На самому початку доповіді спікер прямо сказав «Якщо ви стежили за новинами з I/O, можете йти в інший зал», але його виступ не було завченим повторенням чужих слів.



У Google знають, що keynote I/O будуть дивитися по всьому світу, і намагаються вразити пересічних користувачів, а у Дениса йшлося про важливе для розробників. Тому про голосно представленому Google Assistant він говорити взагалі не став (у нього немає SDK), за темами на кшталт VR-платформи Daydream пробігся швидко (до її розквіту ще дожити треба), зате швидко завів мова про Instant Apps (запуск Android-додатків без установки). Згадано було і те, про що Google взагалі промовчав на keynote: можливість запускати Android-додатки в ос chrome, відразу робить мобільних розробників ще й десктопними.

А найцікавішими для розробників стали новини про Firebase (як було написано на слайді Неклюдова, «насправді вся мякотка тут»). Коментуючи численні нововведення платформи, він наводив такі юзкейсы, до яких у самому Google могли б і не додуматися: «З допомогою Remote Config тепер можна віддалено керувати зовнішнім виглядом програми для окремих категорій користувачів. Наприклад, зробити так, щоб на 8 березня у жінок ваш додаток стало рожевим». Загалом, тут в розробці мобільного відбуваються відчутні зміни — нехай навіть звичайні користувачі, які дивилися YouTube-трансляцію I/O, цього й не помітили.



Потім Кирило Попов (Однокласники) розповідав про те, як бібліотека Fresco допомагає при роботі з зображеннями в Android. Комусь може здатися, що тема виїденого яйця не варто: якщо потрібно просто показувати картинки, про що тут розмовляти годину? Але Попов на прикладі програми Однокласників наочно пояснив, як в реальному проекті «просте завдання» перетворюється в дуже непросту:

«Ось аватара користувача. Нам потрібно запитати картинку, перевірити кеш, скачати картинку, покласти її в кеш. При цьому ми показуємо аватари не квадратними, а кадрируем з допомогою кривої Безьє зі спеціальними коефіцієнтами. Значить, потрібно ще модифікувати зображення, знову покласти в кеш, і тоді відобразити. Але за цей час користувач може встигнути щось побачити, так що ще потрібен плейсхолдер. Тепер подивимося на задній фон: адже він теж зроблений з аватари, але в цьому випадку не обрізаних, а розмитою (при цьому ми не хочемо робити новий запит на сервер, так як цю аватарку вже качали). А далі при скролінгу треба швидко завантажувати нові картинки, і все це може бути відкрито на пристрої з маленькою кількістю пам'яті...»



Не дивно, що виникла потреба в могутньому інструменті, і Fresco виявився єдиним, в якому знайшлося відразу всі требовавшееся: оптимальне використання пам'яті, робота з прогресивними jpeg, багаторівневе кешування, постобробка зображень, гнучкість у використанні. Втім, як визнав Кирило, для маленьких проектів все це достаток може виявитися ситуацією «з гармати по горобцях». Комусь буде достатньо на порядок більш простого Glide, і складність в освоєнні Fresco перевищить вигоду від його використання.

У перервах конференції, як це зазвичай буває, багато вирішували задачки зі стендів компаній, і набір завдань від EPAM особливо привертав увагу. Замість знання специфіки там вимагалося вміння алгоритмічно мислити, так що над цим з однаковим азартом ламали голови глядачі з самим різним досвідом розробки. Ось як приклад:



Варіант «розташувати інфіковані клітини по діагоналі» приходив всім в голову швидко, тому відповідь «n» напрошувався. Але навіть написавши його під завданням, люди продовжували мучитися питанням «чи не можна зменшити це число, і як це довести». Можна було помітити, як хтось намагається вирішити одну з подібних завдань, сидячи на доповіді, і почути, як їх обговорюють за обідом.

А не за обідом можна було почути Матвія Малькова (Nexters) з доповіддю «Мистецтво реактивного програмування». Він вже у вступі почав легко тролити аудиторію: «Мобільним розробникам доводиться думати про фрагментації пристроїв. На щастя, тепер і на iOS теж з цим страждають!» В основній частині теж вистачало сарказму, але не замінює собою серйозні тези, а робить їх більш влучними. Наприклад, серед слайдів про складові RxJava був такий:

Subjects
— поєднання імперативного і реактивного світу
— використовувати, коли неможливо зробити по-іншому
— це ваш випадок? НІ!



Про реактивному програмування мова йшла ще і в доповіді Євгенія Ртищева (Сбертех) «Реактивний MVVM». І в результаті виникала перекличка між усіма конференціями «Літнього фестивалю розробників»: про «реактивщине» згадували DotNext, і було ясно, що на HolyJS без неї теж не обійдеться.

А одразу в трьох інших доповідях йшлося про мови, які зазіхають на звичний статус-кво «на Android — Java, на iOS — Objective-C».

Ян Жуланов (JetBrains) пояснював, чому Kotlin актуальне для Android-розробників. Android відомий тим, як неквапливо з'являється там підтримка нових можливостей Java, так що цей слайд бив напевно багатьом з хворому:



Той же Матвій Мальків і зовсім ділився своїм досвідом розробки Android-додатки на Scala. Втім, як він сам визнавав, доповідь вийшов «холиварным», так що при перерахованих їм достоїнства Scala («безпека», «поділ і переиспользование», «гарна архітектура», «легке побудова DSL і робота з UI») хтось напевно залишився абсолютно не переконаним.

А ось доповідь Максима Соколова (Avito) про використання дженериків в Swift аудиторія дружно схвалила: він не тільки зібрав багато хвалебних відгуків, але і очолив топ-10 виступів Mobius за оцінками глядачів.

  1. Максим Соколов — Advanced Swift Узагальнення — перейдемо на <T>
  2. Кирило Попов — O Fresco і як його готувати, а також про картинках в Android в цілому
  3. Євген Мацюк — Пишемо досліджуваний код
  4. Олександр Коршак — Досвід розробки Cardboard програми для 3D-реконструкції медичних даних
  5. Ірина Дягілєва — Типографіка в iOS
  6. Ян Жуланов — Android-додатки на Kotlin: чому це добре
  7. Матвій Мальків — Scala для Android: міф чи реальність?
  8. Матвій Мальків — The Art of Rx
  9. Денис Неклюдов — Гарячі новини з Google I/O 2016
  10. Євген Ртищев — Реактивний MVVM




І якщо подивитися на цей топ-10, стає очевидно, що про застої говорити не доводиться. Доповіді про зміну звичного мови програмування на більш актуальне, про молодий бібліотеці (Fresco менше півтора років), про розробку для Cardboard, про «реактивщине», один доповідь і зовсім цілком з новин — загалом, суцільні тренди. Ще рік тому доповідей про Swift на Mobius не було, а тепер саме такий виявився найбільш тепло прийнятим. Не дивно: за минулий рік мова дійшов від «перспективно, але поки рано» до активного використання iOS-розробки, і далі його роль явно продовжить рости.

Так що на Mobius, як і на DotNext, знайшлося місце великих змін. А що на це відповів JavaScript-світ? Скоро стане відомо з тексту про HolyJS.


Джерело: Хабрахабр

0 коментарів

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