Size: a a a

DroDev | Всё об Android разработке

2019 October 09
DroDev | Всё об Android разработке
Надеюсь все знают, что #View в #Android может принимать не 2 (видно\нет), а 3 значения:

View.VISIBLE
View.INVISIBLE
View.GONE

Правильно ли их используешь ты 🙃?
Пиши в комменты в каких случаях используешь View.INVISIBLE 👻, а когда View.GONE 🕶
источник
2019 October 10
DroDev | Всё об Android разработке
Время от времени крупные компании проводят митапы, в том числе по  #Android разработке. Такие бывают у Avito (http://bit.ly/2ogUXS9), Касперского, Яндекса и т.д.

Так вот, недавно в Авито один такой прошел, самый сок можно найти на хабре, приятного просмотра! http://bit.ly/2AZk92g
источник
2019 October 11
DroDev | Всё об Android разработке
#Безопасность - важная составляющая любого #Android приложения.
Обеспечить санкционированный доступ к программе критически важно для некоторых приложений.

О том, что нужно знать при разработке экрана блокировки с помощью #пинкода читайте в статье. http://bit.ly/31OZtWp
источник
DroDev | Всё об Android разработке
Всегда грамонтно рассчитывайте свои силы и не бойтесь сказать "Нет" если проект вам не по скилу.
источник
DroDev | Всё об Android разработке
В блог пишу статьи на интересные разработчику темы.

Хочешь задавать тон и читать про то, что интересно именно тебе?

Оставляй пожелания в комментах или в специальной теме для заявок в ВК 🗣
источник
2019 October 14
DroDev | Всё об Android разработке
4 строчки кода и несколько косяков.
Какие #ошибки вы видите в данном сниппете?
источник
2019 October 15
DroDev | Всё об Android разработке
Просили разобрать работу с #CustomView в #Android.
Одной статьей тут не отделаться, но надо с чего-то начать.

Держите разбор как скомпоновать custom #viewgroup из стандартных элементов. #Инкапсуляция, #SOLID и всё такое на уровне #UI. https://dimlix.com/customview-begginer/
источник
2019 October 16
DroDev | Всё об Android разработке
#Аналитика в мобильных приложениях для разработчика - страшный сон архитектуры вашего проекта. Всё потому, что мы, как разработчики, уважаем #SOLID, инкапсуляцию и всё такое... А потом приходит аналитик, маркетолог и просят всякую дичь. Например поведение пользователя на экране в зависимости от предыдущего экрана. И вот прощай #инкапсуляция.

Статья на тему как встраиваю аналитику обычно я - в черновиках и в работе, а тем временем ребята из La moda рассказывают как это делают они: https://habr.com/ru/company/lamoda/blog/469761/.

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

#Firebase #analytics (http://bit.ly/2OQwQoe)
Бесплатно и сердито. Можно строить воронки по событиям, но нельзя использовать параметры событий в нем.  Атрибуция (понять от куда пришел пользователь) есть, но в Appsflyer проще. Можно выгружать "сырые" данные в #BigQuery. Это круто, удобно и все такое, но надо повозиться. Зато можно настроить любые графики, данные и все что можно себе представить.

#Appsflyer (https://lite.ms/mTmv5y)
Использовался в основном для атрибуций. Причем, говорят (не пробовал), есть атрибуция рекламы по ТВ. В интерфейсе воронки по событиям можно разделять на каналы. У ребят из моей команды были проблемы отправить в AppsFlyer события с сервера, чтобы следить за ЖЦ пользователя в разрезе клиент-серверного единого пространства.

#Amplitude (http://bit.ly/2IPq7Ha)
Воронки - чума, можно строить по событиям, учитывать параметры и порядок ивентов. Посмотреть обезличенную инфу по пользователям на каждом этапе воронки и узнать кто конкретно отвалился. Например недавно прибежал аналитик и "айайай, у нас после релиза почему то >50% после первого экрана онбординга отваливаются". Зашли в amplitude, выгрузили список отвалившихся пользователей. Из условных 50 пользователей за период 30 было из США с одной и той же моделью телефона и из одной подсети. Все бы ничего, но приложение в сторе не доступно оттуда :D Выдвинули гипотезу, что это авто (или не очень) тесты после раскатки и спокойно пошли работать дальше.


Мой выбор - при старте проекта, если там и так используется Firebase - добавить аналитику от него. С ним можно уже запускаться, хоть будет понятно что происходит. Дальше Amplitude для более продвинутых воронок. Appsflyer уже если собираетесь поливать усиленно траффиком.
источник
2019 October 17
DroDev | Всё об Android разработке
Пара слов про #Git.
Почему, как и зачем его нужно использовать. https://dimlix.com/work-with-git-branches/
источник
2019 October 18
DroDev | Всё об Android разработке
Рефакторинг и расплата с "техническим долгом" должны быть аккуратными, так, чтобы не наломать еще больше дров.
источник
DroDev | Всё об Android разработке
Есть предложение. Задумал ряд мини статей-заметок в формате FAQ "как сделать <тут-что-то-интересное> в #Android". Например "как организовать мониторинг сетевого подключения".

Внутри только сок, вкратце что надо. Примеры кода и ссылочка на github где уже реализовано описанное + ссылка на google play где можно пощупать реализованное.

К тебе, дорогой слушатель, ровно 2 вопроса.
1) интересен ли такой формат (опрос ниже 🔽)?
2) есть ли определенные темы, которые хотелось бы увидеть (пишем в комментах, обсуждениях)?
источник
DroDev | Всё об Android разработке
Нужны ли заметки в формате FAQ с примерами и реализациями?
Анонимный опрос
84%
Да, огонь!
13%
Хз, хз, может и пригодиться
3%
Нет, в топку!
0%
Свой вариант (в комменты)
Проголосовало: 95
источник
2019 October 21
DroDev | Всё об Android разработке
Выложили видео с DroidCon NY.

А между тем, пока вы их смотрите, примеры кода, про которые говорил в прошлый раз практически готовы. Остается дописать "объяснительные записки" в виде небольших FAQ статей и первая версия этой движухи будет доступна. Скорее всего это произойдет уже на следующей неделе.

А пока продолжаем следить за новостями и статьями, впереди много интересного! https://www.droidcon.com/videos?path=NewYork%20City
источник
2019 October 22
DroDev | Всё об Android разработке
И снова немного про кросс-платформенную разработку.

В свободное время попробовал написать небольшое приложение на #Flutter
- это и правда классный инструмент, чтобы быстро сделать #MVP, но есть нюансы
- не надо думать, что "написал один раз и забыл". Например решил подключить Firebase. Пришлось открыть xcode и android studio, чтобы добавить нужные файлы и зависимости.
- некоторые фишки нужно дописать, даже если они есть в нативе. FirebaseUI Auth есть для #Web/#Android/#iOS. А чтобы подключить ее к flutter, не залезая в исходники - придется поискать библиотеку или писать самому.
- работает не всегда и не везде. Я, как Андроид разработчик, быстро завел приложение на эмуляторе. А вот iOS отказался работать, потому что конфигурация на первом этапе была сделана не совсем верно.

Итого - писать сразу под обе платформы - отличные подход, если вам нужно быстро приложение под 2+ платформы. Но надо быть готовым, что базовые знания для каждой платформы должны быть. Также, для сборки iOS нужна будет MacOS. И тут не только про flutter, часто в интернете натыкаюсь на вопросы про разные фреймворки из разряда "как заставить работать <фича> на <framework>".

Вот еще пара развернутых мыслей про кросс-платформ: https://tproger.ru/experts/native-or-crossplatform/
источник
2019 October 23
DroDev | Всё об Android разработке
#Airship (тот, который раньше назывался #UrbanAirship) - оказался крайне удобным инструментом когда нужно реализовать сложные сценарии доставки сообщений пользователю.

Можно посылать Push определенным сегментам, по событиям, таймингу и тд. Конечно все это можно сделать напрямую со своего сервера (по сути написать такой функционал руками), но я более чем уверен, что

а) Это не будет в итоге сильно дешевле
б) Маркетинг отделу будет не так удобно как могло бы быть

Airship позволяет доставлять либо Pushы, либо in-app сообщения, а также интегрировать Message center в приложение. Message center - своего рода inbox, в котором складываются пришедшие сообщения. Причем поддерживается RICH формат, который откроется в WebView. Т.е. дизайнер может рисовать любой лендинг, который будет показывать в приложении.

Так что, если будет стоять задача по-быстрому (но не бесплатно) реализовать комплексный подход для маркетинга внутри приложения - Airship хорошо справится с задачей. https://www.airship.com/
источник
2019 October 24
DroDev | Всё об Android разработке
Смена темы в #Android приложении может быть сделана через простую установку setTheme, но тогда нужно будет пересоздать #Activity.

Можно поменять UI прямо на лету, даже во время прокрутки #ScrollView.

Оба подхода имеют место быть. Важно понимать что они есть и как реализовать переключения тем разными способами. https://dimlix.com/switch-theme-android/
источник
2019 October 25
DroDev | Всё об Android разработке
Если даже один человек из команды "не тащит", то рано или поздно это отразиться на продукте и на вас лично.
источник
DroDev | Всё об Android разработке
Примеры кода под #Android подъехали!

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

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

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

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

Пссс, у меня к тебе отдельная просьба - поделись этим постом с теми, кто также фанатеет от Андроид разработки как и ты и оставь отзыв в Google play к данным примерам. Это будет подтверждением, что я всё делаю правильно и стимулом для написания новых обучающих примеров! https://dimlix.com/android-tutorials/
источник
2019 October 29
DroDev | Всё об Android разработке
Google проводит Developer challenge на тему машинного обучения 🤖

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

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

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

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

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

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

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

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

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

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