Everything you need in your app for 2019 от Adrian Devezin
Что будет трендами в Android разработки и надо использовать разработчикам, чтобы на любом собесе быть героем 😀 ?
Все тренды 2019 связаны с 3 векторами развития Android:
👉 телефоны становятся сильнее с большими вытянутыми экранами
👉 cледующий миллиард пользователей - это развивающиеся страны: Индия, страны Африки и Южной Америки, устройства на которых слабые
👉 приложения обрастают архитектурами, добавляются новые библиотеки, поддерживается множество версий Android и размеров экранов. Все это ведет к увеличению размеров APK
В статье вы найдете технологии, которые стоит применять:
👉 Android Architecture Components
👉 MVVM архитектура
👉 WorkManager
👉 Fastlane
👉 Layout для больших экранов, поддержка больших экранов, Chrome OS, складные телефоны
👉 ConstraintLayout
👉 Неблокирующий UI
👉 Material Design
👉 Поддержка темной темы
👉 Kotlin
👉 Kotlin Coroutines
👉 Перемещение управления вниз экрана
👉 App Bundle
👉 Dynamic Features
👉 Модуляризация приложений в Gradle
👉 Android Go версии приложений
Знаете еще тренды? Давайте обсуждать их в @android_broadcast_discussions
Что будет трендами в Android разработки и надо использовать разработчикам, чтобы на любом собесе быть героем 😀 ?
Все тренды 2019 связаны с 3 векторами развития Android:
👉 телефоны становятся сильнее с большими вытянутыми экранами
👉 cледующий миллиард пользователей - это развивающиеся страны: Индия, страны Африки и Южной Америки, устройства на которых слабые
👉 приложения обрастают архитектурами, добавляются новые библиотеки, поддерживается множество версий Android и размеров экранов. Все это ведет к увеличению размеров APK
В статье вы найдете технологии, которые стоит применять:
👉 Android Architecture Components
👉 MVVM архитектура
👉 WorkManager
👉 Fastlane
👉 Layout для больших экранов, поддержка больших экранов, Chrome OS, складные телефоны
👉 ConstraintLayout
👉 Неблокирующий UI
👉 Material Design
👉 Поддержка темной темы
👉 Kotlin
👉 Kotlin Coroutines
👉 Перемещение управления вниз экрана
👉 App Bundle
👉 Dynamic Features
👉 Модуляризация приложений в Gradle
👉 Android Go версии приложений
Знаете еще тренды? Давайте обсуждать их в @android_broadcast_discussions
Medium
Everything you need in your app for 2019
2018 was a big year for Android Developers. Google solidified more SDK components, further endorsed Kotlin, and gave us a lot of new tools…
#RecyclerView
Add extra depth to your list using parallax от Patrick Elmquist
NestedScroll - очень приятная и интересная вещь. Они помогают сделать UI очень интерактивным и оставляют лучшие впечатления от работы с приложением у пользователей. В статье вы найдете один рецепт как сделать параллакс эффект с двумя RecyclerView.
Add extra depth to your list using parallax от Patrick Elmquist
NestedScroll - очень приятная и интересная вещь. Они помогают сделать UI очень интерактивным и оставляют лучшие впечатления от работы с приложением у пользователей. В статье вы найдете один рецепт как сделать параллакс эффект с двумя RecyclerView.
Medium
Add extra depth to your list using parallax
Lists don’t always have to be linear and boring, in this post we’ll see how to add some extra depth to a horizontal list by adding a…
#Kotlin #Performance
Kotlin: For-loop vs ForEach от Elye
Kotlin добавил функция расширения для преобразования коллекций. Всегда ли они так эффективны? В статье вы найдете сравнение цикла for и forEach функции.
Результаты следующие:
👉 Для IntRange, LongRange и прочего - цикл for
👉 Для коллекций (list, set, map) - forEach функция
👉 Sequence - forEach функция
Kotlin: For-loop vs ForEach от Elye
Kotlin добавил функция расширения для преобразования коллекций. Всегда ли они так эффективны? В статье вы найдете сравнение цикла for и forEach функции.
Результаты следующие:
👉 Для IntRange, LongRange и прочего - цикл for
👉 Для коллекций (list, set, map) - forEach функция
👉 Sequence - forEach функция
Medium
Kotlin: For-loop vs ForEach
With Kotlin, we can write loop for(i in a..b){} and we could also do (a..b).forEach{}. Which should we use?
#BestPractices
Thoughts after two years as an Android Developer от Jakub Anioła
Советы разработчика после 2 лет создания приложение под Android:
👉 Следите за новостями в Android разработке
👉 Избегайте использования сторонних библиотек
👉 Делайте архитектуру для каждого приложения, независимо от его размера
👉 Тестируйте код
👉 Используйте CI и CD
👉 Используйте код ревью
👉 Kotlin поможет вам писать приложения быстрее и надежнее
👉 Не нужно всегда втягивать все самые трендовые технологии в проект
👉 Посещайте митапы сообществ и конференции, смотрите записи докладов
Thoughts after two years as an Android Developer от Jakub Anioła
Советы разработчика после 2 лет создания приложение под Android:
👉 Следите за новостями в Android разработке
👉 Избегайте использования сторонних библиотек
👉 Делайте архитектуру для каждого приложения, независимо от его размера
👉 Тестируйте код
👉 Используйте CI и CD
👉 Используйте код ревью
👉 Kotlin поможет вам писать приложения быстрее и надежнее
👉 Не нужно всегда втягивать все самые трендовые технологии в проект
👉 Посещайте митапы сообществ и конференции, смотрите записи докладов
Medium
Thoughts after two years as an Android Developer
Two years ago I have started my journey with Android programming. I was a bachelor’s degree student at the time, looking for the…
#GooglePay
8 Steps to Google Pay on Android от Joe Birch
Для тех кто планирует реализовать использование Google Pay в своем приложение будет полезно ознакомиться с руководством от Joe Birch
8 Steps to Google Pay on Android от Joe Birch
Для тех кто планирует реализовать использование Google Pay в своем приложение будет полезно ознакомиться с руководством от Joe Birch
Medium
8 Steps to Google Pay on Android
Within our Android Apps we can use the Google Pay API to plugin a convenient way for our users to checkout in our app, without the need…
#RecyclerView
Smooth cross RecyclingViews Swipe от Elye
Хотели сделать вложенный горизонтальный RecyclerView внутри вертикального RecyclerView как в Google Play? Вот вам руководство как правильно обрабатывать события жестов с помощью RecyclerView.OnItemTouchListener. За всеми подробностями реализации смотрите статью либо смотрите исходники на Github.
Smooth cross RecyclingViews Swipe от Elye
Хотели сделать вложенный горизонтальный RecyclerView внутри вертикального RecyclerView как в Google Play? Вот вам руководство как правильно обрабатывать события жестов с помощью RecyclerView.OnItemTouchListener. За всеми подробностями реализации смотрите статью либо смотрите исходники на Github.
Medium
Smooth cross RecyclingViews Swipe
This blog talks about how to scroll vertical Recyclerview and follow by Horizontal Recyclerview consecutively like in Google Playstore…
#Git #Github
New Year, New GitHub
Хорошие новости - GitHub пересмотрел свои планы и теперь приватные репозитории доступны в бесплатном плане. Меняются при Microsoft взгляды на сервис!
New Year, New GitHub
Хорошие новости - GitHub пересмотрел свои планы и теперь приватные репозитории доступны в бесплатном плане. Меняются при Microsoft взгляды на сервис!
The GitHub Blog
New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering
Today we’re announcing two major updates to make GitHub more accessible to developers.
#Kotlin #Contracts
Understanding Kotlin contracts от Marcin Moskala|KtAcademy
В Kotlin 1.3 появился новый экспериментальный функционал - Contracts. Он позволяет вам описать дополнительную информацию для компилятора о работе функции. Аналогичный функционал был уже на уровне аннотаций в Idea для Java. Мартин в статье рассказал о том, как работает этот механизм.
Understanding Kotlin contracts от Marcin Moskala|KtAcademy
В Kotlin 1.3 появился новый экспериментальный функционал - Contracts. Он позволяет вам описать дополнительную информацию для компилятора о работе функции. Аналогичный функционал был уже на уровне аннотаций в Idea для Java. Мартин в статье рассказал о том, как работает этот механизм.
Medium
Understanding Kotlin contracts
Since Kotlin 1.3 we can enjoy new, mysterious feature — Kotlin contracts. From the usage perspective, they look just like a piece of code…
#Library #Debug #Dagger
Developing and Debugging on Android with DevFun от Alex Waters
Как часто в вашем коде бывает код вида:
if(BuildConfig.DEBUG) // Сделать что-то
Избавляться от этого можно разными способами. Я использую возможность размещать код в отдельных Flavor и при помощи Dependency Injection подменяю функционал в зависимости от текущего билда. Решение неудобно в поддержке 😞.
В статье ребята делятся своим решение основанным на аннотациях, кодогенерации и рефлексии. Оно позволяет вам:
👉 Вызывать функции из приложения в любое время из любого места
👉 Вызывать функции с параметрами, введенными во время работы приложения
👉 Предоставляет удобный интерфейс для дебага
👉 Подмена зависимостей Dagger 2
👉 Возможность добавление своих собственных модулей
👉 И МНОГО ВСЕГО ПРОЧЕГО
Самое классное, что ни одна строчка кода не попадет в код продакшен сборки вашего приложения!
Для тех кто любит сразу смотреть сырцы GitHub DevFun - Developer (Fun)ctions👉
Developing and Debugging on Android with DevFun от Alex Waters
Как часто в вашем коде бывает код вида:
if(BuildConfig.DEBUG) // Сделать что-то
Избавляться от этого можно разными способами. Я использую возможность размещать код в отдельных Flavor и при помощи Dependency Injection подменяю функционал в зависимости от текущего билда. Решение неудобно в поддержке 😞.
В статье ребята делятся своим решение основанным на аннотациях, кодогенерации и рефлексии. Оно позволяет вам:
👉 Вызывать функции из приложения в любое время из любого места
👉 Вызывать функции с параметрами, введенными во время работы приложения
👉 Предоставляет удобный интерфейс для дебага
👉 Подмена зависимостей Dagger 2
👉 Возможность добавление своих собственных модулей
👉 И МНОГО ВСЕГО ПРОЧЕГО
Самое классное, что ни одна строчка кода не попадет в код продакшен сборки вашего приложения!
Для тех кто любит сразу смотреть сырцы GitHub DevFun - Developer (Fun)ctions👉
Medium
Developing and Debugging on Android with DevFun
DevFun is an annotation based library aimed at Android developers to facilitate the separation, isolation, and invocation of developer and…
#GooglePlay #Subnoscriptions
Google will be turning on the Restore feature for all developers
Google Play имеет возможность восстановления подписок до их окончания - Restore feature. На текущий момент она может быть отключена разработчиком, но с 15 апреля она будет включена для всех по умолчанию.
Google рекомендует всем проверить работу вашего приложения с включенной функцией. В статье вы найдете все рекомендации.
Google will be turning on the Restore feature for all developers
Google Play имеет возможность восстановления подписок до их окончания - Restore feature. На текущий момент она может быть отключена разработчиком, но с 15 апреля она будет включена для всех по умолчанию.
Google рекомендует всем проверить работу вашего приложения с включенной функцией. В статье вы найдете все рекомендации.
#AOP #Kotlin
Aspect-oriented programming (AOP) vs functions от Roman Elizarov
Сравнение аспектно-ориентированного подхода и функционального для решения задач от папы корутин в. Kotlin 😀
Aspect-oriented programming (AOP) vs functions от Roman Elizarov
Сравнение аспектно-ориентированного подхода и функционального для решения задач от папы корутин в. Kotlin 😀
Medium
AOP vs functions
Aspect-oriented programming (AOP) is quite popular, but can we replace it with functional abstractions?
#Library #SQL #Kotlin #Multiplatform
SQLDelight 1.0 - Generates typesafe Kotlin APIs from SQL
Вышла первая стабильная версия библиотеки SQLDelight, которая позволяет вам генерировать API из ваших SQL запросов на Kotlin Multiplatform.
Механизм работы с библиотекой простой:
1️⃣ Подключаем Gradle плагин SQLDelight
2️⃣ Описываем ваши SQL запросы в .sq файлах
3️⃣ Подключаете драйвер для вашей платформы
4️⃣ Используем БД через сгенерированный код
Почему стоит использовать SQLBright:
👉 Чистый Kotlin!
👉 Проверка SQL запросов, схемы и миграций
👉 Поддержка подстветка SQL синтаксиса, рефакторинга и автодополнения в Idea/Android Studio
👉 Поддержка Android, iOS и JVM
👉 Поддержка RxJava
👉 Поддержка Kotlin Multiplatform
👉 Поддержка Android Paging библиотеки
SQLDelight 1.0 - Generates typesafe Kotlin APIs from SQL
Вышла первая стабильная версия библиотеки SQLDelight, которая позволяет вам генерировать API из ваших SQL запросов на Kotlin Multiplatform.
Механизм работы с библиотекой простой:
1️⃣ Подключаем Gradle плагин SQLDelight
2️⃣ Описываем ваши SQL запросы в .sq файлах
3️⃣ Подключаете драйвер для вашей платформы
4️⃣ Используем БД через сгенерированный код
Почему стоит использовать SQLBright:
👉 Чистый Kotlin!
👉 Проверка SQL запросов, схемы и миграций
👉 Поддержка подстветка SQL синтаксиса, рефакторинга и автодополнения в Idea/Android Studio
👉 Поддержка Android, iOS и JVM
👉 Поддержка RxJava
👉 Поддержка Kotlin Multiplatform
👉 Поддержка Android Paging библиотеки
Medium
Announcing SQLDelight 1.0
SQLDelight started as a project 4 years ago on the ContentValues and SQLiteOpenHelper APIs from Android with the goal of making writing…
#Android #Fragment #Dialog #Library
Dynamic Dialogs - Improved dialogs and dialog fragments for Android
Удобная библиотека, которая позволяет вам упростить создание диалогов с помощью шаблона Builder. Теперь вам не нужно создавать подклассы для всех диалогов (вы же все диалоги делайте на основе Fragment). Работает как с обычными диалогами, так и DialogFragment.
Dynamic Dialogs - Improved dialogs and dialog fragments for Android
Удобная библиотека, которая позволяет вам упростить создание диалогов с помощью шаблона Builder. Теперь вам не нужно создавать подклассы для всех диалогов (вы же все диалоги делайте на основе Fragment). Работает как с обычными диалогами, так и DialogFragment.
GitHub
GitHub - pranavpandey/dynamic-dialogs: Display improved dialogs and dialog fragments on Android.
Display improved dialogs and dialog fragments on Android. - pranavpandey/dynamic-dialogs
#Kotlin
Five things you might not know in Kotlin от Piotr Mądry
Все ли вы знаете о Kotlin? В статье рассказывается о:
1️⃣ Pair - создание через to
2️⃣ data класс - destructuring declaration
3️⃣ Spread оператор для vararg аргументов
4️⃣ Sealed классы - Enum на стеройдах
5️⃣ В делегатах скрыта большая сила
6️⃣ Reified типы в inline функциях!
Оставляй голос под постом и узнаем кто крут
Five things you might not know in Kotlin от Piotr Mądry
Все ли вы знаете о Kotlin? В статье рассказывается о:
1️⃣ Pair - создание через to
2️⃣ data класс - destructuring declaration
3️⃣ Spread оператор для vararg аргументов
4️⃣ Sealed классы - Enum на стеройдах
5️⃣ В делегатах скрыта большая сила
6️⃣ Reified типы в inline функциях!
Оставляй голос под постом и узнаем кто крут
Medium
Five things you might not know in Kotlin
The first article from Android Development series. Presents not obvious things from Advanced Kotlin
#DataBinding #BestPractices
Data Binding — Lessons Learnt от Chris Banes|Google
Библиотека Data Binding предлагает удобный способ для задания данных в UI, но не забывайте о правиле Человека-Паука. В связи с этим рекомендую познакомиться с советами по использованию библиотеки:
👉 Используйте стандартные binding когда это возможно
👉 Кастомные binding должны стараться избегать вызовов перерисовки UI
👉 Будьте внимательны с тем что вы объявляете как переменные
Data Binding — Lessons Learnt от Chris Banes|Google
Библиотека Data Binding предлагает удобный способ для задания данных в UI, но не забывайте о правиле Человека-Паука. В связи с этим рекомендую познакомиться с советами по использованию библиотеки:
👉 Используйте стандартные binding когда это возможно
👉 Кастомные binding должны стараться избегать вызовов перерисовки UI
👉 Будьте внимательны с тем что вы объявляете как переменные
Medium
Data Binding — Lessons Learnt
The Data Binding Library (referred to as the ‘DB library’ for the rest of this post) offers a flexible and powerful way to bind data to…
Используете ли вы Android Data Binding библиотеку у себя в проектах?
Final Results
30%
Да
70%
Нет
0%
Что это?
#Distribution #GooglePlay
10 tips to optimize app engagement от Jeni Miles
Ты самый крутой разработчик и можешь сделать крутую архитектуру, написать кучу Unit и Instrumentation тестов настроить все CI. Вы нажимаете "Опубликовать" в Google Play и не видите сумасшедшего использования вашего приложения, то вы становитесь 😞. Но не стоит рано опускать руки - готовьтесь к новой, и скорее всего самой сложной задаче для вашего проекта - его развитию и поддержке. В статье вы найдете советы как развивать ваше приложение после релиза.
10 tips to optimize app engagement от Jeni Miles
Ты самый крутой разработчик и можешь сделать крутую архитектуру, написать кучу Unit и Instrumentation тестов настроить все CI. Вы нажимаете "Опубликовать" в Google Play и не видите сумасшедшего использования вашего приложения, то вы становитесь 😞. Но не стоит рано опускать руки - готовьтесь к новой, и скорее всего самой сложной задаче для вашего проекта - его развитию и поддержке. В статье вы найдете советы как развивать ваше приложение после релиза.
Medium
10 tips to optimize app engagement
Discover insights and hear how other developers have optimized engagement to successfully retain users in the long-term.
#Dagger #Modularization #DynamicFeature
Dependency injection in a multi module project от Bew Weiss
Еще одна история о том как происходила модуляризация приложения на примере Plaid.
Dependency injection in a multi module project от Bew Weiss
Еще одна история о том как происходила модуляризация приложения на примере Plaid.
Medium
Dependency injection in a multi module project
How we introduced a DI framework into Plaid and what we learned
#Square #Payments #SDK
Square запустила SDK для платежей в приложение под Android и iOS
Ребята из Square подарили нам множество замечательных Open Source библиотек, а теперь сделали собственное SDK чтобы вы могли проводить платежи прямо внутри вашего приложения. Единственное что вам надо помнить - политику по оплате Google Play.
Square запустила SDK для платежей в приложение под Android и iOS
Ребята из Square подарили нам множество замечательных Open Source библиотек, а теперь сделали собственное SDK чтобы вы могли проводить платежи прямо внутри вашего приложения. Единственное что вам надо помнить - политику по оплате Google Play.
#UI #CustomView
How to maximize Android’s UI reusability — 5 common mistakes от Carlos Palacin Rubio
Какими свойствами должна обладать Custom View, чтобы быть удобной в использование? Основные принципы:
👉 Читабельным
👉 Тестируемым
👉 Переиспользуемым
👉 Поддерживать предпросмотр в Layout Editor
👉 Не выходить за рамки времени отведенного для отрисовки кадра
В статье вы найдете рекомендации по тому как добиваться этих результатов. Также рекомендую прочитать "Optimizing the View"
How to maximize Android’s UI reusability — 5 common mistakes от Carlos Palacin Rubio
Какими свойствами должна обладать Custom View, чтобы быть удобной в использование? Основные принципы:
👉 Читабельным
👉 Тестируемым
👉 Переиспользуемым
👉 Поддерживать предпросмотр в Layout Editor
👉 Не выходить за рамки времени отведенного для отрисовки кадра
В статье вы найдете рекомендации по тому как добиваться этих результатов. Также рекомендую прочитать "Optimizing the View"
Medium
How to maximize Android’s UI reusability — 5 common mistakes
During the last few months, I had the opportunity to revisit some of our existing UI at Groupon. As part of this process, we started by…