Kotlin Developer
6.21K subscribers
248 photos
7 videos
341 links
Самый топовый канал по Kotlin

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

Мы на бирже: https://telega.in/c/KotlinSenior
Download Telegram
💻 Anvil — плагин для компилятора Kotlin, облегчающий внедрение зависимостей с помощью Dagger 2

Anvil упрощает внедрение зависимостей в Dagger за счет автоматического объединения модулей Dagger и интерфейсов компонентов. В общем, вместо того чтобы вручную добавлять модули в компонент Dagger и заставлять компонент Dagger расширять все интерфейсы компонента, эти модули и интерфейсы могут быть включены в компонент автоматически, типо того:

@Module
@ContributesTo(AppScope::class)
class DaggerModule { .. }

@ContributesTo(AppScope::class)
interface ComponentInterface {
fun getSomething(): Something
fun injectActivity(activity: MyActivity)
}

// The real Dagger component.
@MergeComponent(AppScope::class)
interface AppComponent


🖥 GitHub

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Задумывались ли, как автоматизация android-разработки может поднять вашу продуктивность?

Подключайтесь к онлайн-конференции Podlodka Android Crew с 16 по 20 сентября! 🛠

🤖 Анна Жаркова из Usetech расскажет, как AI может автоматизировать создание UI в Android и KMP.
🎯 Григорий Шимичев из Dodo Engineering расскажет о продвинутых возможностях detekt и необходимости статического анализа кода.
🚄 Дмитрий Кудренко из Яндекс 360 расскажет, как релизный поезд помогает автоматизировать релизы и улучшить их стабильность.
💬 Круглый стол с экспертами из Авито, Wheely и PlataCard - обсудим лучшие практики организации CI/CD в мобильных командах.

Каждая сессия — это максимум прикладной пользы! Присоединяйтесь и не пропустите возможность узнать больше! https://podlodka.io/droidcrew 🎟
1
Ни одно задание не будет провалено: Spring Boot и Quartz в режиме cluster

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

Читать статью
1
Рыночные данные в кармане: как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi

Если вы хотите написать проект, связанный с рыночными данными или торговлей на бирже, и вы знакомы с Java или Kotlin и слышали про Spring Boot, то эта статья для вас

Читать статью
Как сделать Android-приложение быстрее и эффективнее? 

Узнайте на открытом вебинаре 18 сентября в 20:00 мск, где мы разберем:

- как ProGuard/R8 минимизируют, оптимизируют и убирают неиспользуемый код;
- сравнение эффективности ProGuard и R8;
- как внедрять ProGuard/R8 в существующий проект.
Урок особенно полезен для Android-разработчиков с опытом работы от 1 года.

Встречаемся в преддверии старта курса «Специализация Android Developer».
Все участники вебинара получат специальную цену на обучение! 

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие.
Kotlin Object Multiplatform Mapper

Складывается такое впечатление, что дописать свою приложение для Android мне суждено не скоро. Каждый раз начиная писать новую версию (так как старая была написана не до конца, использовалась только мной, а через пару-тройку лет простоя - проще написать заново) своего приложения задуманного еще в 2012 году, я сталкиваюсь с ситуацией, что мне не хватает какого-то функционала и начинаю писать свои библиотеки для этого. В первую попытку это был свой ORM (UcaOrm 1, 2, 3). Во вторую KCron - KMP библиотека, реализующая Cron. И вот, начав следующую итерацию, я вновь в таком же положении. Но обо всем по порядку!

Читать статью
Kotlin Object Multiplatform Mapper: сопоставляем коллекции правильно

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

Читать статью
Автоматизированные инструментальные Espresso-тесты в реальных приложениях

Ждем вас на открытом вебинаре 26 сентября в 20:00 мск, где мы разберем:
- как использовать расширения Espresso для сложных сценариев;
- как тестировать интенты, WebView и механизмы синхронизации;
- основы работы с Espresso-селекторами и списками;
- как тестировать промежуточные состояния и анимации.

Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex, опытный разработчик, DevOps, руководитель и преподаватель. 

Встречаемся в преддверии старта курса «Kotlin QA Engineer». 

Регистрируйтесь, чтобы не пропустить мероприятие.

#реклама
О рекламодателе
1
Управление контейнерами из Kotlin-тестов

Нередко для выполнения тестов требуется запуск вспомогательных сервисов (баз данных, брокеров очередей и др.) и стандартной практикой в подходах DevOps является запуск тестов внутри управляемого окружения, где сначала создается контейнер с JVM, после чего внутри конвейера CI/CD запускаются вспомогательные контейнеры и сборка Kotlin-приложения с точкой входа для запуска тестов. Однако есть и альтернативное решение - запускать вспомогательные тестовые контейнеры непосредственно внутри JUnit-теста. В этой статье мы обсудим несколько различных подходов к управлению контейнерами из тестов для Kotlin-приложений.

Читать статью
1
AndroidFoodRecipesGuideTutorial

В данной статье мы создадим простое приложение для отображения списков блюд на платформе Android с использованием языка программирования Kotlin.

Мы погрузимся в увлекательный мир мобильной разработки и научимся использовать различные технологии, включая RecyclerView для отображения списков, фрагменты для организации интерфейса, и многое другое. Наше приложение будет не только функциональным, но и простым в создании благодаря мощным инструментам, которые предоставляет нам Kotlin и Android SDK.

Давайте вместе разберемся, как создать этот простой, но полезный инструмент, который может быть использован в различных контекстах, будь то кулинарное приложение, список покупок или что-то еще. Погнали!


Читать статью
1
#вакансия #удалённо #parttime #Kotlin #преподаватель

🦉 OTUS ищет преподавателей на онлайн-курс Kotlin Backend Developer. Professional

Мы расширяем команду экспертов (уже более 600 человек) и ищем опытных бэкенд-разработчиков на Kotlin. Преподавательский опыт не обязателен — мы научим вас всему, что нужно!

Обязанности:
- подготовиться к занятиям (темы на выбор, материалы предоставляются);
- преподавать онлайн, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи.

Условия:
гибкий график, легко совмещать с основной работой, занятия в вечернее время;
оплата от 4000 до 6000 руб. за 1,5 часа занятия;
бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, возможность приглашать лучших выпускников в свою команду, бесплатные воркшопы и конференции для наших преподавателей.

Обсудить подробнее: @yu_grin
1
👩‍💻 Inspektify — написанная на Kotlin библиотека для Android и iOS. Она позволяет вам наблюдать за сетью вашего приложения в режиме реального времени прямо на вашем мобильном устройстве

❗️ Эту библиотеку можно использовать только в проектах, использующих Ktor для сетевой коммуникации

🔐 Лицензия: MIT

🖥 Github

@KotlinSenior #kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое функции высшего порядка (higher-order functions), лямбда-выражения (lambda-expressions), анонимные функции (anonymous functions), указатели на методы (method references, bound callable references)?

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

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

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

Указатели на методы - упрощенный синтаксис создания значения функции, вызывающего ровно один метод или обращающегося к свойству.
{p:Person --> p.age} ==Person::age
Научитесь использовать ключевую особенность Clojure на открытом уроке для опытных разработчиков.

Запускайте программу всего один раз и работайте с ней в реальном времени весь процесс разработки.

Приходите на вебинар «Интерактивная разработка на языке Clojure»! Записаться на событие: https://vk.cc/cD2FHG

Вы узнаете:
- Как добавлять новые функции и изменять состояние программы
- Как «прощупывать» любые данные и пошагово отлаживать код.
- Как запускать тесты и подключаться к внешним системам.

Занятие пройдёт 24 октября в 19:00 МСК и приурочено к старту курса «Clojure Developer». После урока вы сможете продолжить обучение по специальной цене и даже в рассрочку!
Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: https://vk.cc/cD2FHG

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Какой толк от inline-функций, как компилируется сама функция и места её использования?

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

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

Если отметить функцию модификатором inline, компилятор не будет генерировать вызов функции в месте её использования, а просто вставит код её реализации.
Поговорим про деньги в IT?

Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные оферы.

Пройти опрос можно здесь
1
Делаю навигацию в приложении на Compose

В статье затрагивается тема межмодульной навигации в приложении написанном с применением Jetpack Compose, Compose Navigation и самописного модуля навигации. Задачи, которые преследуются — это сделать максимально независимые между собой модули фичей, которые могут смело переиспользоваться на разных проектах без постоянных доработок по навигации внутри фичей.

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


Читать статью
⚡️Как создавать собственные DSL и применять их при разработке приложений?

Узнайте на открытом уроке «Возможности Kotlin для создания DSL на примере JsonBuilder»!

📅Дата и время: 31 октября, 19:00 МСК
🔗Записаться на событие: https://vk.cc/cDx8xF

🔍Что вас ждет:
- Погружение в назначение, особенности и практическое применение DSL.
- Практика создания DSL на примере JsonBuilder.
- Обзор возможностей Kotlin, полезных для создания DSL.

👨‍🏫Урок проведёт Евгений Непомнящий, преподаватель OTUS и опытный старший разработчик с многолетним стажем.

📚Это занятие будет полезно всем, кто использует Kotlin или хочет изучать этот язык.

🎓Урок приурочен к старту курса «Kotlin Backend Developer. Professional». После занятия вы сможете продолжить обучение по специальной цене и даже в рассрочку!

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить это интересное мероприятие: https://vk.cc/cDx8xF

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576