Краткий, но очень полезный обзор операторов для построения for циклов в Kotlin:
- until
- lastIndex
- indices
- withIndex
- forEachIndexed
#android #kotlin
https://www.youtube.com/watch?v=i-kyPp1qFBA
- until
- lastIndex
- indices
- withIndex
- forEachIndexed
#android #kotlin
https://www.youtube.com/watch?v=i-kyPp1qFBA
YouTube
How to Improve Loops in Kotlin | Kotlin Tips 2024
Welcome to Kotlin Tips, the video series on how to use Kotlin more efficiently.
Loops are a basic and powerful concept in programming. They allow you to repeat the execution of statements until a certain condition is met. In this video, Sebastian (https…
Loops are a basic and powerful concept in programming. They allow you to repeat the execution of statements until a certain condition is met. In this video, Sebastian (https…
👍14🔥5👎1
Новая библиотека Jetpack Core Performance, пока в альфе. Подскажет, насколько мощным железом обладает девайс, на котором выполняется ваше приложение
#android #hardware #performance
https://android-developers.googleblog.com/2022/03/using-performance-class-to-optimize.html
#android #hardware #performance
https://android-developers.googleblog.com/2022/03/using-performance-class-to-optimize.html
Android Developers Blog
Using performance class to optimize your user experience
Posted by Don Turner , Developer Relations Engineer, and Francois Goldfain, Director of Android Media Framework Today w...
👍14🔥2👏1
✅ Как протестировать приложение на Flutter с информацией из сети?
📌 6 апреля в 20:00 в OTUS пройдет demo-занятие в рамках онлайн-курса «Flutter Mobile Developer». Вебинар проведет Дмитрий Золотов, Flutter Developer в Яндексе с опытом работы более 20 лет.
🚀 На открытом уроке мы разберемся, как создать тесты для сетевых приложений на Flutter и проверим работу простого клиента для отображения мероприятий из публичного API на всех уровнях: модульные тесты, тесты виджетов, интеграционные тесты.
Созданные тесты будут интегрированы в единый сценарий сборки в конвейере CI.
👉 Для записи на мероприятие, пройдите вступительный тест https://otus.pw/FuuL/
#реклама
📌 6 апреля в 20:00 в OTUS пройдет demo-занятие в рамках онлайн-курса «Flutter Mobile Developer». Вебинар проведет Дмитрий Золотов, Flutter Developer в Яндексе с опытом работы более 20 лет.
🚀 На открытом уроке мы разберемся, как создать тесты для сетевых приложений на Flutter и проверим работу простого клиента для отображения мероприятий из публичного API на всех уровнях: модульные тесты, тесты виджетов, интеграционные тесты.
Созданные тесты будут интегрированы в единый сценарий сборки в конвейере CI.
👉 Для записи на мероприятие, пройдите вступительный тест https://otus.pw/FuuL/
#реклама
👍6👎4
Статья о создании плагина к студии, чтобы автоматизировать переход с kotlin.synthetics на ViewBinding
#android #kotlin #androidstudio #plugin
https://habr.com/ru/company/hh/blog/650763/
#android #kotlin #androidstudio #plugin
https://habr.com/ru/company/hh/blog/650763/
Хабр
Как мы перешли с kotlinx.synthetics на Android View Binding
Привет! Меня зовут Ваня, я Android-разработчик из продуктовой команды hh.ru , и в этой статье я расскажу о нашем опыте миграции на ViewBinding . В конце 2020 года в официальном блоге Android...
👍7💩3👏2
Базовое видео о том, что такое Kotlin Flow и как его использовать в приложении
#android #kotlin #flow
https://www.youtube.com/watch?v=fSB6_KE95bU
#android #kotlin #flow
https://www.youtube.com/watch?v=fSB6_KE95bU
YouTube
Kotlin Flows in practice
With coroutines as the recommended solution for asynchronous operations, Kotlin Flow is the obvious choice for managing streams of data in Android apps. However, there are some lifecycle perils to consider and new lifecycle-aware APIs to understand in order…
👍16👏1🤩1
Короткое видео про использование оператора Elvis в комбинации с run, чтобы и вернуть значение и выполнить код в случае null.
#kotlin #elvis #nullable
https://www.youtube.com/watch?v=L9wqYQ-fXaM
#kotlin #elvis #nullable
https://www.youtube.com/watch?v=L9wqYQ-fXaM
YouTube
How YOU CAN DO MORE with the Elvis operator | Tips from the Kotlin team
The Elvis operator is a great tool for handling nullability. It can be used to provide a default non-null value instead of a given expression when this expression is null. In this episode of Kotlin Tips, Sebastian will show how to add some more logic, for…
👍15🤩1
Базовые рекомендации по решению проблем с производительностью приложения
#android
https://medium.com/ww-tech-blog/practical-android-profiling-58ece24934f7
#android
https://medium.com/ww-tech-blog/practical-android-profiling-58ece24934f7
Medium
Practical Android Profiling
Intro
👍8👏2
Вышел 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 разработке
Короткие посты с картинками о различных аспектах, с которыми сталкиваешься во время разработки:
• www.tg-me.com/dolgo_polo_dev/20 — Да кто этот ваш Context
• www.tg-me.com/dolgo_polo_dev/22 — Главная цель архитектуры или зачем столько страданий
• www.tg-me.com/dolgo_polo_dev/31 — Handler & Looper
• www.tg-me.com/dolgo_polo_dev/55 — Kotlin Coroutine — корутины за 100 слов
• www.tg-me.com/dolgo_polo_dev/60 — Xml - зачем префиксы android, tools, app
Карта канала — www.tg-me.com/dolgo_polo_dev/36
#реклама
Короткие посты с картинками о различных аспектах, с которыми сталкиваешься во время разработки:
• www.tg-me.com/dolgo_polo_dev/20 — Да кто этот ваш Context
• www.tg-me.com/dolgo_polo_dev/22 — Главная цель архитектуры или зачем столько страданий
• www.tg-me.com/dolgo_polo_dev/31 — Handler & Looper
• www.tg-me.com/dolgo_polo_dev/55 — Kotlin Coroutine — корутины за 100 слов
• www.tg-me.com/dolgo_polo_dev/60 — Xml - зачем префиксы android, tools, app
Карта канала — www.tg-me.com/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