INOSTUDIO

Новые тренды в Android-разработке: отчет из Сан-Франциско

В конце марта мобильный разработчик INOSTUDIO Алексей Калачев побывал в Сан-Франциско на конференции DroidCon, посвященной Android-разработке. Интересными выступлениями и итогами конференции Алексей делится с читателями Rusbase.


На самом деле DroidCon – это целая череда конференций, которые проходят в более чем двух десятках стран. Основная цель – поддержка экосистемы Android и предоставление площадки для дискуссий и встреч. Аудитория на DroidCon собирается разномастная, но в основном это разработчики, участники стартапов и бизнесмены – все те, кому так или иначе интересна разработка или бизнес в ключе мобильных технологий.

Прошлым летом американская компания Touchlab провела DroidCon в Нью-Йорке, а осенью российская Apps4All – в Москве. Впоследствии компании заключили партнерство и совместно организовали DroidCon в Сан-Франциско, куда мне и посчастливилось попасть. Участие российской стороны чувствовалось – было много разработчиков из России, а также несколько стендов российских стартапов. Конференция организована в лучших традициях и прошла замечательно, без накладок – российско-американскому партнерству Touchlab и Apps4all хочется пожелать только удачи.


Главный зал конференции – Spherical Image – RICOH THETA


Открывали конференцию сотрудники Google – Чет Хааз (Chet Haase), ведущий разработчик Android UI Toolkit и Роман Ги (Romain Guy), ведущий разработчик некоего секретного проекта. Началось все с красивой статистики тех версий Android, которые в России еще не так распространены: у Android Wear уже 4000 приложений и 1500 циферблатов для часов, Android TV выпускаются производителями Sony, Sharp, nVidia и Razer, а Android Auto устанавливают в свои автомобили Audi, GM, Ford, VW. Кстати, Android Auto теперь доступен в России официально.

50 000 000 000  – столько Android приложений устанавливается в год.

Также выступающие напомнили, что вышла бета-версия Android N, которую можно установить на некоторые модели Nexus. Показали основные фишки новой версии: это режим мультиоконности, когда два приложения запущены на половинках экрана, режим «картинка-в-картинке». Теперь можно смотреть видео, параллельно работая с другим приложением, также новшеством стал режим Drag-n-Drop. Но если первые две опции уже реализованы и в Android, и в Windows Mobile, то Drag-n-Drop – существенно новая вещь для мобильных ОС. Если поддерживается эта функция, пользователь сможет просто перетягивать файлы из одного приложения в другое, чтобы открыть их в последнем. 


Источник: developer.android.com


В новой версии появятся новые шаблоны для нотификаций и одновременная поддержка нескольких локалей, еще лучше будет работать режим энергосбережения Doze. Для разработчиков представили поддержку масштабирования интерфейса – теперь можно будет увеличивать не только шрифты, но и сами элементы управления, поэтому придется использовать относительные величины. Также в новой версии обещали улучшить производительность для векторной графики (VectorDrawables).

Эти нововведения впечатляют, но, увы, даже предыдущая версия Android Marshmallow на апрель 2016 занимает, по данным из открытых источников, всего 4,6% рынка всех мобильных ОС Android. А без должного распространения новые функции будут поддерживаться далеко не всеми разработчиками.

Что действительно было встречено с большой радостью, так это поддержка некоторых особенностей Java 8. Android базируется на Java 7 и лишен таких инструментов, как, например, лямбда-выражения. Теперь для поддержки функциональности Java 8 можно в Gradle-файле указать следующее:

android {

  ...

  defaultConfig {

     ...

     jackOptions {

        enabled true

     }

  }

  compileOptions {

     sourceCompatibility JavaVersion.VERSION_1_8

     targetCompatibility JavaVersion.VERSION_1_8

  }

}

При этом появится возможность использовать лямбда-выражения (с поддержкой до Android 2.3), в интерфейсах появится поддержка статических методов и методов по умолчанию, а аннотации для каждого поля теперь могут повторяться несколько раз.

Подробности вы можете посмотреть в видео:


 


Ваким Верджес (Joaquim Verges) из Twitter рассказывал про анимации в Android. Он отметил, что все больше разработчиков следуют гайдлайнам Android. Это хорошо, поскольку пользователи получают тот опыт, который ждут от экосистемы, но в тоже время приложения становятся похожими друг на друга. Одним из способов выделить приложение среди других – это качественная анимация. В своем выступлении он показал, как можно передавать View и его расположение с одной Activity в другую (изначально прозрачную), а также поделился практиками использования анимации, чтобы это не сказалось на производительности.

Его выступление здесь: 



Полезным стало выступление Хен Ха Дао (Huyen Tue Dao) из Trello. Она поделилась советами относительно того, как сделать XML-разметку интерфейса чище и при этом повысить производительность и совместимость с устройствами. Действительно, часто разработчики просто не знают о существовании большинства приемов.

Ключевое значение играет производительность. А она зависит от количества ресурсов, которые использует ваше приложение.

Если есть возможность, то стоит использовать атрибуты вместо отдельных View. Например, чтобы создать картинку с текстом.

Было:

<LinearLayout>

  <ImageView/>

  <TextView/>

</LinearLayout>

Стало:

<TextView

  drawablePadding=”…”

  drawableEnd=”…” />

Этот же совет можно применить к разделителю элементов в ListView – следует использовать атрибут divider вместо отдельных View.

Ну и основной совет был – не наследовать layout_weight, удалять неиспользуемые View и избегать большой вложенности.

При усложнении интерфейса стоит всегда обращать на это внимание и искать пути оптимизации вместо нагромождения разных View.

Было:

<LinearLayout>

  <LinearLayout>

     <TextView/>

     <TextView/>

  </LinearLayout>

  <TextView/>

</LinearLayout>

Стало:

<RelativeLayout>

  <TextView/>

  <TextView/>

  <TextView/>

</RelativeLayout>

Ознакомиться с советами можно в видео: 


 


На DroidCon выступал и Иджит Бойар (Yigit Boyar), работающий в команде Android UI Toolkit в Google, а до этого в команде Path. Он поделился опытом в разработке приложений, которые поддерживают и корректно обрабатывают офлайн-режим. Правильно обработать низкоскоростное соединение или его отсутствие – проблема многих приложений. А приведенная в докладе статистика доказывает, что эта проблема действительно актуальна: 55% трафика Латинской Америки, 30% Восточной Европы, 50% Центральной и Западной Европы, 80% Африки и 60% Азии – это трафик на скорости EDGE (от 120Кбит/с до 384Кбит/с).

Act locally, sync globally!

При проектировании API нужно думать не в контексте запроса-ответа – нужно задумываться о пользователе, работать в ключе синхронизации. Можно хранить на устройстве локальную модель данных, включая изменения, а при синхронизации использовать вспомогательные поля, в которых хранятся версии объектов или локально измененные данные. Благодаря такой архитектуре пользовательский опыт от приложения будет положительным, даже если соединение нарушилось.

Также стоит отказаться от блокирующих интерфейс окон «Подождите», «Идет загрузка» – при правильной архитектуре возможна синхронизация без блокирования интерфейса.

Если возникла ошибка отправки данных на сервер, простого сообщения об этом (например, Toast или надписи в интерфейсе) мало. Пользователь уже мог закрыть приложение. В таком случае стоит послать пуш-нотификацию, и пользователь сможет повторить отправку. И, наконец, если действие не требует наличия соединения с сервером, то оно должно быть доступно офлайн всегда.

Завершился доклад простым выводом: «Локальный диск – ваш бро, а сеть – не ваш бро».

Все выступление доступно по ссылке: 



Так прошел очередной DroidCon, и снова ведущие разработчики поделились своими лучшими практиками и советами. Выступления шли параллельно и, увы, не на все из них удалось попасть. Но записи всех выступлений доступны на YouTube.


В павильоне DroidCon - Spherical Image - RICOH THETA

Теперь ждем конференцию Google I/O 2016 – главную конференцию для Android-разработчиков. До 18 мая осталось совсем немного времени!

 


Материалы по теме:

Почему хакеры все чаще взламывают небольшие сайты?

Смартфоны на российской ОС пообещали выпустить в 2016 году

Цифры дня. Подростки осознают свою зависимость от телефонов

12 самых интересных финтех-стартапов прямиком из Лондона


comments powered by Disqus

Подпишитесь на рассылку RUSBASE

Мы будем вам писать только тогда, когда это действительно очень важно