Лучшие статьи и кейсы стартапов
Включить уведомления
Дадим сигнал, когда появится
что-то суперстоящее.
Спасибо, не надо
Вопросы Проекты Вакансии
Надежные и удобные программные решения
Рекомендуем
Продвинуть свой проект
Лучшие проекты за неделю
39
Битрикс24

Битрикс24

www.bitrix24.ru

30
Отследить-посылку

Отследить-посылку

отследить-посылку.рф

13
WebResidentTeam

WebResidentTeam

webresident.agency

12
Логомашина

Логомашина

logomachine.ru

11
Devicerra

Devicerra

devicerra.com

11
Flowlu

Flowlu

flowlu.ru

10
GIFTD

GIFTD

giftd.tech

9
Aword

Aword

Приложение для изучения английских слов

9
ADN Digital Studio

ADN Digital Studio

adn.agency

9
Eczo.bike

Eczo.bike

www.eczo.bike

Показать следующие
Рейтинг проектов
Подписывайтесь на Спарк в Facebook

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

56 1 В избранное Сохранено
Авторизуйтесь
Вход с паролем
В конце марта в Сан-Франциско прошла конференция “DroidCon”, посвящённая Android-разработке. Делимся интересными выступлениями и итогами конференции.

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, и в iOS, и в Windows Mobile, то Drag-n-Drop — это существенное отличие, упрощающее работу с системой. Теперь при поддержке приложением данной функции можно будет просто перетягивать файлы из одного приложения в другое, чтобы последнее их открыло.

b_573482067bd9d.jpg

b_5734820ce26a0.jpg

b_573482199f787.jpg

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

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

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

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

<code class="language-javascript">
android {
   ...
   defaultConfig {
      ...
      jackOptions { 
         enabled true
      }
   }
   compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
   }
}
</code>

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

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

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

Его выступление вы можете посмотреть здесь.

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

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

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

Было:

<code class="language-markup">
<LinearLayout>
   <ImageView/>
   <TextView/>
</LinearLayout>
</code>

Стало:

<code class="language-markup">
<TextView
   drawablePadding=&rdquo;&hellip;&rdquo;
   drawableEnd=&rdquo;&hellip;&rdquo; />
</code>

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

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

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

Было:

<code class="language-markup">
<LinearLayout>
   <LinearLayout>
      <TextView/>
      <TextView/>
   </LinearLayout>
   <TextView/>
</LinearLayout>
</code>

Стало:

<code class="language-markup">
<RelativeLayout>
   <TextView/>
   <TextView/>
   <TextView/>
</RelativeLayout>
</code>

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

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

Act locally, sync globally!

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

При этом также стоит отказаться от блокирующих интерфейс окон “Подождите”, “Идёт загрузка” — при правильной архитектуре возможна синхронизация без блокирования интерфейса.

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

Завершился доклад простым выводом:

Локальный диск – ваш бро, а сеть – не ваш бро.

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

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

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

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

Автор статьи Алексей Калачёв, мобильный разработчик INOSTUDIO.

Оригинал статьи читайте на страницах блога компании и не забывайте подписываться!

0
Первые Новые Популярные
Виктор Шмелев
Да Андроид неплохо продвигаеться в сети. Я вон читал статью в http://droidov.com/ustanovka-cyanogenmod-13-na-android-ustroystve , что уже появилась неплохая прошивка CyanogenMod 13 , которая дают неплохие функции.
Ответить
Выбрать файл
Читайте далее
Загружаем…
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать