Forwarded from Mobile People Talks (Александр Денисов)
Асинхронность - знаешь что об этом ты? Part I
Первоначальной идеей этого выпуска было обсуждение асиннхронности, подходов и решений со всех, так сказать, четырех сторон. Сначала обсудить нативные темы, а потом обсудить кроссплатформенные решения. И начиналось все вроде бы хорошо, обсудили многопоточность, классические проблемы, языки, которые живут без этого, но потом Данис с Кириллом так увлеклись беседой о сходствах и различиях асинхронных подходов в Android и iOS, что на Flutter и React Native просто тупо не хватило времени!
🤪 Так что придется делать два выпуска по цене одного! Асинхронность Flutter vs ReactNative ждите в следующем!
🎧 SoundCloud
🎧 Apple Podcasts
Первоначальной идеей этого выпуска было обсуждение асиннхронности, подходов и решений со всех, так сказать, четырех сторон. Сначала обсудить нативные темы, а потом обсудить кроссплатформенные решения. И начиналось все вроде бы хорошо, обсудили многопоточность, классические проблемы, языки, которые живут без этого, но потом Данис с Кириллом так увлеклись беседой о сходствах и различиях асинхронных подходов в Android и iOS, что на Flutter и React Native просто тупо не хватило времени!
🤪 Так что придется делать два выпуска по цене одного! Асинхронность Flutter vs ReactNative ждите в следующем!
🎧 SoundCloud
🎧 Apple Podcasts
SoundCloud
знаешь что об этом ты?
Первоначальной идеей выпуска было обсуждение асиннхронности, подходов и решений со всех, так сказать, четырех сторон. Сначала обсудить нативные темы, а потом обсудить кроссплатформенные решения. И нач
#AndroidStudio #Productivity #Template
Supercharging your app development speed with custom file templates
Boilerplate код - это неприятное для любого программиста часть кода. Оно тратит время и добавляет лишний код, затрудняя читабельность кода. Все это влияет на стоимость конечной разработки, что не нравится бизнесу.
Самый популярный boilerplate код, который можно встретить это архитектура:
Хорошая новость в том, что Android Studio уже содержит необходимый функционал. В статье вы найдете подробное руководство как это реализовать.
Supercharging your app development speed with custom file templates
Boilerplate код - это неприятное для любого программиста часть кода. Оно тратит время и добавляет лишний код, затрудняя читабельность кода. Все это влияет на стоимость конечной разработки, что не нравится бизнесу.
Самый популярный boilerplate код, который можно встретить это архитектура:
MVVM, MVP, Clean Architecture и пр. Дело в том что этот код имеет одинаковое строение и много схожего API. Так почему бы не избавиться от этого и сделать генерацию каркаса архитектуры фичи с помощью IDE?Хорошая новость в том, что Android Studio уже содержит необходимый функционал. В статье вы найдете подробное руководство как это реализовать.
Medium
Supercharging your app development speed with custom file templates
While working on the android app at Wishfie, we often had to write a lot of boilerplate code for creation of each of our new Activity and…
#Gradle
Android Environments build Gradle plugin
С приходом билд системы на основе Gradle в Android появилась возможность использования BuildConfig - специального класса, в котором содержится ряд стандартных констант (версия, buildVariant и пр.) так и имеется возможность добавлять свои собственные из Gradle скриптов.
Проблема в том, что описывать множество таких констант для разных
Android Environments build Gradle plugin
С приходом билд системы на основе Gradle в Android появилась возможность использования BuildConfig - специального класса, в котором содержится ряд стандартных констант (версия, buildVariant и пр.) так и имеется возможность добавлять свои собственные из Gradle скриптов.
Проблема в том, что описывать множество таких констант для разных
buildType и productFlavor не является удобным. Для решение этой проблемы я нашел удобный Gradle плагин, который позволяет описывать константы в property файлах, расположенных в соответствующей buildType и productFlavor папке в исходниках.GitHub
GitHub - IlyaPavlovskii/Android-Environments: Android environments builder
Android environments builder. Contribute to IlyaPavlovskii/Android-Environments development by creating an account on GitHub.
Используете ли вы Robolectric?
Final Results
5%
Да, много тестов на нем
19%
Да, немного тестов на нем
60%
Нет
16%
Что это?
#AndroidAcademy #Moscow
Android Academy в Москве: Advanced Course
Android Academy возвращается в Москву с новым курсом Advanced 🎉. В рамках него вы сможете познакомиться с различными темами из Android разработки на более глубоком уровне.
Курс будет полезен тем кто уже успел окончить курс Fundamentals, так и практикующим инженерам, которые хотят улучшить свои знания в Android разработке.
Вас ждет 6 лекций по 1.5 часа каждые 2-3 недели:
1️⃣ Advanced Multithreading
2️⃣ Optimizations
3️⃣ Advanced & Secure Networking
4️⃣ Advanced Architecture
5️⃣ DI: How to and why
6️⃣ Android Internals
Когда: 25 июля 19:00
Где: офис "Авито", БЦ «Белые Сады», ул. Лесная, 7
Участие бесплатное по предварительной регистрации
Android Academy в Москве: Advanced Course
Android Academy возвращается в Москву с новым курсом Advanced 🎉. В рамках него вы сможете познакомиться с различными темами из Android разработки на более глубоком уровне.
Курс будет полезен тем кто уже успел окончить курс Fundamentals, так и практикующим инженерам, которые хотят улучшить свои знания в Android разработке.
Вас ждет 6 лекций по 1.5 часа каждые 2-3 недели:
1️⃣ Advanced Multithreading
2️⃣ Optimizations
3️⃣ Advanced & Secure Networking
4️⃣ Advanced Architecture
5️⃣ DI: How to and why
6️⃣ Android Internals
Когда: 25 июля 19:00
Где: офис "Авито", БЦ «Белые Сады», ул. Лесная, 7
Участие бесплатное по предварительной регистрации
Хабр
Android Academy в Москве: Advanced Course
Всем привет! Лето — это отличное время года. Подошли к концу Google I/O, Mobius и AppsConf, а многие студенты уже закрыли или вот-вот уже закончат сдавать сессии...
#Yandex
Yandex Droid Mission
Разработчики Яндекса запустила онлайн-квест с задачами, которые часто приходится решать Android‑специалистам.
Конкурс проходит с 25 июня по 25 июля. Участвовать в онлайн-квесте могут граждане России и других стран СНГ, достигшие возраста 18 лет.
Yandex Droid Mission
Разработчики Яндекса запустила онлайн-квест с задачами, которые часто приходится решать Android‑специалистам.
Конкурс проходит с 25 июня по 25 июля. Участвовать в онлайн-квесте могут граждане России и других стран СНГ, достигшие возраста 18 лет.
#Security #Storage #Keystore
Storing data securely on Android. Part 1 - Introduction
Современные смартфоны хранят множество нашей личной информации, имеют доступ к рабочим документам и почтам, личной жизни, которую не один пользователь не хотел раскрывать кому угодно. В современном мире разработчику приложений нужно понимать как обеспечивать должный уровень безопасности данных.
Каким образом в Android можно защитить данные от злоумышленников? Стандартные подходы это:
👉 Повышение сложности доступа к данным: хранение их во внутренней памяти устройства, шифрование и пр.
👉Использовать Android keystore system для хранения ключей
Storing data securely on Android. Part 1 - Introduction
Современные смартфоны хранят множество нашей личной информации, имеют доступ к рабочим документам и почтам, личной жизни, которую не один пользователь не хотел раскрывать кому угодно. В современном мире разработчику приложений нужно понимать как обеспечивать должный уровень безопасности данных.
Каким образом в Android можно защитить данные от злоумышленников? Стандартные подходы это:
👉 Повышение сложности доступа к данным: хранение их во внутренней памяти устройства, шифрование и пр.
👉Использовать Android keystore system для хранения ключей
#Security #Storage #Keystore
Storing data securely on Android. Part 2 - KeyStore Symmetric
Как использовать Android keystore system с симметричным ключом (доступно на Android API Level 23+)
Storing data securely on Android. Part 2 - KeyStore Symmetric
Как использовать Android keystore system с симметричным ключом (доступно на Android API Level 23+)
#GarbageCollector #MemoryLeak
Everything you need to know about Memory Leaks in Android
Android имеет хорошую систему очистку памяти, которая улучшается с выходом каждой новой версией ОС. Но допустить утечку памяти все также остается возможным. В статье довольно простым языком и наглядными иллюстрациями показывается:
👉 Что такое Stack и Heap
👉 Как очищается память Garbage Collector-ом
👉 Как возникают утечки памяти и как не допускать их
👉 Последствия утечек памяти
👉 Поиск утечек памяти
Everything you need to know about Memory Leaks in Android
Android имеет хорошую систему очистку памяти, которая улучшается с выходом каждой новой версией ОС. Но допустить утечку памяти все также остается возможным. В статье довольно простым языком и наглядными иллюстрациями показывается:
👉 Что такое Stack и Heap
👉 Как очищается память Garbage Collector-ом
👉 Как возникают утечки памяти и как не допускать их
👉 Последствия утечек памяти
👉 Поиск утечек памяти
Medium
Everything you need to know about Memory Leaks in android.
One of the core benefits of Java that they are garbage collected language. Essentially, we can create objects and the garbage collector…
#AndroidQ
Capturing Audio in Android Q
В Android 10 Q появилась возможность захватывать аудио других приложений с помощью AudioPlaybackCapture API.
Например, с помощью этого работает функция Live Caption, которая позволяет отображать субтитры для аудио любого приложения. Также можно стримить игры с устройства со звуком.
Чтобы осуществлять захват аудио, пользователь должен предоставить разрешение, а также вы можете запретить захватить аудио вашего приложения полностью или частично.
Capturing Audio in Android Q
В Android 10 Q появилась возможность захватывать аудио других приложений с помощью AudioPlaybackCapture API.
Например, с помощью этого работает функция Live Caption, которая позволяет отображать субтитры для аудио любого приложения. Также можно стримить игры с устройства со звуком.
Чтобы осуществлять захват аудио, пользователь должен предоставить разрешение, а также вы можете запретить захватить аудио вашего приложения полностью или частично.
Android Developers Blog
Capturing Audio in Android Q
Posted by Don Turner , Developer Advocate for Android Media In Android Q there's a new API which allows applications to capture the ...
#RxJava #Networking
RxJava 2: Parallel Multiple Network Calls Made Easy
Как вы выполняете 2 и более
RxJava 2: Parallel Multiple Network Calls Made Easy
Как вы выполняете 2 и более
Observable из RxJava параллельно? Все немного более хитро чем использовать операторы merge и zip. Больше подробностей в статье или смотрите код в следующем посте 👇👇👇Medium
RxJava 2: Parallel Multiple Network Calls Made Easy
When doing multiple network calls in RxJava, do we know if they are run in parallel? How could we make them run in parallel?
#WorkManager #AndroidX
Workout your tasks with WorkManager — Basics
Продолжение серии статей о WorkManager. В этой части вы можете узнать о:
👉 Основные компоненты
👉 Что происходит под капотом
👉 Типы запросов:
👉 Типы ограничений, которые можно применить для запросов: состояние сети, уровень батареи и пр.
👉 Передача данных в запрос
👉 Добавление запроса на обработку
Часть 1: Intro
Workout your tasks with WorkManager — Basics
Продолжение серии статей о WorkManager. В этой части вы можете узнать о:
👉 Основные компоненты
WorkManager👉 Что происходит под капотом
WorkManager👉 Типы запросов:
OneTimeWorkRequest и PeriodicWorkRequest👉 Типы ограничений, которые можно применить для запросов: состояние сети, уровень батареи и пр.
👉 Передача данных в запрос
👉 Добавление запроса на обработку
Часть 1: Intro
Medium
Workout your tasks with WorkManager — Main Components
Examples and details about the main components of the WorkManager library: Worker, WorkRequest and WorkManager
#BuildConfig #Gradle
Android Version Code Tricks
В
Хитрость заключается в том, что вызов этого метода влияет только на значение
Android Version Code Tricks
В
Android Gradle Build системе у вас есть возможность переопределить versionCode для любого из BuildVarian , с помощью метода setVersionCodeOverride. Хитрость заключается в том, что вызов этого метода влияет только на значение
versionCode в AndroidManifest в конечном APK, но не меняет его в BuildConfig файле. Баг или фича? Больше подробностей смотрите в статье.Medium
Android Version Code Tricks
Dive deep into Android Version code
Forwarded from Mobile People Talks (Александр Денисов)
Асинхронность - знаешь что об этом ты? Vol.2
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз. Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative. Кирилл с Данисом не дремлют и задают каверзные вопросы, благодаря которым какие-то вещи приходится копать прямо в процессе записи подкаста!
🎧 SoundCloud
🎧 Apple Podcasts
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз. Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative. Кирилл с Данисом не дремлют и задают каверзные вопросы, благодаря которым какие-то вещи приходится копать прямо в процессе записи подкаста!
🎧 SoundCloud
🎧 Apple Podcasts
SoundCloud
знаешь что об этом ты? Vol. 2
А вот и вторая часть дебатов за асинхронность. Здесь ведущие продолжают разговор с того места, где остановились в прошлый раз.
Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative.
Александр рассказывает про ситуацию с Flutter, а Владимир с ReactNative.
#Kotlin #Collections
The Mystery of Mutable Kotlin Collections
По сравнению с Java в Kotlin присутствует одна примечательная особенность API - разделение на изменяемые (mutable) и неизменяемые (immutable) коллекции. Например, MutableList<E> и List<E>, MutableSet<E> и Set<E>.
Реализации этих интерфейсов в языке не существует - Kotlin не стал идти по пути создания собственных коллекций, а сделал только обертки над стандартными коллекциями из платформенного API.
В статье можно найти больше об особенностях работы коллекций в Kotlin:
👉 Реальность модификации
👉 Какие коллекции создаются при вызове listOf() и mutableListOf()
👉 Во что транслируются в байткоде использования
The Mystery of Mutable Kotlin Collections
По сравнению с Java в Kotlin присутствует одна примечательная особенность API - разделение на изменяемые (mutable) и неизменяемые (immutable) коллекции. Например, MutableList<E> и List<E>, MutableSet<E> и Set<E>.
Реализации этих интерфейсов в языке не существует - Kotlin не стал идти по пути создания собственных коллекций, а сделал только обертки над стандартными коллекциями из платформенного API.
В статье можно найти больше об особенностях работы коллекций в Kotlin:
👉 Реальность модификации
List<E>👉 Какие коллекции создаются при вызове listOf() и mutableListOf()
👉 Во что транслируются в байткоде использования
MutableList<E> и List<E>Medium
The Mystery of Mutable Kotlin Collections
An investigation inside how Kotlin let you use Java collections as if they were implementing Kotlin interfaces
Forwarded from ❗️NEWS Android Dev Подкаст (Denis Nek (Slow responses))
https://androiddev.apptractor.ru/android-dev-podcast-97/
Выпуск #97. Репортаж с Droidcon Berlin
На этой неделе, в Берлине, прошла крупная конференция по Android разработке - Droidcon! 3 дня, 1200 участников, 5 треков, более 100 докладов! Наши внештатные корреспонденты - Михаил Емельянов и Александр Крылов из компании ЦФТ побывали там и записали свои впечатления и полученную информацию.
- Droidcon в этом году и прошлом, различия;
- Какие были компании, стенды, общение со спикерами, неожиданные встречи;
- Обзоры докладов, сессий по каждому дню. На что стоит взглянуть, чего ожидать;
- Общее впечатление, пожелания;
https://www.de.droidcon.com/schedule - расписание конференции
Ведущие: Михаил Емельянов, Александр Крылов
Выпуск #97. Репортаж с Droidcon Berlin
На этой неделе, в Берлине, прошла крупная конференция по Android разработке - Droidcon! 3 дня, 1200 участников, 5 треков, более 100 докладов! Наши внештатные корреспонденты - Михаил Емельянов и Александр Крылов из компании ЦФТ побывали там и записали свои впечатления и полученную информацию.
- Droidcon в этом году и прошлом, различия;
- Какие были компании, стенды, общение со спикерами, неожиданные встречи;
- Обзоры докладов, сессий по каждому дню. На что стоит взглянуть, чего ожидать;
- Общее впечатление, пожелания;
https://www.de.droidcon.com/schedule - расписание конференции
Ведущие: Михаил Емельянов, Александр Крылов
#News
Подвел итоги опроса. Участие в нем приняло 82 человека из 480 т.е. каждый шестой. Результаты следующие:
👉 Большая часть аудитории (96%) Android разработчики
👉 Расположение по странам: чуть больше половины это Беларусь, оставшиеся - половина в России и Украине
👉 Самые популярные используемые языки - Kotlin (96%) и Java (75%)
👉 Чуть больше половины опрошенных не пишут тесты 😞
👉 Полезность контента на канале - 89%
👉 80% нравятся опросы
👉 Значительная часть аудитории заинтересована в аудиозаписях с моим мнением
Взял себе на заметку что стоит улучшить:
👉 Следить за грамотностью
Буду искать инструмент, которые позволит мне проверять посты более тщательно. Рад вашим советам
👉 Нет доступа к платным статьям на Medium
Предлагаю несколько вариантов:
💲оплатите подписку
📖используйте "Instant View" в Telegram
🕶️открывайте статьи в режиме "Инкогнито"
👉 Слишком большое количество информации и читатели не успевают все посмотреть
Ранее я ввел правила по ограничению количества постов (не более 4 в день и воскресенье выходной). Буду стараться также и в будущем не спамить
Подвел итоги опроса. Участие в нем приняло 82 человека из 480 т.е. каждый шестой. Результаты следующие:
👉 Большая часть аудитории (96%) Android разработчики
👉 Расположение по странам: чуть больше половины это Беларусь, оставшиеся - половина в России и Украине
👉 Самые популярные используемые языки - Kotlin (96%) и Java (75%)
👉 Чуть больше половины опрошенных не пишут тесты 😞
👉 Полезность контента на канале - 89%
👉 80% нравятся опросы
👉 Значительная часть аудитории заинтересована в аудиозаписях с моим мнением
Взял себе на заметку что стоит улучшить:
👉 Следить за грамотностью
Буду искать инструмент, которые позволит мне проверять посты более тщательно. Рад вашим советам
👉 Нет доступа к платным статьям на Medium
Предлагаю несколько вариантов:
💲оплатите подписку
📖используйте "Instant View" в Telegram
🕶️открывайте статьи в режиме "Инкогнито"
👉 Слишком большое количество информации и читатели не успевают все посмотреть
Ранее я ввел правила по ограничению количества постов (не более 4 в день и воскресенье выходной). Буду стараться также и в будущем не спамить
#BestPractices
The technical choices I make to build great Android apps
Важным началом разработки любого приложения это есть принятия подходов, которые будут использоваться при создание вашего единорога! Разработчики приложения "A-Z" делятся своим опытом:
1️⃣ UI
2️⃣ Качество кода
3️⃣ Архитектура приложения
The technical choices I make to build great Android apps
Важным началом разработки любого приложения это есть принятия подходов, которые будут использоваться при создание вашего единорога! Разработчики приложения "A-Z" делятся своим опытом:
1️⃣ UI
2️⃣ Качество кода
3️⃣ Архитектура приложения
#Course
raywenderlich.com
Хороший ресурс с огромным количеством онлайн курсов по различным тематикам по Android:
👉 MVVM on Android
👉 Android KTX
👉 MotionLayout
👉 Обширный курс по анимациями
и много много других курсов.
Ресурс будет более интересен начинающим Android разработчикам и тех кто хочет быстро получить вводные по новым библиотекам.
Материалы доступны онлайн и оффлайн по подписке 20$/месяц
raywenderlich.com
Хороший ресурс с огромным количеством онлайн курсов по различным тематикам по Android:
👉 MVVM on Android
👉 Android KTX
👉 MotionLayout
👉 Обширный курс по анимациями
и много много других курсов.
Ресурс будет более интересен начинающим Android разработчикам и тех кто хочет быстро получить вводные по новым библиотекам.
Материалы доступны онлайн и оффлайн по подписке 20$/месяц
Kodeco
Videos
Learn Android development in Kotlin