#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
#Meetup #Moscow
FunCorp Summer Droid Meetup
Компания FunCorp организовывает большой летний Android митап в рамках которого я буду рассказывать о новинке из Kotlin Coroutines - Flow.
В программе вас ждет:
👉 «Сбор и анализ неординарных данных Android-приложения», Дмитрий Васильев@FunCorp
Рассказ о сборе различных технический показателей приложения, зачем это делать и как их анализировать.
👉 «Coroutines Flow», Кирилл Розов@Epam
Kotlin Coroutines Flow - новинка из корутин, которая предоставляет холодные сhannel и открывает новые возможности. В рамках доклада вас ждет разбор Flow.
👉 «Сборка Android приложения. Задачка со звёздочкой», Антон Потапов@FunCorp
Не Gradle едина сборка Android приложений! В докладе будут рассмотрены альтернативные системы сборки (Buck, Bazel, Jeka) и сравнение их с Gradle.
👉 «Кодогенерация без kapt», Михаил Розумянский@Joom
Процессинг аннотаций - это бич скорости сборки приложений. Можно ли избавиться от kapt и улучшить свою жизнь?
👉 «Model Driven-конфигурация приложения на Kotlin DSL», Андрей Говоровский@Mail.ru
Рассказ об опыте использования Kotlin DSL для описания модели конфигурации приложения и генерация кода на основе этих моделей
Когда: 12.00, 3 августа 2019, Суббота
Где: Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05»
На YouTube канале FunCorp будет вестись прямая трансляция мероприятия, а также там вы можете найти записи предыдущих митапов.
P.S. Для всех тех кто хочет гарантированно попасть на мероприятие - пишите мне в личку. У меня есть 2 билета.
FunCorp Summer Droid Meetup
Компания FunCorp организовывает большой летний Android митап в рамках которого я буду рассказывать о новинке из Kotlin Coroutines - Flow.
В программе вас ждет:
👉 «Сбор и анализ неординарных данных Android-приложения», Дмитрий Васильев@FunCorp
Рассказ о сборе различных технический показателей приложения, зачем это делать и как их анализировать.
👉 «Coroutines Flow», Кирилл Розов@Epam
Kotlin Coroutines Flow - новинка из корутин, которая предоставляет холодные сhannel и открывает новые возможности. В рамках доклада вас ждет разбор Flow.
👉 «Сборка Android приложения. Задачка со звёздочкой», Антон Потапов@FunCorp
Не Gradle едина сборка Android приложений! В докладе будут рассмотрены альтернативные системы сборки (Buck, Bazel, Jeka) и сравнение их с Gradle.
👉 «Кодогенерация без kapt», Михаил Розумянский@Joom
Процессинг аннотаций - это бич скорости сборки приложений. Можно ли избавиться от kapt и улучшить свою жизнь?
👉 «Model Driven-конфигурация приложения на Kotlin DSL», Андрей Говоровский@Mail.ru
Рассказ об опыте использования Kotlin DSL для описания модели конфигурации приложения и генерация кода на основе этих моделей
Когда: 12.00, 3 августа 2019, Суббота
Где: Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05»
На YouTube канале FunCorp будет вестись прямая трансляция мероприятия, а также там вы можете найти записи предыдущих митапов.
P.S. Для всех тех кто хочет гарантированно попасть на мероприятие - пишите мне в личку. У меня есть 2 билета.
Хабр
Summer Droid Meetup
Привет! Приглашаем android-разработчиков на наш Summer Droid Meetup. 3-е августа, Сад Эрмитаж, Каретный ряд, д 3, стр 6, «Веранда 32.05». Начало в 12:00. Программа митапа «Сбор и анализ...
#Canvas #Drawing
Getting started with Android Canvas drawing
Глубокое погружение в Canvas API, предназначенное для отрисовки на Android. С помощью таких знаний вы можете ускорить ваше приложение и достичь 60 кадров/сек. Из статьи вы узнаете о:
👉 Немного о Skia и какую роль она играет в Android
👉 Система координат в Canvas
👉 Как можно получить доступ к Canvas в Android
👉 Кастомизация отрисовки при помощи Paint
Getting started with Android Canvas drawing
Глубокое погружение в Canvas API, предназначенное для отрисовки на Android. С помощью таких знаний вы можете ускорить ваше приложение и достичь 60 кадров/сек. Из статьи вы узнаете о:
👉 Немного о Skia и какую роль она играет в Android
👉 Система координат в Canvas
👉 Как можно получить доступ к Canvas в Android
👉 Кастомизация отрисовки при помощи Paint
Rebecca Franks - @riggaroo
Getting Started with Android Canvas Drawing 🖼 – Rebecca Franks - @riggaroo
Learn all about Android Canvas Drawing in this introductory blog post. Learn about the coordinate system, Paint classes and basic drawing commands.
#KotlinAndroidExtensions
Analyzing the Internals of Kotlin's Android Synthetic Import
Как часто в Android вам приходится использовать findViewById(int) ? Наверное, не так часто, потому что есть Butter Knife, Android Data Binding (а в Android Studio 3.6 упрощенный вариант - View Binding) . У Kotlin на жто свой взгляд - Kotlin Android Extensions.
Какая магия скрывается за этим решением? Что за
Analyzing the Internals of Kotlin's Android Synthetic Import
Как часто в Android вам приходится использовать findViewById(int) ? Наверное, не так часто, потому что есть Butter Knife, Android Data Binding (а в Android Studio 3.6 упрощенный вариант - View Binding) . У Kotlin на жто свой взгляд - Kotlin Android Extensions.
Какая магия скрывается за этим решением? Что за
synthetic
импорт появляется для обеспечения работы этой функциональности? Каким образом не происходит утечек памяти? Как очищается кэш? Ответы на эти вопросы вы найдете в статьеBrunoaybar
Analyzing the Internals of Kotlin's Android Synthetic Import (Part 1)
By enabling Kotlin Android Extensions, we can use synthetic imports, which allows us quickly use components declared on our XML files. We'll take a look at the source code of the extension to understand how it works.
#MVVM #Architecture
Our approach to modularization and MVVM
Рассказ об подходе к архитектуре приложения на основе MVVM и модуляризации приложения
Our approach to modularization and MVVM
Рассказ об подходе к архитектуре приложения на основе MVVM и модуляризации приложения
Medium
Our approach to modularization and MVVM
In the past, maintainability of Android applications was quite a headache because activities, fragments and views were tightly coupled…
#Kotlin #Refactoring
From Java Programming Language to Kotlin — the idiomatic way
Kotlin набрал огромную популярность в современной Android разработке и уже успел стать основным языком для нее. Но что делать если ваш проект написан на Java и вы хотите мигрировать на Kotlin?
Самое простое решение - встроенный конвертер Java кода в Kotlin Plugin for IDEA. Он сделает за вас основную работу, но не сделает код идиоматическим для Kotlin 😞. Поэтому необходима вторая фаза, в которой надо поправить получившийся код. Google создали codelab, который покажет как пройти этот процесс.
From Java Programming Language to Kotlin — the idiomatic way
Kotlin набрал огромную популярность в современной Android разработке и уже успел стать основным языком для нее. Но что делать если ваш проект написан на Java и вы хотите мигрировать на Kotlin?
Самое простое решение - встроенный конвертер Java кода в Kotlin Plugin for IDEA. Он сделает за вас основную работу, но не сделает код идиоматическим для Kotlin 😞. Поэтому необходима вторая фаза, в которой надо поправить получившийся код. Google создали codelab, который покажет как пройти этот процесс.
Medium
From Java Programming Language to Kotlin — the idiomatic way
Learn how to get started converting Java Programming Language code to Kotlin, making it more idiomatic and avoid common pitfalls, by…
#Kotlin #Refactoring #Codela
Google Codelab: Refactoring to Kotlin
Содержание:
👉 Handling nullability
👉 Implementing singletons
👉 Data classes
👉 Handling strings
👉 Elvis operator
👉 Destructuring
👉 Properties and backing properties
👉 Default arguments and named parameters
👉 Working with collections
👉 Extension functions
👉 Top-level functions and parameters
👉 let, apply, with, and run keywords
Google Codelab: Refactoring to Kotlin
Содержание:
👉 Handling nullability
👉 Implementing singletons
👉 Data classes
👉 Handling strings
👉 Elvis operator
👉 Destructuring
👉 Properties and backing properties
👉 Default arguments and named parameters
👉 Working with collections
👉 Extension functions
👉 Top-level functions and parameters
👉 let, apply, with, and run keywords
#Modularization #Architecture
Inverting the Dependency — Independent Features in Android Applications
Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям:
1️⃣ Feature может не добавляться в
2️⃣ Feature может быть загружена во время работы приложения
3️⃣ Может быть несколько
Как это реализовывали и что из этого получилось вы можете узнать из статьи
Inverting the Dependency — Independent Features in Android Applications
Подход к разбиению приложения на модули по принципу "Feature-спутник". Архитектура строилась чтобы удовлетворять требованиям:
1️⃣ Feature может не добавляться в
buildVariant
2️⃣ Feature может быть загружена во время работы приложения
3️⃣ Может быть несколько
feature
, реализующих один и тот же функционалКак это реализовывали и что из этого получилось вы можете узнать из статьи
Medium
Inverting the Dependency — Independent Features in Android Applications
Working in a cross-functional team on an Android application imposes certain requirements on the code-base. The less structured the…
#Java #Test
Truth 1.0: Fluent Assertions for Java and Android Tests
Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest:
👉 Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation
👉 Сообщения об ошибки более читабельны
Truth поддерживает Java, Kotlin, Android, AndroidX Test, GWT.
Truth 1.0: Fluent Assertions for Java and Android Tests
Google выпустила assertation библиотеку для тестов. В чем ее преимущества по сравнению с уже существующими решениями AssertJ и Hamcrest:
👉 Более простое API: вызовы идут цепочкой и IDE может легко вам предлагать подходящие assertation
👉 Сообщения об ошибки более читабельны
Truth поддерживает Java, Kotlin, Android, AndroidX Test, GWT.
Google Open Source Blog
Truth 1.0: Fluent Assertions for Java and Android Tests
#Design #UI #MaterialDesign
Material Design Guideline June Update
Произошло обновление гайдов по Material Design. Из важного - описаны пикеры дат
Material Design Guideline June Update
Произошло обновление гайдов по Material Design. Из важного - описаны пикеры дат
Material Design
Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.
#AndroidQ
Android Q Beta 5 Update
Вышла новая бета Android Q. В рамках нее производилась стабилизация работы системы и API, т.к. финальное SDK мы получили в предыдущей Beta версии.
В Beta 5 вы сможете найти обновление в системе навигации. Google активно работает со своими партнерами, чтобы стандартизировать это поведение системы между всеми производителями.
Уже запустил установку системы телефоны себе на устройство. Через пару дней дам фидбек
Android Q Beta 5 Update
Вышла новая бета Android Q. В рамках нее производилась стабилизация работы системы и API, т.к. финальное SDK мы получили в предыдущей Beta версии.
В Beta 5 вы сможете найти обновление в системе навигации. Google активно работает со своими партнерами, чтобы стандартизировать это поведение системы между всеми производителями.
Уже запустил установку системы телефоны себе на устройство. Через пару дней дам фидбек
Android Developers Blog
Android Q Beta 5 Update
Android Q Beta 5 launches today! Today we're rolling out Beta 5, bringing Android Q Beta very close to the system behaviors you'll see in the final release. Developer APIs were already finalized in the previous update. So, now is the time to test your apps…
#Room #SQLite
Вышла первая альфа Room 2.2.0
Показали первую альфу следующей версии Room. В ней нас ждут:
👉 Начальные данные для заполнения БД из asset-ов или файла
👉 Возможность задания значений по умолчанию для колонок
👉 Поддержка
👉 Поддержка инкрементного процессинга аннотаций. Пока для этого надо добавить
👉 Теперь для работы с одной таблице смогут использовать несколько DAO. Новое свойство
👉 Исправление багов
Очень жду следующих альфа версий, чтобы услышать о поддержке Flow из Kotlin Coroutines.
Вышла первая альфа Room 2.2.0
Показали первую альфу следующей версии Room. В ней нас ждут:
👉 Начальные данные для заполнения БД из asset-ов или файла
👉 Возможность задания значений по умолчанию для колонок
@ColumnInfo(defaultValue=...)
👉 Поддержка
m:n
отношения между таблицами👉 Поддержка инкрементного процессинга аннотаций. Пока для этого надо добавить
room.incremental = true
в опции процессора. В стабильном релизе будет включено по умолчанию.👉 Теперь для работы с одной таблице смогут использовать несколько DAO. Новое свойство
targetEntity
в аннотация @Insert
, @Update
, @Delete
, которое позволяет указать таблицу для которой выполняются действия метода DAO. 👉 Исправление багов
Очень жду следующих альфа версий, чтобы услышать о поддержке Flow из Kotlin Coroutines.
Android Developers
Room | Jetpack | Android Developers
#EditorConfig #IDEA
Managing Code Style on a Directory Level with EditorConfig
В IntelliJ IDEA 2019.2 добавляется расширенная поддержка EditorConfig. В рамках неё появляется поддержка специфичных параметров для IntelliJ платформы и языков программирования.
EditorConfig - это решение, которое позволяет вам описывать единый стиль кода для проектов. Особенность этого подхода в том, что формат описания не привязан к какому либо инструменту для работы с кодом.
Managing Code Style on a Directory Level with EditorConfig
В IntelliJ IDEA 2019.2 добавляется расширенная поддержка EditorConfig. В рамках неё появляется поддержка специфичных параметров для IntelliJ платформы и языков программирования.
EditorConfig - это решение, которое позволяет вам описывать единый стиль кода для проектов. Особенность этого подхода в том, что формат описания не привязан к какому либо инструменту для работы с кодом.
The JetBrains Blog
Managing Code Style on a Directory Level with EditorConfig | The IntelliJ IDEA Blog
As we announced a short while ago, in the upcoming version 2019.2, IntelliJ IDEA and other IntelliJ-based IDEs are extending EditorConfig support, thus allowing you to manage all code style settings f
#Dagger
Delect - The Gradle Plugin for Dagger Reflect
Каково это избавиться от процессинга аннотаций Dagger 2 и ускорить сборку? Ребята из Soundcloud взяли идею Jake Wharton и заменили весь сгенерированный код Dagger 2 на решение на основе рефлексии. Это снизило производительность во время работы приложения, но зато дает более быструю сборку. Такое положительно скажется на билдах для разработчиков.
Библиотека находится в версии 0.1.0
Delect - The Gradle Plugin for Dagger Reflect
Каково это избавиться от процессинга аннотаций Dagger 2 и ускорить сборку? Ребята из Soundcloud взяли идею Jake Wharton и заменили весь сгенерированный код Dagger 2 на решение на основе рефлексии. Это снизило производительность во время работы приложения, но зато дает более быструю сборку. Такое положительно скажется на билдах для разработчиков.
Библиотека находится в версии 0.1.0
GitHub
GitHub - soundcloud/delect: The Gradle Plugin for Dagger Reflect.
The Gradle Plugin for Dagger Reflect. Contribute to soundcloud/delect development by creating an account on GitHub.
Android Broadcast
#AndroidQ Android Q Beta 5 Update Вышла новая бета Android Q. В рамках нее производилась стабилизация работы системы и API, т.к. финальное SDK мы получили в предыдущей Beta версии. В Beta 5 вы сможете найти обновление в системе навигации. Google активно…
#AndroidQ
Пошли уже вторые сутки как я хожу с Android Q Beta 5 на Pixel 3 и могу сказать, что я не нашел критичных багов. То что видел:
👉 В некоторых приложениях с темной темой цвет текста тоже черный и его не видно
👉 Проблемы при шаринге ссылок. Почему-то в списке доступных приложений для шаринга не показываются те, что были на Android P
👉 Очень долго включался телефон. Держал кнопку включения секунд 10 до того как увидел что-то на экране.
Пошли уже вторые сутки как я хожу с Android Q Beta 5 на Pixel 3 и могу сказать, что я не нашел критичных багов. То что видел:
👉 В некоторых приложениях с темной темой цвет текста тоже черный и его не видно
👉 Проблемы при шаринге ссылок. Почему-то в списке доступных приложений для шаринга не показываются те, что были на Android P
👉 Очень долго включался телефон. Держал кнопку включения секунд 10 до того как увидел что-то на экране.
#HowItWorks
Android Internals 101: How Android OS Starts You Application
Более глубокое знание внутреннего устройства Android ОС даст вам знания об оптимизациях, которые вы можете использовать в разработке своих приложений. В статье вы найдете информацию о том что происходит за включением вашего телефона:
👉 Цикл загрузки Android
👉 Что такое Bootloader?
👉 Роль ядра ОС
👉 Процесс "Init"
👉 Zygote
👉 Виртуальная машина
👉 System Server
👉 За что отвечает Activity Manager?
Android Internals 101: How Android OS Starts You Application
Более глубокое знание внутреннего устройства Android ОС даст вам знания об оптимизациях, которые вы можете использовать в разработке своих приложений. В статье вы найдете информацию о том что происходит за включением вашего телефона:
👉 Цикл загрузки Android
👉 Что такое Bootloader?
👉 Роль ядра ОС
👉 Процесс "Init"
👉 Zygote
👉 Виртуальная машина
👉 System Server
👉 За что отвечает Activity Manager?
Medium
Android Internals 101: How Android OS Starts You Application
This post is targeted for Software Engineers wanting to dive deep into Android’s Internals and its workings. We’ll take a look at what…
#Dagger
Dagger Tutorial
Dagger - это очень мощное решение для Dependency Injection. Однако изучить его из-за этого сложно + на официальном сайте не найти руководства по тому как использовать его на Kotlin, а особенностей много.
На сайте Dagger сделали простое руководство по тому как начать работу с библиотекой. В нем освещаются все базовые возможности библиотеки и немного шире. Жду руководства на Kotlin.
Dagger Tutorial
Dagger - это очень мощное решение для Dependency Injection. Однако изучить его из-за этого сложно + на официальном сайте не найти руководства по тому как использовать его на Kotlin, а особенностей много.
На сайте Dagger сделали простое руководство по тому как начать работу с библиотекой. В нем освещаются все базовые возможности библиотеки и немного шире. Жду руководства на Kotlin.
dagger.dev
Dagger Tutorial
Dagger is a fully static, compile-time dependency injection framework for both Java and Android.
#AndroidQ #Text
What’s new for text in Android Q
Android Q принес ряд оптимизаций для текста:
👉 Перенос слов (hyphenation) отключен по умолчанию в Android Q и AppCompat 1.1.0. На то чтобы рассчитать переносы тратилось около 70% времени из общего времени подготовки текста к отображению
👉 Использования множества шрифтов в одном TextView
👉 Улучшение text spans API: поддержка шрифтов, тени, fontFeatureSettings and fontVariationSettings
👉 Доступ к системным шрифтам: вы можете получить список системных шрифтов
👉 Обновление шрифтов: новый шрифт Myanmar и эмоджи
What’s new for text in Android Q
Android Q принес ряд оптимизаций для текста:
👉 Перенос слов (hyphenation) отключен по умолчанию в Android Q и AppCompat 1.1.0. На то чтобы рассчитать переносы тратилось около 70% времени из общего времени подготовки текста к отображению
👉 Использования множества шрифтов в одном TextView
👉 Улучшение text spans API: поддержка шрифтов, тени, fontFeatureSettings and fontVariationSettings
👉 Доступ к системным шрифтам: вы можете получить список системных шрифтов
👉 Обновление шрифтов: новый шрифт Myanmar и эмоджи
Android Developers Blog
What’s new for text in Android Q
Displaying text is an important task in most apps, so in Android Q we're continuing to introduce new features to support your needs and improve performance. We disabled hyphenation by default, enabled creating a typeface using multiple fonts or font families…