Как работают SAM-conversions?
SAM - Single Abstract Method. или функциональный интерфейс.
очень удобное использование лямбды вместо анонимных классов(все реализуется под капотом, упрощенный синтаксис) В лямбде реализуется единственный метод интерфейса.
SAM - Single Abstract Method. или функциональный интерфейс.
очень удобное использование лямбды вместо анонимных классов(все реализуется под капотом, упрощенный синтаксис) В лямбде реализуется единственный метод интерфейса.
Создаем простую игру с Jetpack Compose для часов на Google WearOS
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой Android для телефонов и планшетов, а затем (благодаря разработкам JetBrains) стало возможным использовать реактивный стиль разработки для создания десктопных и веб-приложений. Но все еще нельзя было создавать приложения для умных часов, работающих над вариантом платформы Android - WearOS. В июле 2022 года команда разработки Android предложила первую стабильную версию Compose for WearOS, а в начале декабря вышло обновление библиотеки версии 1.1 с новыми возможностями по настройке пользовательского интерфейса и дополнительными компонентами. В этой статье мы сделаем несложную игру для WearOS с использованием Compose.
Читать статью
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой Android для телефонов и планшетов, а затем (благодаря разработкам JetBrains) стало возможным использовать реактивный стиль разработки для создания десктопных и веб-приложений. Но все еще нельзя было создавать приложения для умных часов, работающих над вариантом платформы Android - WearOS. В июле 2022 года команда разработки Android предложила первую стабильную версию Compose for WearOS, а в начале декабря вышло обновление библиотеки версии 1.1 с новыми возможностями по настройке пользовательского интерфейса и дополнительными компонентами. В этой статье мы сделаем несложную игру для WearOS с использованием Compose.
Читать статью
Telegraph
Создаем простую игру с Jetpack Compose для часов на Google WearOS
Библиотека Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась…
Что такое функции высшего порядка (higher-order functions), лямбда-выражения (lambda-expressions), анонимные функции (anonymous functions), указатели на методы (method references, bound callable references)?
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата
Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения
Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )
Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Kotlin – это главный язык мобильной разработки под Android в наше время. Еще в 2019 году компания Google объявила его предпочтительным для Mobile App девелопмента и заявила, что они сами его регулярно используют для своих приложений.
Однако Котлин может также успешно применяться и для написания полного цикла веб-приложений – а это пользовательская сторона (FrontEnd), с которой напрямую взаимодействует юзер, и серверная сторона (BackEnd), где скрывается вся закулисная логика.
На вебинаре вы узнаете о языке Kotlin, как он интегрирован в экосистему Java, автор покажет его преимущества. Узнаете, почему за ним будущее и как на нем можно написать Full Stack приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin – язык Full Stack разработчика
Kotlin – это главный язык мобильной разработки под Android в наше время. Еще в 2019 году компания Google объявила его предпочтительным для Mobile App девелопмента и заявила, что они сами его регулярно используют для своих приложений.
Однако Котлин может…
Однако Котлин может…
Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна фича вряд ли будет закончена вовремя. Рисковать не хотелось и было решено - прикрыть эту часть заглушкой. Блокируя часть нерабочей функциональности, мы питали надежды, что скоуп MVP будет закрыт. По-этому, выключить нерабочий код хотели так, чтобы по щелчку кнопки CI/Web экран стал доступен для пользователя.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Готовим FeatureToggle для Android
Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна…
Какой толк от inline-функций, как компилируется сама функция и места её использования?
Каждая лямбда это анонимный класс с реализацией единственного метода. Если часто вызывать эти лямбды, будет создано много очень классов, а они вообще то занимают память.
Когда функция объявляется с модификатором inline, её тело становится встраиваемым, т.е. оно подставляется вместо обычного вызова функции.
Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
Каждая лямбда это анонимный класс с реализацией единственного метода. Если часто вызывать эти лямбды, будет создано много очень классов, а они вообще то занимают память.
Когда функция объявляется с модификатором inline, её тело становится встраиваемым, т.е. оно подставляется вместо обычного вызова функции.
Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin за час. Теория и практика.
Скачать PVS-Studio бесплатно: https://www.viva64.com/alishev
YouTube канал PVS-Studio: https://www.youtube.com/c/PVSStudioTool/
VK группа PVS-Studio: https://vk.com/pvsstudio_rus
Продвинутая Java - https://swiftbook.org/courses/415
ПОЛНЫЙ КУРС ПО SPRING…
YouTube канал PVS-Studio: https://www.youtube.com/c/PVSStudioTool/
VK группа PVS-Studio: https://vk.com/pvsstudio_rus
Продвинутая Java - https://swiftbook.org/courses/415
ПОЛНЫЙ КУРС ПО SPRING…
CI, кодстайл и TDD: обзор практик для повышения качества кода
Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим Морев, и я техлид в Газпромбанке.
То, что вы сейчас увидите, выросло из внутреннего стайлгайда, к которому мы пришли через тернии многочисленных код-ревью и разработанных сервисов. Я постарался собрать здесь все основные и просто интересные грабли, которые нам попадались, и показать решения с примерами и обзором возможных трудностей в процессе внедрения.
Читать статью
Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим Морев, и я техлид в Газпромбанке.
То, что вы сейчас увидите, выросло из внутреннего стайлгайда, к которому мы пришли через тернии многочисленных код-ревью и разработанных сервисов. Я постарался собрать здесь все основные и просто интересные грабли, которые нам попадались, и показать решения с примерами и обзором возможных трудностей в процессе внедрения.
Читать статью
Telegraph
CI, кодстайл и TDD: обзор практик для повышения качества кода
Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим, и я техлид в Газпромбанке. То, что вы сейчас увидите, выросло…
Как работают crossinline и noinline?
Не все функции, переданные в аргумент, можно делать встроенными(например когда результат функции нужно передать дальше, для этого данные нужно хранить в классе). помечая в inline-функции аргументы как noinline, мы решаем проблему(одни функции будут встроены, другие же по классике реализуются в анонимном классе)
crossinline ->
return@someFun - local return
return - non-local return
метка crossinline запрещает non-local return.
Не все функции, переданные в аргумент, можно делать встроенными(например когда результат функции нужно передать дальше, для этого данные нужно хранить в классе). помечая в inline-функции аргументы как noinline, мы решаем проблему(одни функции будут встроены, другие же по классике реализуются в анонимном классе)
crossinline ->
return@someFun - local return
return - non-local return
метка crossinline запрещает non-local return.
Пишем бота-кликера на Kotlin для Lineage 2
Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело.
Читать статью
Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело.
Читать статью
Telegraph
Пишем бота-кликера на Kotlin для Lineage 2
Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG…
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Android Roadmap 2023 Все что вам нужно знать в 2023 году для андроид разработки
1. Выучить английский Upper-Intermediate
2. Java vs Kotlin Многопоточность в джава (треды ранблы) котлин корутины
3. ООП И TDD (SOLID, DRY, KISS, YAGNI) Чистый Код Роберт Мартин (шаблоны)
4. (видеокурс) Андроид и HolyBibleApp (гит) Чистая архитектура
5. XML…
2. Java vs Kotlin Многопоточность в джава (треды ранблы) котлин корутины
3. ООП И TDD (SOLID, DRY, KISS, YAGNI) Чистый Код Роберт Мартин (шаблоны)
4. (видеокурс) Андроид и HolyBibleApp (гит) Чистая архитектура
5. XML…
Как компилируются extension-функции и как использовать их из Java?
extension-функции - это тупо статический метод, в который передаётся объект приёмник. Чтобы вызвать в джаве нужно указать имя класса, созданный из имени файла, где находится данная функция.
extension-функции - это тупо статический метод, в который передаётся объект приёмник. Чтобы вызвать в джаве нужно указать имя класса, созданный из имени файла, где находится данная функция.
Что выведет следующий код?
Anonymous Quiz
7%
90000 109000
80%
90000 104500
8%
45000 100000
5%
90000 100000
Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.
Читать статью
Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.
Читать статью
Telegraph
Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile
Всем привет! Меня зовут Амет Хырхара, я Android разработчик в компании Joy Dev. Первое, в чём может возникнуть затруднение у Android разработчика при переходе на КММ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями…
Можно ли сделать extension к интерфейсу? Тайпалиасу? Функциональному типу?
Интерфейс - да
Псевдонимы типов - да
функциональный тип - нет(там есть Литералы функций с объектом-приёмником)
companion/object - да
Интерфейс - да
Псевдонимы типов - да
функциональный тип - нет(там есть Литералы функций с объектом-приёмником)
companion/object - да
Темой этого ролика является принципы SOLID ну и так как автор Android разработчик, то все 5 принципов SOLID он будет показывать на основе простого Android приложения и использовать язык программирования Kotlin.
Please open Telegram to view this post
VIEW IN TELEGRAM
Чистый код: как писать код, который легко читать
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае:
• Именования переменных, классов и функций
• Вспомогательных функций
• Комментариев к коду
• Перечислений/словарей/запечатанных классов и так далее
• Упорядочивания и именования пакетов
➡️ Читать статью
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае:
• Именования переменных, классов и функций
• Вспомогательных функций
• Комментариев к коду
• Перечислений/словарей/запечатанных классов и так далее
• Упорядочивания и именования пакетов
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Чистый код: как писать код, который легко читать
Для начала мы обсудим, зачем вам вообще может понадобиться писать более читаемый, а не краткий код. Затем мы рассмотрим стратегии, как это делать в случае: Именования переменных, классов и функций Вспомогательных функций Комментариев к коду Перечислений/…
Может ли функция быть одновременно member и extension? Как её использовать?
Да, может.
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом, таким же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет.
Как использовать? Перегружать методы и не ломать потом голову.
Да, может.
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом, таким же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет.
Как использовать? Перегружать методы и не ломать потом голову.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Kotlin VS Java | Плюсы и минусы языков | Почему разработчики переходят на Kotlin?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Спасибо за просмотр! Увидимся в следующем видео!
Буду рад лайкам и комментариям!
Если тебе нравится мой контент, то поддержи меня на бусти - https://boosty.to/bebr0
По любым вопросам, а также…
Спасибо за просмотр! Увидимся в следующем видео!
Буду рад лайкам и комментариям!
Если тебе нравится мой контент, то поддержи меня на бусти - https://boosty.to/bebr0
По любым вопросам, а также…