Size: a a a

Android Live 🤖

2018 May 25
Android Live 🤖
​​Гамбургерное меню
#дизайн

Недавно прочитал статью о том, как влияет скрытое меню на опыт использования приложения или сайта. 

Исследование говорит, что пользователи сайтов использовали скрытое меню только в 27% случаев, а видимую часть в 50%. На мобильных устройствах эта цифра составляет 57% для скрытого меню и 87% для видимого.

Интересно наблюдать за тенденцией: раньше большинство мобильных приложений стремилось использовать кнопку «гамбургер» для создания скрытого бокового меню. Даже когда оно не было уместно. Все это преподносилось под соусом гайдлайнов, и поэтому никто не задумывался о правильности использования. 

Этот же «гамбургер» перекочевал и на десктопные сайты, где в распоряжении огромный экран, куда помещается сколько угодно контента. Например, известный сайт BBC Russian имеет полоску со скрытым меню. Попробуйте засечь, сколько секунд вам понадобилось, чтобы понять, что там есть меню и еще больше контента, кроме того, что сейчас доступен.

Сейчас все больше приложений уходят в сторону видимого или комбинированного меню. Например, такое меню размещается внизу при помощи BottomNavigationView . Это удобно, и позволяет очень быстро переключаться между основными разделами приложения.

Из всего этого можно сделать один вывод: по возможности нужно использовать видимое меню. Если приложение состоит из 5 разделов, то смысл скрытого меню теряется, а о некоторых функциях пользователь может догадаться не сразу.
источник
2018 May 28
Android Live 🤖
Dagger 2
#разработка #статьи

Мне кажется, что про библиотеку Dagger 2 слышал каждый Android-разработчик. Тема заезжанная, есть много статей для быстрого старта, но мне хочется собрать их вместе и помочь начинающим разработчикам в изучении этой библиотеки, чтобы они могли стать чуть лучше в программировании.

Dagger 2 — библиотека, которая позволяет реализовать паттерн Dependency Injection. Этот паттерн снижает зависимость объектов друг от друга, а также уменьшает время написания кода. Отличный цикл статей для новичков есть тут. В этих статьях вы найдете много примеров, которые объясняют, для чего нужен Dagger.

В одной из статей прочел пример из реальной жизни, который примерно описывает то, что делает Dagger.

Представьте операционную, где выполняется многочасовая операция. При этом процессе присутствуют хирург и помощник. Хирург занят тем, что оперирует пациента, и ему постоянно необходимо получать разные инструменты: зажимы, скальпели. Он просит помощника подать скальпель. Помощник сам знает, где ему взять этот инструмент, на какой полке он лежит. Хирург же занят своей зоной ответственности — операция, и он отвечает только за это. Зона ответственности помощника — это предоставление всех инструментов, которые могут понадобиться хирургу.

Примерно по такому же принципу и работает паттерн Dependency Injection. Dagger выполняет роль помощника, а наше приложение — хирург, который делает операцию.

Второй цикл статей, который помог мне в освоении этой библиотеки можно найти тут.

На самом деле, вначале может показаться, что библиотека сложная. Такое чувство возникает из-за кода, который генерирует Dagger. Но если немного разобраться в принципах построения графа и почитать этот код, то все встает на свои места.
источник
2018 May 31
Android Live 🤖
Я уже писал о том, что Kotlin сегодня — лучший язык для написания приложений для Android. Сегодняшний мой совет поможет начинающим разработчикам хорошо прокачать себя в изучении Kotlin.

Помимо того, что Kotlin содержит отличную документацию, есть ещё Try Kotlin, где вы можете прямо в браузере применять свежие знания о языке к небольшим проектам.

Try Kotlin разбит на несколько блоков, каждый из которых состоит из ссылок на конкретный пункт документации, задания и фрагмента кода, которые нужно дописать. Для прохождения задания, нужно дописать код и запустить тесты. Это увлекательное занятие, а знания о языке хорошо усваиваются.
источник
2018 June 06
Android Live 🤖
​​Fill RAM
#разработка #приложение

Давненько не писал для вас ничего интересного. Сегодня постараюсь исправить это недоразумение и не пропадать надолго.

Иногда возникают ситуации, когда нужно проверить работу своего приложения в ситуации, когда на телефоне недостаточно оперативной памяти.

Для того, чтобы это сделать можно попытаться открывать одновременно большое количество приложений, которые в итоге действительно займут большую часть оперативной памяти. Но ведь текущие смартфоны порой имеют и 4, и 6, а то и 8 гигабайт оперативной памяти. Такой объем заполнить не так просто и придется захламить кучей приложений телефон.

Для этой цели гораздо комфортнее использовать приложение Fill RAM. Нажав одну кнопку через некоторое время вы получите телефон с заполненной памятью. Теперь краши, связанные с недостатком оперативы будет проще найти и исправить.
источник
2018 June 10
Android Live 🤖
Android Sunflower
#разработка 

На последнем Google IO представили Jetpack, который содержит набор библиотек, помогающий разработчикам эффективно писать приложения. 

Документация есть, но удобно видеть пример кода, помогающий быстрее разобраться в инструментах. Совсем недавно мне на глаза попался репозиторий, где содержится пример инструментов из Jetpack, таких как:

• Android KTX — позволяет писать лаконичный и краткий код на Kotlin;
• Navigation — инструмент для создания навигации внутри приложения;
• Room — база данных, обёртка над SQLite (упоминал, кстати, о ней);
• WorkManager — работа с фоновыми операциями в Android.

Помимо этих, в проекте использовано куча других инструментов из Jetpack. Рекомендую для ознакомления и изучения.
источник
2018 June 13
Android Live 🤖
​​ButterKnife или Data binding?
#разработка #библиотеки

Сегодня на работе спорили о том, что лучше использовать: ButterKnife или Data binding?

Помню, что когда ещё не было ButterKnife, то приходилось писать findViewById, после чего кастовать найденную View к нужной. Было слишком много лишнего кода. Например, если в вашей Activity есть 10 View, то для использования их нужно было писать 20 строк кода с findViewById. С появлением в проектах ButterKnife число строк сократилось вдвое, и теперь нужно было просто написать @BindView(R.id.textView) TextView text.

Не так давно появился Data Binding. Для использования нужно немного модифицировать xml-файл разметки и написать в Activity ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);, после чего у вас появляется доступ к вашему layout напрямую: binding.textView. Количество View не играет никакой роли при использовании Data Binding. Ведь строк кода всегда остается только 2!

Какие плюсы у ButterKnife? Например, есть другие аннотации, которые упрощают работу, например: @OnClick, @OnItemSelected, @BindColor. Также можно примененить аннотации на несколько View.

В Data Binding же мы получаем мощный инструмент для работы с адаптерами в RecyclerView, возможность делать кастомные атрибуты и много других интересных и удобных инструментов.

С появлением Kotlin появились kotlin-android-extensions, которые ещё больше упростили базовую работу с View.

Так уж повелось, то в Java-проектах я использую ButterKnife, а в новых, написанных на Kotlin проектах — Kotlin Extensions. С Binding сталкивался на ранних этапах его появления, но уверен, что это отличный инструмент.

А что больше нравится вам?
🔴 — ButterKnife;
🔵 — Data Binding;
⚫️ — Kotlin Extensions.
источник
2018 June 15
Android Live 🤖
Скорость сборки проекта
#разработка

Каждый раз, когда собираю основной рабочий проект, то берет грусть от времени сборки.

И вот, когда время сборки проекта стало приближаться к 5 минутам, то решил найти варианты решения этой проблемы.

На последнем Mobius был доклад, в котором автор рассказывал про уменьшение времени сборки проекта. Главным аргументом для этого было разбиение проекта на модули.

Думаю, что проблемы долгой сборки у большинства крупных проектов одинаковые:
• Annotation processing;
• переплетенность модулей между собой;
• Data binding и Dagger в каждом модуле;
• огромный модуль и Application модуль.

Первые шаги, которые помогут уменьшить время сборки проекта:
1) Использование implementation вместо api в gradle.
2) Ядро приложения должно быть максимально тонким. Сюда лучше всего добавлять только интерфейсы, а все реализации описываются в конкретной фиче.
3) Код приложения нельзя шарить между модулями.
4) Модули не должны взаимодействать друг с другом.

Также стоит помнить про инструмент gradlew clean assembleDebug --scan. Он покажет интерактивную диаграмму с этапами сборки проект.

Чтобы лучше разобраться с модульностью рекомендую ознакомиться с проектом.
источник
2018 June 19
Android Live 🤖
Бывают ситуации, когда необходимо создать фон для изображения, но не в виде цвета, а в виде повторяющегося изображения. 

Многие, особенно в начале своего пути, используют просто повторяющиеся фоновое изображение. Однако, такой подход не самый лучший, так как нужно хранить полное изображение, что ведет к увеличению размеров apk-файла. Предлагаю использовать данный #совет, чтобы уйти от этой проблемы.

В Android можно очень просто создать повторяющийся фон:
1) Вырежьте небольшой кусок того фрагмента, который будет повторяться
2) Добавьте новый drawable, где создайте <bitmap>, указав src и android:tileMode="repeat"

Подробнее можно прочитать тут
источник
2018 June 21
Android Live 🤖
​​Найм
#мысли 

Около недели назад послушал свежий выпуск подкаста Про найм. А тут вторая часть. Я, например, нашёл там несколько интересных пунктов:

1) Не стоит указывать среди первых своих навыков кроссплатформенные фреймворки, типа Xamarin. Если собеседуетесь на вакансию Android разработчика, то лучше сосредоточиться на его навыках и используемых библиотеках. Из своего опыта собеседований могу сказать, что о таком человеке складывается мнение, что он не знаком ни с чем, а попробовал все на уровне тестовых и документации. Если же вы чувствуете свою мощь, то составьте несколько резюме для каждой из вакансий.

2) Пробуйте приложение и сервис той компании, куда собираетесь пойти. Конечно, если это не какой-то закрытый проект. Если вы предложите интересные идеи для улучшения проекта, то это увеличит ваши шансы на оффер.

3) Прокачивайте теоретическую и алгоритмическую базу. Поэтому заходите на HackerRank, чтобы решить пару задач.

Ну и еще много всего интересного про найм в этом выпуске. Кстати, всегда заглядывайте в ссылки, которые опубликованы в выпуске. Там можно найти и список вопросов для собеседования и много полезных сервисов. Ну и слушайте этот подкаст, если еще не делаете этого. Группа для обсуждения подкаста тут.

Например увидел несколько отличных сайтов для составления резюме онлайн. Это не простая задача, как может показаться на первый взгляд.
источник
2018 June 22
Android Live 🤖
RxJava: flatMap, switchMap и concatMap
#разработка 

Это достаточно распространные операторы, и между ними есть существенная разница, о которой стоит помнить. В качестве примера для списка элементов "a", "b", "c", "d", "e", "f" применяется фукнция конкатенации x. Вот краткое объяснение:

flatMap — применяет функцию к каждому элементу, соединяет элементы вместе и после чего возвращает Observable. Следует помнить, что элементы могут чередоваться, поэтому функция не заботится о порядке возвращения. В примере увидим cx, ex, fx, bx, dx, ax

switchMap — в отличии от flatMap, при получении нового элемента отписывается и перестает отображать предыдущие элементы, и наблюдает только за текущим. В примере увидим fx.

concatMap — в отличии от flatMap, заботится о порядке элементов. При этом ему необходимо дождаться, пока каждый из элементов завершит свою работу перед получением нового. Поэтому, этот оператор нужно использовать осторожно. В примере увидим ax, bx, cx, dx, ex, fx

Больше объяснений и примеров использования операторов тут.
источник
2018 June 29
Android Live 🤖
На канале был пост о том, где лучше работать, в большой компании или в стартапе.

Я сменил свое место работы, и теперь работаю удаленно в стартапе. Это интересный опыт. Сейчас вливаюсь в рабочий процесс и вникаю в проект.

Что я понял за неделю работы удаленно
1) Важно, чтобы дома было рабочее место. Ни в коем случае нельзя работать на кровати. Это значительно уменьшает производительность. 
2) Необходимо контролировать рабочие часы. Для себя я решил работать по технике Pomodoro. Не стоит перерабатывать, иначе есть шанс просто перегореть.
3) Нужно делать перерывы и отвлекаться от компьютера. Хотя бы иногда стоит разминаться, пить воду и не забывать про обед.

Для меня это новый опыт, дальше обязательно напишу о плюсах и минусах удаленной работы.
источник
2018 July 02
Android Live 🤖
​​Live Templates
#разработка #совет

При длительном написании кода, усталость разработчика накапливается, поэтому он может совершить простые ошибки в коде, которые никогда бы не совершил при ее отсутствии.
Уверен, что каждый совершал описку в этом коде:
Toast.makeText(this, "Text to show»);

Toast не покажется, потому что мы забыли написать в конце .show(). Среда подскажет об ошибке, однако в других случаях этого может не произойти.

Чтобы уменьшить количество таких простых ошибок и сократить количество повторяющегося кода, созданы Live Templates. Есть большое количество шаблонов, встроенных в студию. Посмотреть их можно в настройках File > Settings > Editor > Live Templates.

В нашем случае достаточно было написать Toast, чтобы получить шаблон для всплывающего сообщения.

Подробнее о написании своих Live Templates можно почитать тут.
источник
2018 July 03
Android Live 🤖
​​В сообщения пришел #вопрос: сколько необходимо опыта и что еще нужно соблюдать для перехода на удаленку? Все, что написано ниже — только мое мнение.

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

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

Всегда рад ответить на ваши сообщения тут.
источник
2018 July 04
Android Live 🤖
Как подтянуть английский?
#совет 

Думаю, в жизни каждого современного человека наступает момент, когда ему хочется подтянуть свой английский до хорошего уровня. Подобные мысли возникают чаще перед Новым годом, с понедельника или других дат. 

Для разработчика английский язык необходим. Без умения читать статьи, документацию, писать вопросы в stackoverflow — сложно представить современную разработку. Кроме этого, у каждого открываются куча новых возможностей, таких как:
• просмотр сериалов и фильмов в оригинале;
• общение с иностранцами;
• свободное общение в путешествиях;
• карьера. 
Хотя уверен, что вы и без меня знаете о всех плюсах языка. 

Сегодня хочу поделиться некоторыми советами, которые помогают мне в изучении и улучшении навыков английского языка:

1) Просмотр сериалов.
Это помогает понимать настоящую речь иностранцев. Рекомендую смотреть именно сериалы, а не фильмы. Хотя в самом начале легче смотреть мультфильмы. В них проще речь для понимания.
Для просмотра рекомендую сервис PopcornTime. Это большой онлайн-кинотеатр с выбором субтитров. Еще слышал положительные отзывы о сервисе OroroTV, но не использовал его.
Рекомендую смотреть на английском языке с английскими субтитрами. Русские субтитры используйте, если ничего не поняли и уже при повторном просмотре с перемоткой назад.

2) Просмотр видео.
Помогает и вносит разнообразие просмотр лекций TED. Поищите интересные каналы на YouTube. Их гораздо больше, чем в русском сегменте. Выбирайте по своим интересам.

3) Прослушивание подкастов. Это помогает понимать английскую речь не видя собеседника. На самом деле, это гораздо сложнее, чем живое общение или просмотр видео.
Из темы Android рекомендую слушать FragmentedPodcast.

4) Чтение статей. Понятно, что это прокачивает навык чтения. 
Из сайтов рекомендую Inc, ну и множество статей на различные технические темы — #medium.

5) Занятие с преподавателем. Вот тут немного подробнее. 
Не так давно открыл для себя школу английского языка SkyEng. Слышал много отзывов и решил попробовать. Суть школы в том, что вы получаете индивидуальные занятия с подобранным для вас преподавателем. Цель заключается в том, чтобы вы разговаривали в течении занятия не меньше 65% времени. 

Первое занятие — вводное. Там оценят ваш уровень языка, спросят цели изучения английского и постараются подобрать преподавателя. 
Дальше вы будете учить язык с учителем. Есть вариант выбрать носителя или русскоговорящего преподавателя. Я не рекомендую брать занятия с носителем, если ваш уровень ниже B2. Носитель нужен при очень хорошем знании языка, чтобы немного отшлейфовать навыки и акцент. Ну и это стоит гораздо дороже, чем русскоязычный преподаватель. 
Я пробовал занятия с носитетелем, однако через пару занятий поменял преподавателя на русскоговорящего.

Далее вы выбираете то, как хотите заниматься. Сейчас я занимаюсь по стандартной схеме: мы делаем урок, если я что-то не понимаю, то спрашиваю и получаю домашнее задание. Коллега рассказывал, что у него другая схема: они просто общаются «за жизнь» по-английски, преподаватель делает акценты на ошибках и дает по ним задания. Возможно, я тоже приду к похожей схеме. 

Впечатления от школы отличные, и крайне рекомендую вам заниматься там. Вы получаете хорошую мотивацию, кучу материалов для изучения и опытного преподавателя. Делюсь своей ссылкой для регистрации. И вам, и мне достанется по 2 бесплатных урока, что выгодно.

6) Языковые клубы
Еще одна возможность для практики языка — языковые клубы. Это сервис, который организовывает Skyeng. Вы можете бесплатно присоединиться к группе из 6 человек, где с вами будет учитель, направляющий общение. Это также здорово прокачивает навыки общения и выражения мыслей на языке.

Надеюсь, что этот пост поможет вам в прокачке всех навыков английского языка.

А вы изучаете английский язык?
источник
2018 July 14
Android Live 🤖
Цветовая схема logcat
#совет

Скорость и качество работы разработчика зависит от многих вещей: мощность компьютера, удобство рабочего места, знание горячих клавиш, время компиляции приложения, отвлекающие факторы и другое. Одной из неочевидных, но очень важных вещей, улучшающих качество работы является цветовая схема logcat.

После установки Android Studio logcat выглядит как сплошное белое полотно текста, где красным цветом показываются ошибки. На мой взгляд, ошибки — это самое важное, что нужно мониторить в логах. Однако, другие параметры также важны. Для удобства их можно отделить разными цветами.

Чтобы изменить цветовую схему логов, необходимо перейти:
Settings → Editor → Colors & Fonts → Android Logcat
Я использую следующую цветовую схему:
• Assert BA68C8;
• Debug 2196F3;
• Error F44336;
• Info 4CAF50;
• Verbose BBBBBB;
• Warning FF9800.

После этой настройки вы врядли захотите продолжать использовать стандартный, белый logcat, а скорость работы увеличится.
источник
2018 July 16
Android Live 🤖
CrunchyCalendar
#разработка #библиотека 

Не так давно ко мне обратились с просьбой изучить небольшую библиотеку и рассказать о ней на канале. Это библиотека для работы с календарем — CrunchyCalendar.

На самом деле, работа с календарем — распространенная задача. Основной кейс состоит в том, чтобы получить выбранную дату, показав при этом пользователю календарь. 

Сразу в голове всплывает стандартный компонент — DatePickerDialog. Но он справляется только с тем, чтобы выбрать одну дату. А что если необходим диапазон дат? Или хочется большей кастомизации? И что делать, если выбор нужно сделать на текущем экране? Тогда приходится искать кастомные библиотеки для работы с календарем. 

Что мне понравилось в CrunchyCalendar:
1) Нет лишней фукнциональности. Часто бывает, что из всей библиотеки необходима только одна ее часть. Остальная при этом висит мертвым грузом в проекте. Тут только календарь и больше ничего, что здорово.
2) Малый размер. В ней нет никаких ресурсов и других библиотек, кроме RecyclerView (который уже и так у вас в проекте).
3) Кастомизация. Можно настроить цвета и задать тему для View. Кроме того, библиотека сделана в виде адаптера для RecyclerView, поэтому если не хватает стандартных возможностей, то их всегда можно добавить.
4) Простой и лаконичный дизайн.
5) Библиотека написана на Kotlin.

Из минусов могу отметить то, что нельзя выделить диапазон дат при помощи жеста, а также то, что нельзя ограничить количество выделяемых дней в диапазоне. В остальном — отличная библиотека, которую буду использовать, если захочу работать с календарем в проекте.
источник
2018 July 21
Android Live 🤖
​​CatchUp
#библиотека #разработка #совет 

Мне очень приятно получать от вас обратную реакцию и вопросы. Сегодня получил вопрос о том, что можно написать начинающим разработчикам, чтобы изучить как можно больше тем, библиотек и попробовать применить архитектурные паттерны. 

Есть одно приложение, которое позволяет изучить много библиотек и паттернов — CatchUp. Его пишет Zac Sweers — Android-разработчик из Uber. 
По сути, это приложение большой аггрегатор новостей из разных источников, например Reddit, Medium, Dribbble. Главным отличием является то, что вы можете изучить благодаря ему множество технологий и библиотек. Лучше почитать о них на странице проекта.

Если хотите потренироваться и у вас есть некоторые знания по Android-разработке, то попробуйте написать простой аггрегатор новостей. В подобном приложении вы сможете применить архитектурные паттерны, библиотеки для работы с базой данных, сервером, dependency injection, загрузкой картинок, тестирования и многое другое. CatchUp будет для вас ориентиром, к которому стоит стремиться.

А если вы опытный разработчик, то это приложение восполнит пробелы о некоторых незнакомых библиотеках и даст понимание, как их лучше использовать в настоящем приложении.
источник
2018 July 25
Android Live 🤖
Горячие клавиши
#совет 

На эффективность разработки влияет множество факторов: настройки среды программирования, компьютер или рабочее место вокруг. Также немаловажным является знание горячих клавиш в Android Studio.

Мне кажется, что нет ни одного разработчика, который бы знал все горячие клавиши. Но для постоянных действий, которые мы совершаем, используя меню, просто необходимо знать альтернативные горячие клавиши. Это сильно ускоряет процесс написания кода. Как-то я уже упоминал Multicursor, поэтому если вы еще не используете этот замечательный инструмент, то скорее начинайте.

Чтобы помочь в изучении горячих клавиш, нашел пару решений, которые будут полезны. 

1) Списки горячих клавиш. Можно иногда пролистывать, пытаясь найти те действия, которые делаешь не используя горячие клавиши. Например, подобный список можно взять тут. Но если поискать, то найдете кучу статей на эту тему.

2) KeyPromoter. Плагин, который анализирует действия разработчика в среде программирования и подсказывает, какие из них эффективнее сделать с помощью клавиш. Рекомендую на начальном этапе разработки.

3) Mouseless Driven Development. Доклад, который посвящен работе в Android Studio без использования мыши.

Была одна проблема, которая возникла у меня при использовании горячих клавиш — переход с Windows на MacOS. К сожалению, не все кнопки совпадают и поначалу это дико раздражало. 

А вы изучаете горячие клавиши в Android Studio?
источник
2018 July 26
Android Live 🤖
MBLT DEV 2018

Обычно я писал вам о профессиональных конференциях во время ее проведения или уже после ее завершения. Однако сейчас расскажу о предстоящей конференции MBLT DEV 2018, которую также посещу.

В прошлом году я присутствовал на MBLT DEV 2017. Это было первое посещение конференций мобильных разработчиков, и я был под впечатлением после ее завершения. Много докладов, профессиональные знакомства, общение с разработчиками — все это сильно прокачивает и дает возможность применять опыт других людей к собственным проектам. Кстати, вот ссылка на один из лучших докладов, где Zac Sweers из Uber рассказал об автоматизации и кодогенерации.

Уже есть предварительное расписание
Интересно послушать про Firebase ML Kit, так как это новый и нестандартный инструмент, который имеет большое применение. Также любопытен опыт применения Firebase + Flutter. Этот фреимворк наслуху, и понимать на что он способен важно. 

Список докладов пополняется. Например, будет доклад о применении и нюансах работы с Google Assistant и Actions on Google. Если вам интересна эта тема, то вы можете прислать свои вопросы спикеру, и он учтет их при подготовке доклада. 

Конференция пройдет 28 сентября. Сегодня билет стоит 10 000 рублей. 28 июля цена увеличится, поэтому имеет смысл сэкономить и  преобрести его сейчас. До встречи на MBLT DEV!
источник
2018 August 02
Android Live 🤖
Сабрепозиторий
#разработка #совет 

Одной из задач, с которой сталкивается разработчик при создании приложений —  переиспользование кода. Помогают решить эту задачу сабрепозитории.

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

Для подключения репозитория в Android Studio необходимо:
1) Создать модуль в основном проекте.
2) Перенести этот модуль в отдельный каталог
3) Создать новый git-репозиторий из каталога и запушить изменения на сервер
4) Подключить репозиторий при помощи команды git submodule add _repo_url_. Можно также указать ветку, которая является основной.
5) Добавить подключенный модуль в качестве библиотеки, прописав каталог в настройках и build.gradle. 

Далее, при изменении сабрепозитория необходимо использовать команды git submodule init и git submodule update. Это крайне удобный инструмент, который легко поможет разделять код на модули и использовать его во многих приложениях.
источник