"Фигак-фигак и в продакшн" - не наш девиз!
Перед тем как зарелизить #Android приложение его нужно не только протестировать, но и убедиться, что нет грубых проблем с производительностью.
Рассказываем как найти самые распространенные ошибки, влияющие на #performance.
http://bit.ly/2p7chsC
Перед тем как зарелизить #Android приложение его нужно не только протестировать, но и убедиться, что нет грубых проблем с производительностью.
Рассказываем как найти самые распространенные ошибки, влияющие на #performance.
http://bit.ly/2p7chsC
Блог Android разработчика
Производительность android приложений
Одно и то же Андроид приложения можно создать множеством разных способов. В зависимости от используемого подхода, с виду одинаковые программы могут потреблять разное количество ресурсов смартфона. Другими словами у них будет разная производительность. Приложения…
Тема #ListView, #ScrollView и #RecyclerView - баян.
Но все же на практике иногда сталкиваюсь с непониманием разницы между этими элементами.
О том что и почему надо использовать рассказал в статье. http://bit.ly/2omSFjY
Но все же на практике иногда сталкиваюсь с непониманием разницы между этими элементами.
О том что и почему надо использовать рассказал в статье. http://bit.ly/2omSFjY
Блог Android разработчика
Listview и RecyclerView – бесконечные списки на android
Показать длинный или условно бесконечный постраничный список - частая задача для разработчика. В android для этого раньше использовался listView, а теперь более продвинутая версия recyclerView. ScrollView - прокрутка экрана Когда View не умещаются в рамках…
This media is not supported in your browser
VIEW IN TELEGRAM
Вот почему поддержка проекта не менее важна чем его запуск.
Отличная статья про #codestyle и про его важность для #программиста.
Есть, на мой взгляд несколько спорных моментов, но в целом статья супер. http://bit.ly/2MhWkIf
Есть, на мой взгляд несколько спорных моментов, но в целом статья супер. http://bit.ly/2MhWkIf
Хабр
Code style как стандарт разработки
Давайте сразу, это не про скобочки. Здесь речь пойдет о том, как работает наш мозг и почему code style помогает обеспечивать линейное развитие проекта, значительно ускоряет адаптацию новых сотрудников...
Есть несколько причин, почему я не люблю и не использую onClick в xml разметках #layout. Вот главные:
1) Неявный вызов метод из "верстки" тяжело воспринимать при чтении кода
2) При #CodeReview проследить логику становится очень сложно
3) #AndroidStudio не всегда корректно видит использования методов и кнопок
Используете ли вы определение onClick прямо в верстке?
1) Неявный вызов метод из "верстки" тяжело воспринимать при чтении кода
2) При #CodeReview проследить логику становится очень сложно
3) #AndroidStudio не всегда корректно видит использования методов и кнопок
Используете ли вы определение onClick прямо в верстке?
Работа удаленно подразумевает постоянный онлайн. Если вы путешествуете и при этом работаете, кажется что сейчас #интернет есть повсеместно. Не забывайте, что #программист и "обычный" человек потребляет #трафик по-разному! Держите пару советов про #связь и #интернет в дороге. http://bit.ly/2pn4kQm
Блог Android разработчика
Интернет и связь при удаленной работе
Удаленная работа обязывает нас всегда быть на связи. Особенно если вы программист, потому что даже IDE требует подключения к интернету. Что уж тут говорить про доступ к документации и stackoverflow? Можно, конечно, использовать offline mode, но долго так…
Время от времени крупные компании проводят митапы, в том числе по #Android разработке. Такие бывают у Avito (http://bit.ly/2ogUXS9), Касперского, Яндекса и т.д.
Так вот, недавно в Авито один такой прошел, самый сок можно найти на хабре, приятного просмотра! http://bit.ly/2AZk92g
Так вот, недавно в Авито один такой прошел, самый сок можно найти на хабре, приятного просмотра! http://bit.ly/2AZk92g
#Безопасность - важная составляющая любого #Android приложения.
Обеспечить санкционированный доступ к программе критически важно для некоторых приложений.
О том, что нужно знать при разработке экрана блокировки с помощью #пинкода читайте в статье. http://bit.ly/31OZtWp
Обеспечить санкционированный доступ к программе критически важно для некоторых приложений.
О том, что нужно знать при разработке экрана блокировки с помощью #пинкода читайте в статье. http://bit.ly/31OZtWp
Блог Android разработчика
Экран блокировки пин кодом для вашего приложения
Защита от несанкционированного доступа к смартфону - обязанность владельца. Наша задача, как разработчика приложения, дать возможность пользователю ограничить доступ к программе. Один из способов - добавить экран ввода пин кода (pinlock screen). Поговорим…
This media is not supported in your browser
VIEW IN TELEGRAM
Всегда грамонтно рассчитывайте свои силы и не бойтесь сказать "Нет" если проект вам не по скилу.
4 строчки кода и несколько косяков.
Какие #ошибки вы видите в данном сниппете?
Какие #ошибки вы видите в данном сниппете?
Просили разобрать работу с #CustomView в #Android.
Одной статьей тут не отделаться, но надо с чего-то начать.
Держите разбор как скомпоновать custom #viewgroup из стандартных элементов. #Инкапсуляция, #SOLID и всё такое на уровне #UI. https://dimlix.com/customview-begginer/
Одной статьей тут не отделаться, но надо с чего-то начать.
Держите разбор как скомпоновать custom #viewgroup из стандартных элементов. #Инкапсуляция, #SOLID и всё такое на уровне #UI. https://dimlix.com/customview-begginer/
Блог Android разработчика
Android Custom View как комбинация стандартных элементов
Custom View это удобный и правильный способ инкапсуляции части UI. Он позволяет вынести интерфейс в отдельный блок и переиспользовать его. Создавать их проще чем кажется на первый взгляд. Можно...
#Аналитика в мобильных приложениях для разработчика - страшный сон архитектуры вашего проекта. Всё потому, что мы, как разработчики, уважаем #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 уже если собираетесь поливать усиленно траффиком.
Статья на тему как встраиваю аналитику обычно я - в черновиках и в работе, а тем временем ребята из 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 уже если собираетесь поливать усиленно траффиком.
Хабр
Как внедрить аналитику и не сломать приложение?
Привет! Меня зовут Соснин Илья. Я работаю в Lamoda Android разработчиком. Крашу кнопочки, прогаю списочки и, к сожалению, пишу аналитику… Lamoda — это Data Driv...
Пара слов про #Git.
Почему, как и зачем его нужно использовать. https://dimlix.com/work-with-git-branches/
Почему, как и зачем его нужно использовать. https://dimlix.com/work-with-git-branches/
Блог Android разработчика
Работа с ветками в git репозитории
Репозиторий git это первое, что должен создать программист при старте проекта. И не важно сколько человек у вас в команде. Поговорим о git flow, ветках и зачем вообще нужен этот репозиторий. Для...
This media is not supported in your browser
VIEW IN TELEGRAM
Рефакторинг и расплата с "техническим долгом" должны быть аккуратными, так, чтобы не наломать еще больше дров.
Есть предложение. Задумал ряд мини статей-заметок в формате FAQ "как сделать <тут-что-то-интересное> в #Android". Например "как организовать мониторинг сетевого подключения".
Внутри только сок, вкратце что надо. Примеры кода и ссылочка на github где уже реализовано описанное + ссылка на google play где можно пощупать реализованное.
К тебе, дорогой слушатель, ровно 2 вопроса.
1) интересен ли такой формат (опрос ниже 🔽)?
2) есть ли определенные темы, которые хотелось бы увидеть (пишем в комментах, обсуждениях)?
Внутри только сок, вкратце что надо. Примеры кода и ссылочка на github где уже реализовано описанное + ссылка на google play где можно пощупать реализованное.
К тебе, дорогой слушатель, ровно 2 вопроса.
1) интересен ли такой формат (опрос ниже 🔽)?
2) есть ли определенные темы, которые хотелось бы увидеть (пишем в комментах, обсуждениях)?
Нужны ли заметки в формате FAQ с примерами и реализациями?
Anonymous Poll
84%
Да, огонь!
13%
Хз, хз, может и пригодиться
3%
Нет, в топку!
0%
Свой вариант (в комменты)
Выложили видео с DroidCon NY.
А между тем, пока вы их смотрите, примеры кода, про которые говорил в прошлый раз практически готовы. Остается дописать "объяснительные записки" в виде небольших FAQ статей и первая версия этой движухи будет доступна. Скорее всего это произойдет уже на следующей неделе.
А пока продолжаем следить за новостями и статьями, впереди много интересного! https://www.droidcon.com/videos?path=NewYork%20City
А между тем, пока вы их смотрите, примеры кода, про которые говорил в прошлый раз практически готовы. Остается дописать "объяснительные записки" в виде небольших FAQ статей и первая версия этой движухи будет доступна. Скорее всего это произойдет уже на следующей неделе.
А пока продолжаем следить за новостями и статьями, впереди много интересного! https://www.droidcon.com/videos?path=NewYork%20City
И снова немного про кросс-платформенную разработку.
В свободное время попробовал написать небольшое приложение на #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/
В свободное время попробовал написать небольшое приложение на #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/
Tproger
Натив или кроссплатформа — что выбрать начинающему мобильному разработчику? Отвечают эксперты
Раз можно быстро писать сразу на все платформы, то зачем нативная разработка? Разбираемся в плюсах и минусах обоих подходов с экспертами.
#Airship (тот, который раньше назывался #UrbanAirship) - оказался крайне удобным инструментом когда нужно реализовать сложные сценарии доставки сообщений пользователю.
Можно посылать Push определенным сегментам, по событиям, таймингу и тд. Конечно все это можно сделать напрямую со своего сервера (по сути написать такой функционал руками), но я более чем уверен, что
а) Это не будет в итоге сильно дешевле
б) Маркетинг отделу будет не так удобно как могло бы быть
Airship позволяет доставлять либо Pushы, либо in-app сообщения, а также интегрировать Message center в приложение. Message center - своего рода inbox, в котором складываются пришедшие сообщения. Причем поддерживается RICH формат, который откроется в WebView. Т.е. дизайнер может рисовать любой лендинг, который будет показывать в приложении.
Так что, если будет стоять задача по-быстрому (но не бесплатно) реализовать комплексный подход для маркетинга внутри приложения - Airship хорошо справится с задачей. https://www.airship.com/
Можно посылать Push определенным сегментам, по событиям, таймингу и тд. Конечно все это можно сделать напрямую со своего сервера (по сути написать такой функционал руками), но я более чем уверен, что
а) Это не будет в итоге сильно дешевле
б) Маркетинг отделу будет не так удобно как могло бы быть
Airship позволяет доставлять либо Pushы, либо in-app сообщения, а также интегрировать Message center в приложение. Message center - своего рода inbox, в котором складываются пришедшие сообщения. Причем поддерживается RICH формат, который откроется в WebView. Т.е. дизайнер может рисовать любой лендинг, который будет показывать в приложении.
Так что, если будет стоять задача по-быстрому (но не бесплатно) реализовать комплексный подход для маркетинга внутри приложения - Airship хорошо справится с задачей. https://www.airship.com/
Airship
Homepage
Airship is the only mobile-first customer experience platform that delivers measurable results through AI-powered, unified cross-channel experiences.