Вышел Kotlin 1.6.20. Одна из интересных новых фич - context receivers.
На словах объяснить непросто, но можно рассмотреть простой пример: внутри нашего кастомного View класса нам понадобилась функция конвертирования dp в px. На скриншоте выше - два варианта реализации.
Первый вариант - обычная Extension функция для Float. Внутри класса View мы сможем ее вызвать и передать ей this, чтобы она получила доступ к resources и все посчитала.
Второй вариант - использует context receivers. Оператором context мы даем этой Extension функции понять, что она будет вызвана внутри контекста View класса.
Как попасть в контекст View класса?
В нашем случае мы просто будем вызывать эту функцию внутри нашего View класса. Она сама вытянет из него resources. Нам уже не надо будет явно передавать view в функцию, как мы это делали в первом варианте.
Еще один способ попасть в контекст View класса - with(view) { ... }. В блоке кода оператора with мы сможем вызывать нашу функцию dpToPx() и она сама доберется до view, который мы передали в with().
Если же попытаться вызвать такую функцию вне контекста View, то студия выдаст ошибку: No required context receiver found.
#kotlin #extension #receiver
https://blog.jetbrains.com/kotlin/2022/04/kotlin-1-6-20-released/
На словах объяснить непросто, но можно рассмотреть простой пример: внутри нашего кастомного View класса нам понадобилась функция конвертирования dp в px. На скриншоте выше - два варианта реализации.
Первый вариант - обычная Extension функция для Float. Внутри класса View мы сможем ее вызвать и передать ей this, чтобы она получила доступ к resources и все посчитала.
Второй вариант - использует context receivers. Оператором context мы даем этой Extension функции понять, что она будет вызвана внутри контекста View класса.
Как попасть в контекст View класса?
В нашем случае мы просто будем вызывать эту функцию внутри нашего View класса. Она сама вытянет из него resources. Нам уже не надо будет явно передавать view в функцию, как мы это делали в первом варианте.
Еще один способ попасть в контекст View класса - with(view) { ... }. В блоке кода оператора with мы сможем вызывать нашу функцию dpToPx() и она сама доберется до view, который мы передали в with().
Если же попытаться вызвать такую функцию вне контекста View, то студия выдаст ошибку: No required context receiver found.
#kotlin #extension #receiver
https://blog.jetbrains.com/kotlin/2022/04/kotlin-1-6-20-released/
👍44🔥6🤔6❤1🥰1
Блог об Android разработке
Короткие посты с картинками о различных аспектах, с которыми сталкиваешься во время разработки:
• t.me/dolgo_polo_dev/20 — Да кто этот ваш Context
• t.me/dolgo_polo_dev/22 — Главная цель архитектуры или зачем столько страданий
• t.me/dolgo_polo_dev/31 — Handler & Looper
• t.me/dolgo_polo_dev/55 — Kotlin Coroutine — корутины за 100 слов
• t.me/dolgo_polo_dev/60 — Xml - зачем префиксы android, tools, app
Карта канала — t.me/dolgo_polo_dev/36
#реклама
Короткие посты с картинками о различных аспектах, с которыми сталкиваешься во время разработки:
• t.me/dolgo_polo_dev/20 — Да кто этот ваш Context
• t.me/dolgo_polo_dev/22 — Главная цель архитектуры или зачем столько страданий
• t.me/dolgo_polo_dev/31 — Handler & Looper
• t.me/dolgo_polo_dev/55 — Kotlin Coroutine — корутины за 100 слов
• t.me/dolgo_polo_dev/60 — Xml - зачем префиксы android, tools, app
Карта канала — t.me/dolgo_polo_dev/36
#реклама
👍33
Google Play снова форсит нас повышать target API level.
C 01 ноября 2022 приложение станет недоступным для установки, если его target API level устарел более, чем на два года.
#android #googleplay #targetapi
https://android-developers.googleblog.com/2022/04/expanding-plays-target-level-api-requirements-to-strengthen-user-security.html
C 01 ноября 2022 приложение станет недоступным для установки, если его target API level устарел более, чем на два года.
#android #googleplay #targetapi
https://android-developers.googleblog.com/2022/04/expanding-plays-target-level-api-requirements-to-strengthen-user-security.html
Android Developers Blog
Expanding Play’s Target Level API Requirements to Strengthen User Security
News and insights on the Android platform, developer tools, and events.
👍8😱4❤2💩1
🚀 Как создать приложение с управлением сложными жестами, как в Opera?
📌 Об этом расскажет Дмитрий Золотов, Flutter Developer в Яндексе,18 апреля в 20:00 мск
✅ На открытом уроке мы:
🔸 Разберемся с принципами обнаружения жестов во Flutter
🔸 Создадим детекторы для сложных жестов управления приложением (подобно жестам мышью в Opera)
🔸 Создадим простую библиотеку для встраивания в другие приложения.
📚 Занятие дает возможность предварительно попробовать онлайн-курс «Flutter Mobile Developer» от OTUS и познакомиться с преподавателем.
👉 Для регистрации пройдите вступительный тест https://otus.pw/zbiv/
#реклама
📌 Об этом расскажет Дмитрий Золотов, Flutter Developer в Яндексе,
🔸 Разберемся с принципами обнаружения жестов во Flutter
🔸 Создадим детекторы для сложных жестов управления приложением (подобно жестам мышью в Opera)
🔸 Создадим простую библиотеку для встраивания в другие приложения.
📚 Занятие дает возможность предварительно попробовать онлайн-курс «Flutter Mobile Developer» от OTUS и познакомиться с преподавателем.
👉 Для регистрации пройдите вступительный тест https://otus.pw/zbiv/
#реклама
💩12👍5🔥2
Пишут, что в Kotlin 1.7 добавят возможность явного указания типа для property getter.
Это упростит описание двойных объектов типа LiveData/MutableLiveData и StateFlow/MutableStateFlow
#kotlin
https://nikoladespotoski.medium.com/overriding-backing-property-type-in-kotlin-1-7-5581cd30e77a
Это упростит описание двойных объектов типа LiveData/MutableLiveData и StateFlow/MutableStateFlow
#kotlin
https://nikoladespotoski.medium.com/overriding-backing-property-type-in-kotlin-1-7-5581cd30e77a
👍58🔥33👏5❤2🤔1🤮1
В Android 13 приложение может отказаться от пермишена, который ранее был предоставлен системой или пользователем.
#android
https://yggr.medium.com/exploring-android-13-downgradable-permission-5ca79bfcee2b
#android
https://yggr.medium.com/exploring-android-13-downgradable-permission-5ca79bfcee2b
Medium
Exploring Android 13: Downgradable Permission
Let’s implement “Downgradable Permission” APIs, a new feature from Android 13 Developer Preview 1.
🤔18👍2🤮1
Короткое видео об операторе measureTimedValue, который вернет и время и результат выполнения кода.
#kotlin
https://www.youtube.com/watch?v=j_LEcry7Pms
#kotlin
https://www.youtube.com/watch?v=j_LEcry7Pms
YouTube
Calculate Your Code Performance | Kotlin Tips 2023
Especially for long-running operations, it can be useful to know how much time it takes to run your code. Thankfully, the kotlin.time package comes with some functions that can help you measure the execution time of functions while still returning values…
👍6🔥4🤮1
Получасовое подробное видео про новую Kotlin фичу Context Receivers
#kotlin
https://www.youtube.com/watch?v=GISPalIVdQY
#kotlin
https://www.youtube.com/watch?v=GISPalIVdQY
👍9🔥4🤮1
«Лаборатория Касперского» объявляет набор на стажировку в команду мобильной разработки!
Регистрируйтесь на митап Kaspersky SafeBoard Mobile talks, чтобы узнать:
- о сложностях и преимуществах мобильной разработки;
- о стажировках в команде, задачах и перспективах развития, а также о каждом направлении отбора;
- как попасть в штат после стажировки — пообщаемся с недавними стажерами и подскажем, как расти еще быстрее!
И, конечно же, ответим на твои вопросы!
Онлайн-встреча пройдет 21 апреля в 17:00, где тебя ждет знакомство с командами и тестовое задание.
Скорее подавай заявку по ссылке, заполняй анкету и получи возможность пройти отбор на стажировку в «Лабораторию Касперского».
Стань частью нашей команды!
#реклама
Регистрируйтесь на митап Kaspersky SafeBoard Mobile talks, чтобы узнать:
- о сложностях и преимуществах мобильной разработки;
- о стажировках в команде, задачах и перспективах развития, а также о каждом направлении отбора;
- как попасть в штат после стажировки — пообщаемся с недавними стажерами и подскажем, как расти еще быстрее!
И, конечно же, ответим на твои вопросы!
Онлайн-встреча пройдет 21 апреля в 17:00, где тебя ждет знакомство с командами и тестовое задание.
Скорее подавай заявку по ссылке, заполняй анкету и получи возможность пройти отбор на стажировку в «Лабораторию Касперского».
Стань частью нашей команды!
#реклама
💩42👍8🤮2
Автор на примере объясняет принцип Dependency Inversion (буква D в SOLID).
#solid #architecture
https://paigeshin1991.medium.com/dependency-inversion-principle-how-google-developers-write-code-f6cbd3b530a6
#solid #architecture
https://paigeshin1991.medium.com/dependency-inversion-principle-how-google-developers-write-code-f6cbd3b530a6
Medium
Dependency Inversion Principle: How Google Developers write code
To become a high-paid developer, you need to learn TDD. Basically, you have to develop software with TDD to get into a big company. If…
👍25💩6👏2🤮1
Подборка советов по ускорению Gradle сборки. Ничего особо нового и революционного, но вдруг найдете что то новое для себя.
#gradle #android #build
https://blog.dipien.com/10-ideas-to-improve-your-gradle-build-times-part-iii-db06392f253
#gradle #android #build
https://blog.dipien.com/10-ideas-to-improve-your-gradle-build-times-part-iii-db06392f253
Medium
10 ideas to improve your Gradle build times [Part III]
Reduce your Gradle build times on android & non-android projects with these great ideas
👍6🔥2🤮1
Уехать — нормально, остаться — тоже нормально. Еще нормальнее — работать и делать, что умеешь.
Мы по-прежнему делаем интересные и важные проекты, по-прежнему платим зарплату два раза в месяц и пересматриваем два раза в год, по-прежнему поддерживаем каждого члена команды, оплачиваем психолога. Считаем, что это нормально.
Заходите на сайт, чекайте вакансии и, может, поработаем вместе
Присоединяйтесь✊🏻
#реклама
Мы по-прежнему делаем интересные и важные проекты, по-прежнему платим зарплату два раза в месяц и пересматриваем два раза в год, по-прежнему поддерживаем каждого члена команды, оплачиваем психолога. Считаем, что это нормально.
Заходите на сайт, чекайте вакансии и, может, поработаем вместе
Присоединяйтесь✊🏻
#реклама
👎33👍12👏1🤮1
Небольшая статья для начинающих о том, в чем разница между DataBinding и ViewBinding
#android #databinding #viewbinding
https://medium.com/@joshuaudayagiri/android-view-binding-vs-data-binding-f56df1885bce
#android #databinding #viewbinding
https://medium.com/@joshuaudayagiri/android-view-binding-vs-data-binding-f56df1885bce
Medium
Android: View Binding vs Data Binding
View binding:
🔥16👍7👎2
Работа с Nullable объектами в operator функциях
#kotlin #nullable
https://www.youtube.com/watch?v=x2bZJv8i0vw
#kotlin #nullable
https://www.youtube.com/watch?v=x2bZJv8i0vw
YouTube
Operator Functions With Nullable Values | Kotlin Tips 2023
In Kotlin, you can override operators like addition and subtraction for your classes and supply your own logic. But what if you want to allow null values, both on their left and right sides?
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
In this episode of Kotlin Tips, Sebastian (https://twitter.com/sebi_io)…
👍10🤮1
Полезная статья для начинающих. Что происходит, если у нас в классе и в методе есть переменные с одним и тем же именем. Также рассматривается кейс одинаковых имен переменных в родительском/дочернем классах. Такое вполне могут спросить на интервью
#java #interview
https://habr.com/ru/company/piter/blog/658873/
#java #interview
https://habr.com/ru/company/piter/blog/658873/
Хабр
Сокрытие и затенение переменных в Java
Краткое содержание В Java можно объявлять переменные в классе, методе, блоке или конструкторе. В зависимости от варианта объявления, у переменной могут быть разные области видимости в программе, а...
👍14🤮1
Подробная статья про Kotlin Sequences. Как работает, что умеет, чем отличается от коллекций, и в каких случаях имеет смысл использовать.
#kotlin #sequences #collections
https://www.raywenderlich.com/31290959-kotlin-sequences-getting-started
#kotlin #sequences #collections
https://www.raywenderlich.com/31290959-kotlin-sequences-getting-started
kodeco.com
Kotlin Sequences: Getting Started
In this Kotlin Sequences tutorial, you’ll learn what a sequence is, its operators and when you should consider using them instead of collections.
👍19💩4🔥1👏1🤮1
Вышла первая бета Android 13
#android #release
https://android-developers.googleblog.com/2022/04/android-13-beta-1-blog.html
#android #release
https://android-developers.googleblog.com/2022/04/android-13-beta-1-blog.html
Android Developers Blog
The Beta for Android 13 is out now: Android 13 Beta 1
Posted by Dave Burke, VP of Engineering It’s already April and we’ve been making steady progress refining the features and stabil...
👍17🤮5🤬2🎉2
Архитектурный гайд от гугла теперь и в видео формате
#architecture #android
https://android-developers.googleblog.com/2022/04/architecture-mad-skills-series-wrap-up.html
#architecture #android
https://android-developers.googleblog.com/2022/04/architecture-mad-skills-series-wrap-up.html
Android Developers Blog
Architecture MAD Skills series wrap up
Posted by Manuel Vicente Vivo , Developer Relations Engineer Now that our MAD Skills series on Architecture is complet...
👍16❤2👎1🤮1
Прошел курсы по Android-разработке, но не понимаешь, как применить свои знания на практике, а без опыта на работу не берут?
Попробуй Apanta - симулятор-тренажер мобильной студии!
Ты получишь:
-реальный опыт в создании амбициозного продукта;
-навыки анализа настоящих задач;
-возможность коммуникации с виртуальными коллегами;
-кейсы в постановке и решении рабочих вопросов.
Переходи по ссылке и начинай практиковаться уже сейчас!
https://apanta.online
#реклама
Попробуй Apanta - симулятор-тренажер мобильной студии!
Ты получишь:
-реальный опыт в создании амбициозного продукта;
-навыки анализа настоящих задач;
-возможность коммуникации с виртуальными коллегами;
-кейсы в постановке и решении рабочих вопросов.
Переходи по ссылке и начинай практиковаться уже сейчас!
https://apanta.online
#реклама
👍17💩9🤔5🔥3