DroDev | Мобильная разработка: мысли вслух
460 subscribers
104 photos
229 links
Обсуждаю и рассказываю как сделать жизнь разработчика в команде интересной, легкой и продуктивной.

По всем вопросам @dilix90
Download Telegram
Примеры кода под #Android подъехали!

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

В блоге появилась новая рубрика "Обучение Android", в которой будут появляться небольшие статьи на одну конкретную тему "Как сделать <что-то-полезное>". Там же можно найти ссылку на #github и даже на уже готовое приложение в #GooglePlay.

На сегодня рассмотрены темы:
- #BottomSheetBehavior и как его использовать
- Анимированные с помощью #Lottie кнопки
- #Монетизация ваших приложений через рекламу
- Монетизация ваших приложений через внутренние покупки

Кроме того, в исходниках, но пока не в статьях, вы сможете посмотреть как реализовать #DeepLink через #Firebase, как можно работать с #ProductFlavors и еще пара неописанных пасхалочек.

Пссс, у меня к тебе отдельная просьба - поделись этим постом с теми, кто также фанатеет от Андроид разработки как и ты и оставь отзыв в Google play к данным примерам. Это будет подтверждением, что я всё делаю правильно и стимулом для написания новых обучающих примеров! https://dimlix.com/android-tutorials/
DroDev | Мобильная разработка: мысли вслух pinned «Примеры кода под #Android подъехали! Как выяснилось в ходе опроса, подавляющее большинство хотело бы в том числе увидеть примеры готового, работающего кода рядом со статьями. В блоге появилась новая рубрика "Обучение Android", в которой будут появляться…»
Google проводит Developer challenge на тему машинного обучения 🤖

До 2 декабря 2019 года можно постить свои идеи проектов, которые решают реальные проблемы пользователей и используют ML.

Реализовать проект предстоит до 1 Мая 2020 при поддержке Гугла в том числе.

10 отобранных разработчиков получат фичеринг детища в google play, анонсы в их каналах, билеты на Google I/O 🚀

Если вы думали о том, на какую тему сделать следующее приложение под Android📱, то вот вам и стимул использовать ML в следующем проекте 😉 https://developer.android.com/dev-challenge
Сегодня люди используют совершенно разные устройства для потребления контента - смартфоны, компьютеры, планшеты и тд.

Разработчикам важно реализовать корректную навигацию не только в приложении, но и в целом в общей экосистеме продукта. Например, когда пользователь с компьютера поделился ссылкой с другом, а тот открыл его с мобильного устройства, на котором установлено (или нет) приложение, которое может обработать эту ссылку.

Улучшая пользовательский опыт, мы тем самым увеличиваем наши конверсии и лояльность к сервису в целом.

Реализовать корректную навигацию не так просто, как может показаться на первый взгляд, есть целый ряд кейсов:

- пользователь уже установил наше приложение,
- программа уже установлена, но ссылка может быть обработана только после обновления,
- пользователь зашел с компьютера
и т.д. и т.п.

#Firebase #DynamicLinks - простой и бесплатный инструмент, который поможет реализовать вам навигацию между продуктами.

Как его использовать - разобрал в рамках цикла обучающих примеров, приятного изучения! https://dimlix.com/deeplink-android/
#Android #Composer или шаг на встречу #Flutter.

Composer - набор инструментов, представленный в canary сборке #AndroidStudio, позволяющий декларативно описывать UI.

Это значит, что вы описываете в коде что хотите видеть на экране, а остальное делают за вас. Состояние UI поддерживается консистентно модели данных. Т.е. вы изменили переменное состояние, а UI подстроился под новые "вводные". Вот такой вот продвинутый View Binding.

На мой взгляд идея хорошая, но поддерживать сложные layout может быть проблематично. С другой стороны это может подтолкнуть к упрощению интерфейсов. В общем посмотрим на реализацию в деле. https://developer.android.com/jetpack/compose
#Google продолжает унифицировать свои #Android #API делая жизнь разработчиков и производителей девайсов/прошивок проще.

Настала очередь биометрии. В #AndoroidX пакете androidx.biometric доступен #BiometricManager, который уже сам в зависимости от API LVL на устройстве использует правильные классы.

Унифицированные API от Google хороши тем, что потенциально сокращают цикл тестирования. Проверив, что API корректно работает на одном из устройств, можно быть уверенным (если доверяете гуглу), что оно же сработает на другом. https://android-developers.googleblog.com/2019/10/one-biometric-api-over-all-android.html
This media is not supported in your browser
VIEW IN TELEGRAM
Если архитектура приложения - говно, то даже незначительная правка может привести к интересным результатам...
Раньше в #Firebase было не очень удобно строить воронки, какой-нибудь #Amplitude для этого круче.

Давно не заходил в раздел аналитики в Firebase и тут с удивлением заметил, что теперь данные можно шарить прямиком в Google Analytics и получать наряду с отчетами в Firebase вот такие User Path в GA.
#GooglePlay выкатил Play Point в США, а это значит, что вероятно, рано или поздно доберется и до нас.

Play Points - внутренние очки (читай "валюта") в google play store, которая зарабатывается за активность как в маркете, так и в других приложениях. Эти очки, по словам разработчиков, можно тратить в том числе на внутренние покупки внутри других приложений.

По опыту использования Steam могу сказать, что платформенные ачивки затягивают, посмотрим на развитие в Google play. https://android-developers.googleblog.com/
#GoogleFit собрал уже большую базу пользователей, например в #GooglePlay у приложения 50млн+ скачиваний. Теперь пора и обезопасить собранные данные.

Начиная с Android 10 гугл вводит новый Runtime Permission для доступа к "Фитнес" записям пользователя, а именно android.permission.ACTIVITY_RECOGNITION*

* Если вы не используете API именно google fit, а слушаете сырые данные от сенсоров - разрешения получать не нужно.

С помощью Google Fit Api можно получить доступ к таким данным, как
- Шаги
- Калории
- Активность пользователя https://android-developers.googleblog.com/2019/11/privacy-protections-for-physical.html
Сегодня у нас в "гостях" #AdditiveAnimator.

Данная библиотека под #Android позволяет удобно описывать последовательные и одновременные анимации нескольких элементов на экране.

AdditiveAnimator()
            .targets(payment_header, payment_subheader)
            .translationY(0f).alpha(1f)
            .setDuration(600)
            .then()
            .target(btnCC).translationX(0f).alpha(1f)
            .target(btnBankAccount).translationX(0f).alpha(1f)
            .start()

Круто же! Сначала payment_header, payment_subheader приезжают в 0 по Y и меняют alpha до единицы. Далее btnCC и btnBankAccount приезжают в 0 по X и также появляются через Fade.

В общем, если у вас есть зависимые друг от друга анимации, то крайне рекомендую взглянуть. https://github.com/wirecube/android_additive_animations
This media is not supported in your browser
VIEW IN TELEGRAM
Когда пришел продакт и попросил добавить аналитики в вашу идеально собранную, инкапсулированную и тд архитектуру 😜
Под руку попалась интересная статья про то, с чего начать переезд с #Java на #Kotlin если вы еще не.

По ссылке высокоуровневое сравнение двух языков, например о том в чем разница между '==' и '===', какие префиксы стоит использовать и многое другое.

Даже если вы уже на Котлине, рекомендую заглянуть, чтобы убедиться, что вы ничего не пропустили при переезде. https://medium.com/androiddevelopers/learn-kotlin-through-unit-tests-914106d2d8c5
Push уведомления в мобильных приложениях - отличный способ поднять retention и другие метрики. Конечно если не перебарщивать...

О том, какие уведомления существуют в Android приложениях и как их реализовать читайте в новой статье. Там будет и про #Firebase и про #Airship с #PooshWoosh, в общем много чего интересного. https://dimlix.com/notifications-android/
Разыгрываем легендарную книгу Effective Java в оригинале 🔥

Джошуа Блох получил Jolt Award за нее в далеком 2001.
Данный вариант относится еще к Java 6 но не теряет актуальности и по сей день.

Все что надо для участия:
- Лайкнуть запись про конкурс 1 балл (обязательное условие)
https://vk.com/dr_dev?w=wall-185690658_208

- За подписку на нашу группу ВК +1 балл
https://vk.com/dr_dev

- За лайк нашей страницы на Facebook +1 балл
https://www.facebook.com/droDev

- За подписку на нашу группу в Телеграмме +2 балла
https://t.me/droDev

- За вступление в чатик группы в Телеграмме +2 балла

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

Через сервис random.org будет выбран случайный победитель и анонсирован в группах ВК, ФБ, Телеграме.

Удачи и продуктивного обучения!
Шпаргалка по #Kotlin.

Для тех, что еще не привык ко всему синтаксическому сахару, который отсыпали вместе с Котлином 😉

Забирай себе и отправь другу - #Android разработчику, он будет рад! https://koenig-media.raywenderlich.com/uploads/2019/11/RW-Kotlin-Cheatsheet-1.1.pdf
Дорогой друг, потрать секунду времени, к тебе 1 вопрос.

Контент про разработку можно подавать как минимум тремя способами: готовый код + описание, статья с небольшими примерами, скринкаст.

Что тебе больше по душе?
Как ранее и говорил, начал реализовывать практические кейсы разработки под #Android. В реализованных примерах уже сейчас есть к слову

- Мониторинг наличия сетевого соединения
- Deeplink в Android приложениях
- Всплывающие BottomSheet панели

Все это можно скачать и пощупать прямо сейчас в Google play

А если у тебя есть вопрос про андроид разработку, то я готов подсказать в обсуждениях канала.

Хочу задать вопрс разработчику »
Бесплатный курс по Advanced #Kotlin от #Google и #Udacity 👨‍🎓

Видео презентация: https://www.youtube.com/watch?v=rGv5pInpSvc

2-х месячная программа рассчитана на людей уже знакомых с Котлином и желающих углубиться в дебри разработки.

Все мы по разному потребляем контент, по-этому гугл и юдасити позаботились о том, чтобы уроки были доступны как видео курс на Udacity, так и серия на #Codelabs.

Перейти к Udacity курсу »

Перейти на Codelabs »