Kotlin Developer
6.21K subscribers
264 photos
8 videos
359 links
Самый топовый канал по Kotlin

По вопросам сотрудничества и рекламы: @NadikaKir

Мы на бирже: https://telega.in/c/KotlinSenior
Download Telegram
Создаем простую игру с Jetpack Compose для часов на Google WearOS

Библиотека
Jetpack Compose значительно изменила подход к разработке нативных приложений и позволила декларативно описывать в коде интерфейсы, которые зависят от состояния и автоматически отслеживают его изменение. Но долгое время ее применимость ограничивалась платформой Android для телефонов и планшетов, а затем (благодаря разработкам JetBrains) стало возможным использовать реактивный стиль разработки для создания десктопных и веб-приложений. Но все еще нельзя было создавать приложения для умных часов, работающих над вариантом платформы Android - WearOS. В июле 2022 года команда разработки Android предложила первую стабильную версию Compose for WearOS, а в начале декабря вышло обновление библиотеки версии 1.1 с новыми возможностями по настройке пользовательского интерфейса и дополнительными компонентами. В этой статье мы сделаем несложную игру для WearOS с использованием Compose.

Читать статью
Что такое функции высшего порядка (higher-order functions), лямбда-выражения (lambda-expressions), анонимные функции (anonymous functions), указатели на методы (method references, bound callable references)?

Функции высшего порядка - это функции, которые принимают функцию в качестве аргумента и/или возвращает функцию в качестве результата

Лямбда выражения - не объявленная функция, которая немедленно используется в качестве выражения

Анонимные функции - альтернативный синтаксис лямбда выражения с иными правилами для выражения return(можно использовать для создания блока кода с несколькими точками выхода )

Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
👩‍💻 Kotlin – язык Full Stack разработчика

Kotlin – это главный язык мобильной разработки под Android в наше время. Еще в 2019 году компания Google объявила его предпочтительным для Mobile App девелопмента и заявила, что они сами его регулярно используют для своих приложений.

Однако Котлин может также успешно применяться и для написания полного цикла веб-приложений – а это пользовательская сторона (FrontEnd), с которой напрямую взаимодействует юзер, и серверная сторона (BackEnd), где скрывается вся закулисная логика.

На
вебинаре вы узнаете о языке Kotlin, как он интегрирован в экосистему Java, автор покажет его преимущества. Узнаете, почему за ним будущее и как на нем можно написать Full Stack приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Готовим FeatureToggle для Android

Всем привет, меня зовут Илья, я андроид инженер. Почти три года назад, мы начали свой проект в сфере финтех. Срок запуска MVP был оптимистичным. За неделю до наступления дедлайна наша команда осознала, что срок запуска переносить никто не собирается, а одна фича вряд ли будет закончена вовремя. Рисковать не хотелось и было решено - прикрыть эту часть заглушкой. Блокируя часть нерабочей функциональности, мы питали надежды, что скоуп MVP будет закрыт. По-этому, выключить нерабочий код хотели так, чтобы по щелчку кнопки CI/Web экран стал доступен для пользователя.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой толк от inline-функций, как компилируется сама функция и места её использования?

Каждая лямбда это анонимный класс с реализацией единственного метода. Если часто вызывать эти лямбды, будет создано много очень классов, а они вообще то занимают память.

Когда функция объявляется с модификатором inline, её тело становится встраиваемым, т.е. оно подставляется вместо обычного вызова функции.

Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
CI, кодстайл и TDD: обзор практик для повышения качества кода

Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим Морев, и я техлид в Газпромбанке.

То, что вы сейчас увидите, выросло из внутреннего стайлгайда, к которому мы пришли через тернии многочисленных код-ревью и разработанных сервисов. Я постарался собрать здесь все основные и просто интересные грабли, которые нам попадались, и показать решения с примерами и обзором возможных трудностей в процессе внедрения.

Читать статью
Как работают crossinline и noinline?

Не все функции, переданные в аргумент, можно делать встроенными(например когда результат функции нужно передать дальше, для этого данные нужно хранить в классе). помечая в inline-функции аргументы как noinline, мы решаем проблему(одни функции будут встроены, другие же по классике реализуются в анонимном классе)
crossinline ->
return@someFun - local return
return - non-local return
метка crossinline запрещает non-local return.
Пишем бота-кликера на Kotlin для Lineage 2

Еще не все новогодние салаты были съедены, “Ирония судьбы” уже просмотрена, а до начала рабочей недели еще целая вечность и нужно было придумать себе развлечение на оставшиеся праздники. Предвкушая ностальгию я открыл Lineage 2, одну из самых популярных MMORPG “нулевых” на СНГ пространстве. Однако, самому играть уже не хотелось и пришла идея автоматизировать это дело.

Читать статью
Как компилируются extension-функции и как использовать их из Java?

extension-функции - это тупо статический метод, в который передаётся объект приёмник. Чтобы вызвать в джаве нужно указать имя класса, созданный из имени файла, где находится данная функция.
Что выведет следующий код?
Что выведет следующий код?
Anonymous Quiz
7%
90000 109000
80%
90000 104500
8%
45000 100000
5%
90000 100000
Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile

Первое, в чём может возникнуть затруднение у Android разработчика при переходе на ККМ - это быстрая настройка окружения. Официальный сайт Kotlin не пестрит подробными инструкциями, и можно потратить несколько часов в поисках нужной информации. В данной статье мы пройдёмся по этапам настройки проекта.

Читать статью
Можно ли сделать extension к интерфейсу? Тайпалиасу? Функциональному типу?

Интерфейс - да
Псевдонимы типов - да
функциональный тип - нет(там есть Литералы функций с объектом-приёмником)
companion/object - да
👩‍💻 Принципы SOLID простым языком с примерами для Android на Kotlin

Темой этого ролика является принципы 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
Может ли функция быть одновременно member и extension? Как её использовать?

Да, может.
Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом, таким же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет.

Как использовать? Перегружать методы и не ломать потом голову.
👩‍💻Библиотека «Room» для начинающего Android-разработчика

Здравствуй, дорогой читатель. Каждый Android-разработчик сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо хранить большое количество изменяемых данных. В данной статье будет разобрана библиотека от Google - Room.

В статье будет рассказано об основных компонентах библиотеки и будет разобран базовый, не очень сложный пример.

Статья предназначена для новичков, не знакомых с данной библиотекой, но, желательно, имеющих базовые знаниях о SQLite, Kotlin Coroutines, Kotlin Flow, MVVM.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM