Kotlin Developer

channel icon
Самый топовый канал по Kotlin

Условия размещения

Цена за 48 часов в ленте 3000,00
Цена за 1 час закрепления N/A
Взаимопиар Нет
Дополнительные условия рекламы Отсутствуют
+1
5 276
подписчиков
-84
~1.5k
охват 1 публикации
0
~1
постов / день
-1,6%
28,1%
ERR % ?

Статистика

Последние публикации

Kotlin Developer
24 апреля 2024 г. 15:00
Вы, случайно, не мобильный разработчик? Тогда откуда для вас такой оффер?

18 и 19 мая пройдет Mobile Weekend Offer в Тинькофф. Для iOS- и Android-разработчиков с опытом от 3 лет.

Вот что будет:

— пройдете все этапы собеседования за выходные;
— познакомитесь с командой;
— если все хорошо, получите оффер на неделе. уже в воскресенье.

Дальше — будете решать масштабные финтех-задачи, развивать продукты для миллионов, пользоваться бенефитами и расти.

Оставьте заявку до 15 мая

Реклама. АО «Тинькофф Банк», ИНН 7710140679
Kotlin Developer
24 апреля 2024 г. 12:35
Указатели на функции (Function references, Bound callable references)

В языке Kotlin есть возможность работать с функциями как с объектами. Функции можно сохранять в переменные, передавать как аргументы и возвращать из других функций. Для этого можно использовать функциональные ссылки (Function references), которые представляют собой указатель на функцию.

1. Function references

Синтаксис функциональной ссылки имеет следующий вид:
функциональные ссылки (Function references), которые представляют собой указатель на функцию.

1. Function references

Синтаксис функциональной ссылки имеет следующий вид: ::function_name. Указатели на функции представляют собой сокращенную форму записи вызова функции. Вместо того, чтобы объявлять лямбда-выражение и передавать его как аргумент функции, можно использовать ссылку на существующий метод. Например, у нас есть класс Person с методом getName():

сокращенную форму записи вызова функции. Вместо того, чтобы объявлять лямбда-выражение и передавать его как аргумент функции, можно использовать ссылку на существующий метод. Например, у нас есть класс Person с методом getName():

class Person(val name: String) {
fun getName(): String = name
}

Тогда мы можем использовать указатель на метод getName() вместо лямбда-выражения:

val persons = listOf(Person("Alice"), Person("Bob"))
val names = persons.map(Person::getName)

2. Bound callable references

Bound callable references (привязанные ссылки) — это то же самое понятие, что и указатели на методы, но в случае, когда метод вызывается на экземпляре класса. В этом варианте мы можем использовать ссылку на метод, связанную с конкретным экземпляром класса. Для создания привязанной ссылки на метод используется следующий синтаксис: ::.

Допустим, что у нас есть экземпляр класса person типа Person. Тогда мы можем использовать ссылку на метод getName() для получения его имени:

2. Bound callable references

Bound callable references (привязанные ссылки)
— это то же самое понятие, что и указатели на методы, но в случае, когда метод вызывается на экземпляре класса. В этом варианте мы можем использовать ссылку на метод, связанную с конкретным экземпляром класса. Для создания привязанной ссылки на метод используется следующий синтаксис: <object_name>::<method_name>.

Допустим, что у нас есть экземпляр класса person типа Person. Тогда мы можем использовать ссылку на метод getName() для получения его имени:

val person = Person("Alice")
val name = person::getName

Здесь name будет ссылаться на метод getName() объекта person.
Kotlin Developer
24 апреля 2024 г. 11:05
🚀 Подключайся к Usetech Mobile MeetUp (UMM) #1

Не попал на весенние конференции по мобильной разработке или не удалось задать вопросы экспертам? 6 мая в 15:00 по Мск присоединяйся к первому онлайн-митапу по мобильной разработке от ГК Юзтех. 

🔥 В программе:

🔊«SwiftUI сейчас. Стек, советы, рекомендации» Анна Жаркова, лид мобильной разработки в ГК Юзтех

🔊 «НЕмультиплатформенные привычки Android разработки» Алексей Панов, техлид инфраструктуры мобильных приложений в Контур

🔊 «Пять лет с Flutter: эволюция кроссплатформенности» Евгений Сатуров, руководитель команды Flutter-разработки в SURF

Регистрируйся на митап по ссылке

🤩 Авторы самых интересных вопросов получат фирменных юзтех-уточек в подарок!

Реклама. ООО "ЮЗТЕХ ПРОФЕШНЛ". ИНН 7717745183.
Kotlin Developer
23 апреля 2024 г. 8:32
Koin: Простой и легковесный фреймворк для внедрения зависимостей

Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.

В то же время, хотя Spring Framework и является широко распространенным выбором, он далеко не всем подходит. Некоторым было бы предпочтительнее использовать более простые и легковесные фреймворки с продвинутой поддержкой асинхронных операций ввода-вывода. Другие были бы признательны за статическое разрешение зависимостей для более быстрого запуска приложения.

Читать статью
Читать статью
Kotlin Developer
22 апреля 2024 г. 13:34
🔥 Пройди тестПройди тест по Kotlin QA и проверь свои знания.

Ответишь — пройдешь на продвинутый курс «Kotlin QA Engineer» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

👉  ПРОЙТИ ТЕСТ:  
https://clck.ru/3ABEtm?erid=LjN8JvK8k
Kotlin Developer
22 апреля 2024 г. 9:44
Как работают SAM-conversions?

Single Abstract Method (SAM) интерфейсы — это интерфейсы только с одним абстрактным методом (функциональные интерфейсы). Kotlin поддерживает соглашение SAM — автоматическую конвертацию функций и lambda между Kotlin и Java.

SAM-conversions позволяют использовать Java-интерфейсы с единственным абстрактным методом в Kotlin, как если бы это были функциональные типы. В Kotlin вы можете использовать такие интерфейсы для создания лямбда-выражений без явного определения функционального типа.

При использовании интерфейса с единственным абстрактным методом в качестве функционального интерфейса в Java, вы можете передавать его экземпляры вместо лямбда-выражений. Это тоже возможно в Kotlin, но на самом деле Kotlin предоставляет более простой синтаксис для этого. Когда вам нужно использовать функциональный интерфейс в Kotlin, вы можете передать lambda-выражение, которое соответствует сигнатуре единственного метода интерфейса, вместо экземпляра интерфейса. Компилятор сам преобразует лямбда-выражение в экземпляр интерфейса, используя функцию-расширение метода invoke интерфейса. Пример:

interface OnClickListener {
fun onClick(view: View)
}

class Button {
fun setOnClickListener(listener: OnClickListener) {
// ...
}
}

val button = Button()
button.setOnClickListener { view ->
// обработка нажатия кнопки
}

В этом примере мы определяем интерфейс OnClickListener с единственным абстрактным методом onClick. Затем мы создаем класс Button, который может иметь слушатель, реализующий данный интерфейс. После этого мы создаем экземпляр Button и передаем лямбда-выражение с соответствующей сигнатурой в качестве слушателя. Компилятор автоматически преобразует это лямбда-выражение в экземпляр интерфейса OnClickListener, используя функцию-расширение invoke интерфейса.
Kotlin Developer
15 апреля 2024 г. 13:01
✅ Какие навыки необходимы для эффективного тестирования на Kotlin?

Получите их на бесплатном открытом уроке «Использование KSP2 для тестирования на Kotlin» в рамках курса «Kotlin QA Engineer» от OTUS

🔹На вебинаре мы погрузимся в мир новой версии Kotlin Symbol Processing - KSP2. Рассмотрим принципы анализа исходных текстов и кодогенерации на KSP (PSI-дерево) и обсудим возможности ее применения для генерации тестовых данных и сценариев.

👉 Регистрация
https://otus.pw/7Pwn/?erid=LjN8KHUvr
Kotlin Developer
15 апреля 2024 г. 10:06
Что такое функциональный тип, какие у него ограничения?

Язык Kotlin допускает объявлять тип анонимных функций или лямбда выражений — функциональный.

Функциональный тип — это тип данных, который позволяет работать с функциями как с обычными объектами, передавать функции в качестве аргументов и возвращать их из функций. Синтаксис функционального типа в Котлин представлен списком типов параметров, разделенных запятой, затем оператором -> и типом возвращаемого значения функции.

Пример функционального типа: (a: Int, b: Int) -> Int
Здесь функциональный тип описывает функцию с двумя параметрами типа Int и возвращаемым значением типа Int.

Функциональный тип может быть использован для создания переменных, которые могут хранить ссылки на функции. А также поддерживает перегрузку, что позволяет иметь несколько функций с различными сигнатурами, но с одинаковым именем.

Ограничения функционального типа:

• Тип передаваемой функции должен быть определен явно, чтобы компилятор мог проверить типы аргументов и возвращаемых значений.
• Функциональный тип может содержать только один тип возвращаемого значения.
• Функциональный тип не может содержать более 22 параметров из-за ограничения JVM.
• Функциональный тип не поддерживает неявные преобразования типов.

Несмотря на эти ограничения, функциональные типы позволяют обрабатывать функции как объекты, что повышает гибкость и выразительность кода. Пример определения функционального типа:

Ограничения функционального типа:

• Тип передаваемой функции должен быть определен явно, чтобы компилятор мог проверить типы аргументов и возвращаемых значений.
• Функциональный тип может содержать только один тип возвращаемого значения.
• Функциональный тип не может содержать более 22 параметров из-за ограничения JVM.
• Функциональный тип не поддерживает неявные преобразования типов.

Несмотря на эти ограничения, функциональные типы позволяют обрабатывать функции как объекты, что повышает гибкость и выразительность кода. Пример определения функционального типа:

// определение функционального типа
typealias Operation = (Int, Int) -> Int

// использование функционального типа
fun calculate(op: Operation, a: Int, b: Int): Int {
return op(a, b)
}

// пример вызова функции calculate
val sum: Operation = { x, y -> x + y }
calculate(sum, 10, 5) // результат: 15

Код из примера определяет функциональный тип Operation, который представляет собой функцию, принимающую два аргумента типа Int и возвращающую значение типа Int. Затем создается функция calculate, которая принимает три параметра: функцию op типа Operation и два аргумента типа Int. Внутри функции calculate вызывается переданная функция op с переданными аргументами a и b, и результат возвращается из функции calculate. В конце кода создается переменная sum, которая содержит лямбда-выражение, реализующее операцию сложения. Далее вызывается функция calculate с параметрами sum, 10 и 5, что приводит к вызову функции sum с аргументами 10 и 5, и результатом является число 15.
Kotlin Developer
11 апреля 2024 г. 17:51
Call for papers: открыт приём заявок на Yandex BDUI Conf

На Yandex BDUI Conf обсуждаем, как с помощью бэкенда делать красивые и функциональные приложения. Если вы готовы поделиться своим опытом работы с BDUI — приходите выступать на конференции Яндекса и Яндекс Маркета!

В этом году открыт приём докладов на 2 трека:

🔸 Продуктовый — для тех, кто использует готовые фреймворки

🔸 Инфраструктурный — для тех, кто разрабатывает собственные фреймворки и новые решения

Конференция пройдёт 22 июня в Москве.

Узнать подробности о конференции и подать заявку до 22 апреля можно здесь
Kotlin Developer
11 апреля 2024 г. 17:26
Kotlin Multiplatform в ОС Аврора

В данной статье описана работа ОС Аврора с технологией Kotlin Multiplatform. Рассматривается метод подключения модуля Kotlin Multiplatform к приложению на Qt/QML. Для демонстрации было портировано уже существующие демо приложение "KMM RSS Reader". Проведены тесты производительности.

Читать статью
Читать статью
Kotlin Developer
10 апреля 2024 г. 13:01
Начинать путь в мобильной разработке непросто даже тем, кто уже работает в IT.

В своём канале Илья, android-разработчик с 10-летним стажем, даёт ценные советы о том, какой минимальный набор знаний библиотек и подходов нужен, чтобы устроиться на работу.

Важные плюсы android-разработки на Kotlin в том, что тут всегда много вакансий, а язык можно освоить за месяц, и пригодится он в том числе и в backend.

Подписывайтесь на канал Ильи и получите пошаговый план развития с нуля до Junior.
Также в канале вас ждут лучшие практики, лайфхаки и советы по рефакторингу.
Kotlin Developer
10 апреля 2024 г. 11:51
Kotlin: взгляд изнутри — преимущества, недостатки и особенности

Всем привет! На связи Сергей Керенцев, Android-разработчик Студии Олега Чулакова на проектах Сбера.

В данной статье мы углубимся в мир Kotlin, рассмотрим его основные преимущества, недостатки и особенности. Мы обойдем такие важные аспекты, как безопасность работы с null-значениями, гибкость типизации с помощью Generics, возможности расширения функциональности с помощью extension-функций, inline-функции, а также многое другое.

Давайте начнем наше увлекательное путешествие в мир Kotlin и раскроем его потенциал!

Читать статью
Читать статью
Kotlin Developer
8 апреля 2024 г. 17:30
Приглашаем мобильных и бэкенд-разработчиков на Яндекс Go Day&Night

Конференция в двух частях: днём делимся докладами о мобильной и бэкенд-разработке, а после заката устраиваем тусовку.

Формат: Офлайн
Дата и время: 20 апреля, 14:00 - 02:00

Бесплатно. Регистрация обязательна. Заявки проходят модерацию, количество мест ограничено.

Подробнее

Реклама. ООО «Яндекс.Такси» ИНН 7704340310
Kotlin Developer
8 апреля 2024 г. 8:07
Промежуточные (intermediate) и терминальные (terminal) операции в Sequences

Sequence представляет собой последовательность элементов, которые можно обрабатывать по одному или несколько штук сразу. Обработка элементов Sequence происходит с помощью функций высшего порядка, которые называются операциями.

Операции над Sequence можно разделить на две категории: промежуточные (intermediate) и терминальные (terminal).

Промежуточные операции (intermediate) — это операции, которые возвращают новую Sequence.

Они не выполняются немедленно, а лишь формируют новую последовательность элементов на основе исходной. Промежуточные операции не приводят к запуску вычислений, а готовят данные для последующих операций. Примеры:

filter(predicate: (T) -> Boolean): фильтрует элементы по заданному условию и возвращает новую Sequence

map(transform: (T) -> R): преобразует каждый элемент в новый элемент типа R и возвращает новую Sequence

sortedBy(selector: (T) -> R?): сортирует элементы по заданному ключу и возвращает новую Sequence

Терминальные операции (terminal) — это операции, которые выполняются немедленно и возвращают результат (не Sequence).

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

toList(): преобразует Sequence в список

toSet(): преобразует Sequence в множество

count(): возвращает количество элементов в Sequence

forEach(action: (T) -> Unit): выполняет действие для каждого элемента Sequence

ВАЖНО: вычисления запускаются только при вызове терминальной функции (до этого момента никаких вычислений не производится).
Kotlin Developer
5 апреля 2024 г. 12:01
Стань частью Android-комьюнити Surf

В канале Surf Android Team разработчики приложений «Лабиринт», «Магнит», «Ригла» и других делятся лучшими практиками и больными шишками из опыта работы с Kotlin, Java и нейросетями.

Вот подборка полезных постов из канала:
➡️ Как сделать Lottie-анимации
➡️ Дорожная карта Junior Android-разработчика
➡️ Как реализовать автовставку кода из SMS через SMS User Consent API

Surf активно расширяет Android-комьюнити и ждёт вас в канале, чтобы делиться интересными кейсами и быть на одной волне актуальных технологий.

🟢 Подписывайтесь по ссылке → @surf_android
Kotlin Developer
4 апреля 2024 г. 17:51
Все, что вам нужно знать о Kotlin Multiplatform

Kotlin Multiplatform — это набор для разработки программного обеспечения, который значительно лучше других вариантов разработки кроссплатформенных приложений. В этом руководстве по Kotlin multiplatform вы подробно узнаете все об этом наборе.

Читать статью
Читать статью
Kotlin Developer
4 апреля 2024 г. 11:00
Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.

Ближайшее Fast Track мероприятия:

• 20–21 апреля — Fast Track для Java-, Kotlin-, Scala-, Go-разработчиков и тех, кто готов перейти на эти языки программирования, офер за 2 дня в команду Вертикалей.

Зарегистрироваться
Kotlin Developer
4 апреля 2024 г. 8:41
Какие коллекции есть в Kotlin?

Коллекция
Коллекция — это объект, содержащий в себе набор значений одного или различных типов, а также позволяющий к этим значениям обращаться и извлекать. Другими словами — это контейнер, в который вы можете помещать то, что вам нужно, а затем каким-либо образом с ним взаимодействовать. В Kotlin есть три типа коллекций:

• List (список). Упорядоченная коллекция, в которой к элементам можно обращаться по их индексам. Идентичные элементы (дубликаты) могут встречаться в списке более одного раза. Примером списка является предложение: это группа слов, их порядок важен, и они могут повторяться.

• Set (множество/набор). Неупорядоченная коллекция без повторяющихся значений. Примером множества является алфавит.

• Map (словарь/ассоциативный список). Набор из пар "ключ-значение". Ключи уникальны и каждый из них соответствует ровно одному значению. В коллекции могут присутствовать повторяющиеся значения, но не повторяющиеся ключи. Пример — ID сотрудников и их должностей. Map не является наследником интерфейса Collection.

Два типа интерфейсов, на основе которых создаются коллекции:

1. Неизменяемый (read-only) — дают доступ только для чтения (Set, List, Map, Collection).

2. Изменяемый (mutable) — расширяет предыдущий интерфейс и дополнительно даёт доступ к операциям добавления, удаления и обновления элементов коллекции (
три типа коллекций:

List (список). Упорядоченная коллекция, в которой к элементам можно обращаться по их индексам. Идентичные элементы (дубликаты) могут встречаться в списке более одного раза. Примером списка является предложение: это группа слов, их порядок важен, и они могут повторяться.

Set (множество/набор). Неупорядоченная коллекция без повторяющихся значений. Примером множества является алфавит.

Map (словарь/ассоциативный список). Набор из пар "ключ-значение". Ключи уникальны и каждый из них соответствует ровно одному значению. В коллекции могут присутствовать повторяющиеся значения, но не повторяющиеся ключи. Пример — ID сотрудников и их должностей. Map не является наследником интерфейса Collection.

Два типа интерфейсов, на основе которых создаются коллекции:

1. Неизменяемый (read-only) — дают доступ только для чтения (Set, List, Map, Collection).

2. Изменяемый (mutable) — расширяет предыдущий интерфейс и дополнительно даёт доступ к операциям добавления, удаления и обновления элементов коллекции (MutableSet, MutableList, MutableMap, MutableCollection).
Kotlin Developer
1 апреля 2024 г. 11:30
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF.

20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.

Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.

Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.

Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля

erid:2VtzqvGAFhf
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Kotlin Developer
29 марта 2024 г. 14:01
#вакансия #job #vacancy #remote #parttime #преподаватель #educator #QA #Kotlin

Время делиться знаниями!

Компания: OTUSOTUS – образовательная платформа. За более чем 6 лет работы мы создали более 170 авторских курсов для IT-специалистов разного уровня от Junior до Senior. Практически на каждом нашем курсе есть вступительное тестирование для наших студентов, плюс более 650 преподавателей-практиков из крупнейших компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом и обсуждаем новости как в преподавании, так и в IT.

Вакансия: преподаватель онлайн-курса «Kotlin QA Engineer»«Kotlin QA Engineer» (интересные темы по программе курса и нагрузку можно выбирать).

Эта вакансия будет интересна разработчикам и инженерам по тестированию на Kotlin c практическим опытом в разработке на Kotlin от 1 года. Можно без опыта преподавания. Мы с удовольствием поможем Вам освоить Best Practices преподавания: для этого у нас есть вводный курс по преподаванию и пробные уроки с методистом.

Преподаватель раскрывает тему урока с помощью теории и примеров из практики.

Условия:
✅ удаленное сотрудничество, занятость part-time.
✅стандартное занятие длится 1,5 часа с 20:00 до 21:30 по МСК.
✅ уроки проводятся в онлайн формате в Zoom.
✅ на занятиях используется презентация с теорией и практические примеры, чтобы раскрыть тему урока.
✅ наши методисты помогают освоить лучшие инструменты и практики преподавания.

Еще Вы сможете:
✅ внести свой вклад в развитие IT
✅ структурировать свой опыт и знания.
✅ развивать личный бренд.
✅ прокачать софт-скиллы.
✅ получать от 4000 до 6000 руб. за один вебинар (полтора часа) + отдельно оплачивается проверка ДЗ и другие активности, в которых можно по желанию участвовать.

Бонусы:
✅ наши курсы со скидкой/бесплатно.
✅ возможность приглашать в свою команду на работу лучших выпускников.
✅ воркшопы и конференции для наших преподавателей.

Подробнее в telegram: @ElenaAlias