#Gradle #Kotlin #DSL
🔥🔥🔥 Вышел Gradle 5.0 🔥🔥🔥
https://youtu.be/hN52UTWGh-c
Изменения которые понравятся всем:
👉🏻 Koltin DSL 1.0. Для всех любителей Kotlin, мы еще ближе на пути к тому чтобы делать проекты полностью на Kotlin.
👉🏻 Dependency version alignment - теперь разные зависимости, которые принадлежат к одной группе могут иметь одну и туже версию.
👉🏻 Интерактивная инициализация проекта в терминали. Теперь можно создать какой DSL использовать (правильный ответ на K 😁)
👉🏻 Task timeouts - теперь можно задавать время после, которого ваш таск будет прерван
👉🏻 Повторный запрос на получение зависимости, в случае когда не получилось подключиться к репозиторию
👉🏻 Улучшение производительности. Как без этого. Gradle нас с каждый релизом радует ускорением сборки, но помните: "Чтобы скорость была высокой вам надо писать скрипты и плагины, используя последнее API"
👉🏻 Новое API для разработчиков Gradle плагинов. Теперь ваши плагины будут еще эффективнее!
👉🏻 Promoted features. Каждый мажорный релиз часть функционала из incubting APIпереводится в стабильный и с обратной совместимостью. Что попало: параллельное выполнение тасков, continuous build,
composite build, различные плагины и много других
👉🏻 Новый релиз - меньше багов. Их закрыли аж 166!
Обо всем подробнее можете почитать в Release Notes
🔥🔥🔥 Вышел Gradle 5.0 🔥🔥🔥
https://youtu.be/hN52UTWGh-c
Изменения которые понравятся всем:
👉🏻 Koltin DSL 1.0. Для всех любителей Kotlin, мы еще ближе на пути к тому чтобы делать проекты полностью на Kotlin.
👉🏻 Dependency version alignment - теперь разные зависимости, которые принадлежат к одной группе могут иметь одну и туже версию.
👉🏻 Интерактивная инициализация проекта в терминали. Теперь можно создать какой DSL использовать (правильный ответ на K 😁)
👉🏻 Task timeouts - теперь можно задавать время после, которого ваш таск будет прерван
👉🏻 Повторный запрос на получение зависимости, в случае когда не получилось подключиться к репозиторию
👉🏻 Улучшение производительности. Как без этого. Gradle нас с каждый релизом радует ускорением сборки, но помните: "Чтобы скорость была высокой вам надо писать скрипты и плагины, используя последнее API"
👉🏻 Новое API для разработчиков Gradle плагинов. Теперь ваши плагины будут еще эффективнее!
👉🏻 Promoted features. Каждый мажорный релиз часть функционала из incubting APIпереводится в стабильный и с обратной совместимостью. Что попало: параллельное выполнение тасков, continuous build,
composite build, различные плагины и много других
👉🏻 Новый релиз - меньше багов. Их закрыли аж 166!
Обо всем подробнее можете почитать в Release Notes
YouTube
Gradle 5.0
Gradle 5.0 Release Notes: https://docs.gradle.org/5.0/release-notes.html
🚀 Kotlin DSL 1.0
🔗 Dependency version alignment
⏰ Task timeouts
⚡️ Lower memory requirements
🚀 Kotlin DSL 1.0
🔗 Dependency version alignment
⏰ Task timeouts
⚡️ Lower memory requirements
#Kotlin #Challenge #KtAcademy
https://blog.kotlin-academy.com/the-advent-of-kotlin-2018-week-1-229e442a143
Кто здесь любит Kotlin и посоревноваться? Кто хочет стать популярным и прославиться с помощью Kt.Academy от Martcin Moskala? Принимаете участие в соревнование по решению задач на Kotlin! Первое уж опубликовано, новое будет каждое неделю. Пишите на Kotlin и доберитесь до вершины славы Kotlin ⭐️
https://blog.kotlin-academy.com/the-advent-of-kotlin-2018-week-1-229e442a143
Кто здесь любит Kotlin и посоревноваться? Кто хочет стать популярным и прославиться с помощью Kt.Academy от Martcin Moskala? Принимаете участие в соревнование по решению задач на Kotlin! Первое уж опубликовано, новое будет каждое неделю. Пишите на Kotlin и доберитесь до вершины славы Kotlin ⭐️
#Facebook #Library #Images
https://libspectrum.io/
Facebook делает очень много полезного для мира Android и iOS разработки и вот теперь новый проект Spectrum - кроссплатформенная библиотека (написана на C/C++) для декодирования изображений:
Какие преимущества:
👉🏻 На выходе вы получаете высококачествыные картинки маленького размера
👉🏻 Простая и лекгая
👉🏻 Кроссплатформенная
👉🏻 Расширяемая
👉🏻 Поддержка JPEG, PNG, WebP
Выглядет впечатляюще, вопрос насколько будет разниться со встроенным API в Android SDK: BitmapFactory и ImageDecoder?
https://libspectrum.io/
Facebook делает очень много полезного для мира Android и iOS разработки и вот теперь новый проект Spectrum - кроссплатформенная библиотека (написана на C/C++) для декодирования изображений:
Какие преимущества:
👉🏻 На выходе вы получаете высококачествыные картинки маленького размера
👉🏻 Простая и лекгая
👉🏻 Кроссплатформенная
👉🏻 Расширяемая
👉🏻 Поддержка JPEG, PNG, WebP
Выглядет впечатляюще, вопрос насколько будет разниться со встроенным API в Android SDK: BitmapFactory и ImageDecoder?
#Kotlin #DSL #Library
https://github.com/juanchosaravia/autodsl/
Я ❤️ Kotlin. Kotlin DSL смог упростить множество задач и сделать описание данных более явным. Но писать код, который позволяет сделать DSL - боль 😔. И вот кто-то задумался и сделал библиотеку, котоаря на основе модели данных позволяет сгенерировать DSL. Подробности по ссылке выше!
Статья от автора библиотеки раскрывает больше о том как автор пришел в созданию библиотеки и что разрабтвается сейчас
https://proandroiddev.com/auto-generate-kotlin-dsl-f63342434154
https://github.com/juanchosaravia/autodsl/
Я ❤️ Kotlin. Kotlin DSL смог упростить множество задач и сделать описание данных более явным. Но писать код, который позволяет сделать DSL - боль 😔. И вот кто-то задумался и сделал библиотеку, котоаря на основе модели данных позволяет сгенерировать DSL. Подробности по ссылке выше!
Статья от автора библиотеки раскрывает больше о том как автор пришел в созданию библиотеки и что разрабтвается сейчас
https://proandroiddev.com/auto-generate-kotlin-dsl-f63342434154
GitHub
GitHub - juanchosaravia/autodsl: Auto-generate Kotlin DSL
Auto-generate Kotlin DSL. Contribute to juanchosaravia/autodsl development by creating an account on GitHub.
#VectorDrawable #Images
https://medium.com/androiddevelopers/understanding-androids-vector-image-format-vectordrawable-ab09e41d5c68
Векторная графика - прекрасная вещь. Она и место сэкономит и качество изображений на любых дисплеях сделает высоким. Nick Butcher@Google начал серию статей о векторной графики (планируется всего 5) в Android. Из первой статьи вы узнаете:
👉🏻 Почему стоит использовать векторную графику
👉🏻 Насколько крутые штуки можно делать с VectorDrawable в Android
👉🏻 Как происходит путь от vector.xml до изображения
👉🏻 Когда стоит использовать векторную графику, а когда старый добрый растр будет эффективнее
👉🏻 Почему на Android не стали использовать SVG
👉🏻 Возможности VectorDrawable
9 минут и вы узнаете много полезного о VectorDrawable
https://medium.com/androiddevelopers/understanding-androids-vector-image-format-vectordrawable-ab09e41d5c68
Векторная графика - прекрасная вещь. Она и место сэкономит и качество изображений на любых дисплеях сделает высоким. Nick Butcher@Google начал серию статей о векторной графики (планируется всего 5) в Android. Из первой статьи вы узнаете:
👉🏻 Почему стоит использовать векторную графику
👉🏻 Насколько крутые штуки можно делать с VectorDrawable в Android
👉🏻 Как происходит путь от vector.xml до изображения
👉🏻 Когда стоит использовать векторную графику, а когда старый добрый растр будет эффективнее
👉🏻 Почему на Android не стали использовать SVG
👉🏻 Возможности VectorDrawable
9 минут и вы узнаете много полезного о VectorDrawable
Medium
Understanding Android’s vector image format: VectorDrawable
Android devices come in all sizes, shapes and screen densities. That’s why I’m a huge fan of using resolution independent, vector assets…
#IDEA
Structural Search in IntelliJ IDEA
IDEA/Android Studio - очень крутая IDE для разработки. Она имеет множество средств для рефакторинга, одним из которых является Structural Search, котоаря позволяет задавать поиск по структуре кода (например поле класса или метод). Одна печаль - Kotlin не поддерживается 😔
Structural Search in IntelliJ IDEA
IDEA/Android Studio - очень крутая IDE для разработки. Она имеет множество средств для рефакторинга, одним из которых является Structural Search, котоаря позволяет задавать поиск по структуре кода (например поле класса или метод). Одна печаль - Kotlin не поддерживается 😔
YouTube
Structural Search in IntelliJ IDEA 2018.3
IntelliJ IDEA 2018.3 delivers an updated and streamlined Structural Search & Replace dialog. Now autocompletion works in the predefined templates in the search field. You can view the search history in the drop-down menu under the search icon. Scope configuration…
#Android #Java #D8
"Android's Java 9, 10, 11, and 12 Support" - Jake Wharton
Печально признавать, но Android всегда оставал в поддержке Java от всего сообщества большого брата. Уже релизнулась Java 11, а мы все наслаждается синтаксическим сахаром от Java 8. С этим все смирились, но что будет если попробовать с помощью D8 обеспечить поддержку синтаксиса Java 9+ на Android?
В своей статье Jake продолжил раскрывать особенности работы Java на Android. По ссылке вы найдете информацию о том на какой стадии находится работа поддержки Java 9, которая уже ведется в AOSP, какие функции из Java 9+ можно завести на Android и надеемся что это скоро будет.
"Android's Java 9, 10, 11, and 12 Support" - Jake Wharton
Печально признавать, но Android всегда оставал в поддержке Java от всего сообщества большого брата. Уже релизнулась Java 11, а мы все наслаждается синтаксическим сахаром от Java 8. С этим все смирились, но что будет если попробовать с помощью D8 обеспечить поддержку синтаксиса Java 9+ на Android?
В своей статье Jake продолжил раскрывать особенности работы Java на Android. По ссылке вы найдете информацию о том на какой стадии находится работа поддержки Java 9, которая уже ведется в AOSP, какие функции из Java 9+ можно завести на Android и надеемся что это скоро будет.
#ConstraintLayout #Performance
"Constraint Layout performance" Maciej Kozłowski
Многие задаются вопрос производительности ConstraintLayout. Maciej задался вопрос и решил сделать тесты.
Могу сказать только одно - не стоит его использовать как замену для простых случаев, что и подтвердили тесты. ConstraintLayout эффективен для сложных иерархий, когда старыми Layout из SDK сделать в 1 уровень трудно. При замене LinearLayout на ConstraintLayout у вас будет производительность хуже.
"Constraint Layout performance" Maciej Kozłowski
Многие задаются вопрос производительности ConstraintLayout. Maciej задался вопрос и решил сделать тесты.
Могу сказать только одно - не стоит его использовать как замену для простых случаев, что и подтвердили тесты. ConstraintLayout эффективен для сложных иерархий, когда старыми Layout из SDK сделать в 1 уровень трудно. При замене LinearLayout на ConstraintLayout у вас будет производительность хуже.
Medium
Constraint Layout performance
My last article was about developers’ mistakes related with communication between Activities and Fragment. Today I’d like to keep…
#Kotlin
"Kotlin: should I define Function or Property?" Igor Wojda
Kotlin ввел новые элементы для объявляения - свойство (property). Единственное что часто вызывало вопрос когда выбрать что использовать - функция или свойство?
Вопрос порой даже философский и зависит от взгляда разработчика. В статье Igor раскрывает когда стоит выбрать что.
Чтобы понять стоит ли использовать функцию, ответьте на вопрос: "Описывает ли функция поведение?".Например print(), jump() или calculate().
Если ответ положительный. то используйте функцию.
Кандидат для использования свойства должен отвечать требованиям:
1️⃣ Не бросает исключений
2️⃣ Легкий для вычисления, либо вовсе их не требует.
3️⃣ Возвращает один и тот же результат (при условие неизменения состояния объекта)
Также не забывайте о том что свойства могут быть объявлены в интерфейсе и их get()/set() функции можно определить самостоятельно.
🔥 И killer фича - property delegate!, которая позволяет переиспользовать код на новом уровне 🔥
Подробнее о property в Kolin смотрите в официальной документации.
Также официальная документация раскрывает когда должно использовать свойство, а когда функцию.
"Kotlin: should I define Function or Property?" Igor Wojda
Kotlin ввел новые элементы для объявляения - свойство (property). Единственное что часто вызывало вопрос когда выбрать что использовать - функция или свойство?
Вопрос порой даже философский и зависит от взгляда разработчика. В статье Igor раскрывает когда стоит выбрать что.
Чтобы понять стоит ли использовать функцию, ответьте на вопрос: "Описывает ли функция поведение?".Например print(), jump() или calculate().
Если ответ положительный. то используйте функцию.
Кандидат для использования свойства должен отвечать требованиям:
1️⃣ Не бросает исключений
2️⃣ Легкий для вычисления, либо вовсе их не требует.
3️⃣ Возвращает один и тот же результат (при условие неизменения состояния объекта)
Также не забывайте о том что свойства могут быть объявлены в интерфейсе и их get()/set() функции можно определить самостоятельно.
🔥 И killer фича - property delegate!, которая позволяет переиспользовать код на новом уровне 🔥
Подробнее о property в Kolin смотрите в официальной документации.
Также официальная документация раскрывает когда должно использовать свойство, а когда функцию.
Medium
Kotlin: should I define Function or Property?
Recently I realized that there is a confusion relating the usage of properties and functions. There was a good reason why Kotlin introduced…
#BestPractices #Release
"How to release a bug-free Android App in production?" Amit Shekhar@GetMeAnApp
Для каждого релиза стоит делать определенный набор практик: автоматизация сборки, тестивароние и пр. В статье вы найдете полезные советы, которые надо выполнять при пером релизе и следить в каждом следующем, чтобы ваше приложение было более стабильным.
На мой взгляд стоящие советы следующие:
👉🏻 Не включайте библиотеки, которые используются для отладки приложения в релизной сборке, такие как LeakCanary, Stetho и пр.
👉🏻 Добавляйте возможность включения/отключения новый функций
👉🏻 Реализуйте возможность конфигурации приложения с сервера (Remote Config)
👉🏻 Проверяйте ключ для подписи приложения
👉🏻 Проверяйте список permission, которые есть в приложение. Очень странно выглядет когда будильник будет запрашивать разрешение на дотсуп к SMS или контактам.
👉🏻 Добавляфте аналитику, чтобы понимать пользователей и знать что происходит в вашем приложение. Также на забывайте про решение для аналитики крешей (напр. Firebase Crashlytics или Instabug)
👉🏻 Используйте Proguard/R8.
👉🏻 Проверяйте поведение приложения в различных пограничных случаях
👉🏻 Проверяйте deep ссылки
👉🏻 Проверяйте обновление приложения поверх установленного старого, предварительно поработав в нем чтобы были сгенерированы данные реальной работы пользователя.
👉🏻 Обновление базы данных, настроек и пр. персистетных данных. Учтите что пользователи могу быть не на последней версии приложения, а на более ранней.
Лично от себя добавлю что стоит обратить внимание на функционал из Google Play:
👉🏻 Используйте Google Play pre-launch отчет. Он позволяет првоерить работы вашего приложения на популярных устрйоствах, поддерживаемых вашим приложением.
👉🏻 Делайте обновление постепенным с помощью Google Play staged rollout
👉🏻 Используйте Google Play app signing
👉🏻 Загружайте приложение в формате App Bundle. Это позволит вам избавиться от боли создания и управления множеством APK под различные типы устрйоств.
"How to release a bug-free Android App in production?" Amit Shekhar@GetMeAnApp
Для каждого релиза стоит делать определенный набор практик: автоматизация сборки, тестивароние и пр. В статье вы найдете полезные советы, которые надо выполнять при пером релизе и следить в каждом следующем, чтобы ваше приложение было более стабильным.
На мой взгляд стоящие советы следующие:
👉🏻 Не включайте библиотеки, которые используются для отладки приложения в релизной сборке, такие как LeakCanary, Stetho и пр.
👉🏻 Добавляйте возможность включения/отключения новый функций
👉🏻 Реализуйте возможность конфигурации приложения с сервера (Remote Config)
👉🏻 Проверяйте ключ для подписи приложения
👉🏻 Проверяйте список permission, которые есть в приложение. Очень странно выглядет когда будильник будет запрашивать разрешение на дотсуп к SMS или контактам.
👉🏻 Добавляфте аналитику, чтобы понимать пользователей и знать что происходит в вашем приложение. Также на забывайте про решение для аналитики крешей (напр. Firebase Crashlytics или Instabug)
👉🏻 Используйте Proguard/R8.
👉🏻 Проверяйте поведение приложения в различных пограничных случаях
👉🏻 Проверяйте deep ссылки
👉🏻 Проверяйте обновление приложения поверх установленного старого, предварительно поработав в нем чтобы были сгенерированы данные реальной работы пользователя.
👉🏻 Обновление базы данных, настроек и пр. персистетных данных. Учтите что пользователи могу быть не на последней версии приложения, а на более ранней.
Лично от себя добавлю что стоит обратить внимание на функционал из Google Play:
👉🏻 Используйте Google Play pre-launch отчет. Он позволяет првоерить работы вашего приложения на популярных устрйоствах, поддерживаемых вашим приложением.
👉🏻 Делайте обновление постепенным с помощью Google Play staged rollout
👉🏻 Используйте Google Play app signing
👉🏻 Загружайте приложение в формате App Bundle. Это позволит вам избавиться от боли создания и управления множеством APK под различные типы устрйоств.
Medium
How to release a bug-free Android App in production?
Recently, our team at GetMeAnApp has released an Android Application named “Best Content App”.
#Gradle #Kotlin #DSL
Upgrading your build from Gradle 4.x to 5.0
Gradle 5.0 вышел совсе недавно, но добавил много полезного и добавил няшечку - Kotlin DSL 1.0. Для тех кто планирует миграцию на новую версию Gradle предоставила гайд для обновления с различных версия 4.X.
Upgrading your build from Gradle 4.x to 5.0
Gradle 5.0 вышел совсе недавно, но добавил много полезного и добавил няшечку - Kotlin DSL 1.0. Для тех кто планирует миграцию на новую версию Gradle предоставила гайд для обновления с различных версия 4.X.
#AndroidO #TextClassification #MachineLearning
TextClassification – Part 1
TextClassification – Part 2
TextClassification – Part 3
Машинное обучение (ML) современный тренд в мире разработке и Android ему следует. Android 9.0 строился вокруг ML внутри ОС. Новый системный сервис - Text Classification, позволяет вам:
👉🏻 определять выделения (например быстро выделить весь email без необходимости выставлять зону выделения)
👉🏻 находить действия которые можно выполнять с текстом
👉🏻 писать свои собственные TextClassifier для опрееления текста и действий в нем
Подробнее обо всех возможностях и как это сделать вы найдете в статьях от Mark Allison
TextClassification – Part 1
TextClassification – Part 2
TextClassification – Part 3
Машинное обучение (ML) современный тренд в мире разработке и Android ему следует. Android 9.0 строился вокруг ML внутри ОС. Новый системный сервис - Text Classification, позволяет вам:
👉🏻 определять выделения (например быстро выделить весь email без необходимости выставлять зону выделения)
👉🏻 находить действия которые можно выполнять с текстом
👉🏻 писать свои собственные TextClassifier для опрееления текста и действий в нем
Подробнее обо всех возможностях и как это сделать вы найдете в статьях от Mark Allison
Styling Android
TextClassification – Part 1
In API 26 (Oreo) a new TextClassification system was introduced. This has been further refined in API 28 (Pie). In this short series we'll take a look at what this is, how to use it, and how we can ad
#Kotlin #Operators
"Increasing readability using operator conventions in Kotlin" Pamela Hill
Kotlin позволяет вам переопределять операторы для собственных типов и тем самым повышая читабельность кода. В статье раскрываются способы применения операторов и как их реализовать.
"Increasing readability using operator conventions in Kotlin" Pamela Hill
Kotlin позволяет вам переопределять операторы для собственных типов и тем самым повышая читабельность кода. В статье раскрываются способы применения операторов и как их реализовать.
Medium
Increasing readability using operator conventions in Kotlin
Learn how operator conventions can be used to improve the readability of your Kotlin code.