Kotlin Developer
6.22K subscribers
253 photos
7 videos
347 links
Самый топовый канал по Kotlin

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

Мы на бирже: https://telega.in/c/KotlinSenior
Download Telegram
Управление контейнерами из Kotlin-тестов

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

Читать статью
Как оптимизировать код приложения с помощью R8?

💻Узнайте на бесплатном практическом уроке от OTUS и Антона Казакова — руководителя направления Android-разработки в Золотом яблоке. На вебинаре разберём:

1. Введение в R8
2. Установку и настройку
3. Оптимизацию производительности
4. Сжатие и уменьшение размера файлов
5. Работу с обфускацией кода

Встречаемся 28 февраля в 20:00 мск в рамках курса «Android Developer. Professional». Доступна рассрочка на обучение!

👉Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/RpjQ/

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

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

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

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


Читать статью
Делаю навигацию в приложении на Compose

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

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


Читать статью
🔝 Как разрабатывать приложения на любом фреймворке?

📡Расскажет Сергей Окатов, кандидат физ.мат наук, руководитель курса Kotlin Backend Developer.Professional на примере Spring и Ktor на открытом уроке от OTUS.

🔥На занятии: 
- узнаем про подход framework-agnostic и зачем он нужен; 
- разработаем приложение на Kotlin/Spring и Ktor;
- выполним интеграцию бизнес-логики в оба приложения;
- проанализируем плюсы и минусы подхода.

‼️Бесплатный урок пройдет 26 февраля в 19:00 по Москве в рамках курса «Kotlin Backend Developer. Professional». Обновленная программа обучения позволит прикоснуться к большому числу инструментов разработки современных, гибких, высокопроизводительных серверных приложений на языке Kotlin. Доступна рассрочка на обучение!

➡️Зарегистрируйтесь и пройдите тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/sRnF/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KERcX
Deep dive into delegated properties: разбираемся с делегатами в котлин

Не так давно решил поглубже изучить официальную документацию котлина, как человек изучивший его, как и многое другое через видосики и практику, решил почитать ее с первой до последней строчки.

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


Читать статью
С чего начать обучение на Android-разработчика?

С бесплатного практического урока «Jetpack Compose: Modifiers» от Максима Качинкина – специалиста Dodo Engineering.

💻В рамках вебинара:

- разберемся с одним из главных элементов Compose — Modifiers;
- поработаем с Constraints и поймем, как они связаны с Modifiers;
- проведем Quizz по Modifiers.

Встречаемся 7 марта в 20:00 мск в рамках курса «Специализация Android Developer». Доступна рассрочка на обучение!

👉Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/zuW1/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Решение проблемы N+1 при работе с Kotlin Exposed

К написанию этой статьи я подошёл после продолжительного использования Kotlin Exposed в рабочих, а также персональных проектах, когда я начал анализировать генерируемые SQL запросы. В тот момент я познакомился с проблемой N+1)

Читать статью
Использование resilience4j со Spring Boot

resilience4j библиотека, предоставляющая набор инструментов для повышения надежности и отказоустойчивости java приложений прежде всего в микросервисной архитектуре

Рассмотрим какие в ней есть инструменты, как их использовать в Spring Boot приложении с помощью аннотаций, как настраивать и есть ли в них подводные камни


Читать статью
🤖 Какие есть технические метрики Android-приложений?

Узнайте на бесплатном практическом уроке от OTUS и Антона Казакова — руководителя направления Android-разработки в Золотом яблоке. На вебинаре разберём:

1. Введение в технические метрики
2. Основные метрики производительности
3. Метрики стабильности и надежности
4. Метрики эффективности использования ресурсов

🔥Встречаемся 13 марта в 20:00 мск в рамках курса «Android Developer. Professional». Доступна рассрочка на обучение!

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/VJIg/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Android Lint: оптимизируем проверку мердж-реквестов

Привет, это Android-разработчик из «МТС Диджитал» Никита Пятаков. Когда я только начал работать над приложением «Мой МТС», мне нужно было время, чтобы адаптироваться и ознакомиться с проектом. На первых МР-ах коллеги подсвечивали готовые решения, которые можно переиспользовать. Когда к нам стали приходить новые разработчики, такие комментарии оставлял уже я. Это натолкнуло меня на мысль, что использование синтаксического анализатора оптимизирует процесс проверки. К тому моменту мы уже использовали Android Lint, так что выбирать не пришлось.

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


Читать статью
💯Освойте профессиональную бэкенд-разработку на Kotlin всего за 5 месяцев. Осталось всего 2 места!🔥

👩‍💻Под руководством опытных экспертов из ведущих международных компаний на онлайн-курсе «Kotlin Backend Developer. Professional» от OTUS.

Обучение идеально подойдет для:
- разработчиков на Java;
- опытных разработчиков на других языках программирования;
- мобильных разработчиков;
- Kotlin бэкенд-разработчиков.

📆Только в феврале вы можете стать студентом курса на самых выгодных условиях. Спешите, осталось всего 2 места на курсе! Пройдите тест прямо сейчас и получите скидку 10% по промокоду «10backend10»: https://otus.pw/Z0Se/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KMCkD
Detekt: как статический анализ помогает улучшить код автотестов

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

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

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

Меня зовут Николай, и я инженер в мобильной платформенной команде Яндекс Еды. В этой статье я расскажу, как мы повышаем качество кода автотестов Android-приложения. И в этом нам помогает статический анализ.


Читать статью
Поговорим про деньги в IT?

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

Пройти опрос можно здесь
Настраиваем кросс-обновления Android-приложений между сторами

Меня зовут Тимофей, я Android-разработчик в Сравни. Давайте поговорим о кросс-обновлении Android-приложений без привязки к конкретному стору – так, чтобы пользователи могли устанавливать из одного источника, а обновлять – из другого, без необходимости удалять и ставить заново.

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

Но первые реальные практические шаги в этом направлении мы сделали в формате
“А что, так можно было?”: пошли выкладывать приложение в RuStore и попутно обнаружили возможности использовать аналогичные механизмы для настройки кросс-обновления.


Читать статью
Интегрируем Kotlin сервис с AI чат-ботом с помощью Spring AI за 5 минут

Чат-боты с генеративным искусственным интеллектом получили широкую известность после релиза ChatGPT в ноябре 2022 года. Сейчас вряд ли найдётся человек, который не слышал про данный инструмент от OpenAI. Именно он вызвал настоящий бум в данной сфере, вынудив конкурентов разрабатывать свои аналоги, чтобы побороться за место на рынке. Таким образом созданная лавина изменений затронула многие языки программирования. Не обошли они и Java-сообщество. Spring Framework, один из наиболее популярных Java фреймворков обзавёлся модулем Spring AI, который обещает упростить разработку приложений с функциями ИИ.

Давайте вместе взглянем на него в деле и опробуем на демо проекте. В данном гайде мы создадим и подключим Kotlin сервис к чат-боту всего за пять минут, используя Spring AI!


Читать статью
Осознанная оптимизация Compose 2: В борьбе с композицией

Jetpack Compose постоянно развивается, открывая перед разработчиками новые горизонты для оптимизации. С момента нашего последнего обзора, мы добились значительного прогресса, сократив задержки при скролле с 5-7% до нуля. В этом материале мы поделимся свежими находками и передовыми практиками в оптимизации Compose. Чтобы максимально углубиться в тему, рекомендуем ознакомиться с первой частью.

Читать статью
🔥С чего начать обучение на Android-разработчика?

С бесплатного практического урока «Jetpack Compose: Modifiers» от Максима Качинкина – специалиста Dodo Engineering.

🤖 В рамках вебинара:

- разберемся с одним из главных элементов Compose — Modifiers;
- поработаем с Constraints и поймем, как они связаны с Modifiers;
- проведем Quizz по Modifiers.

Встречаемся 7 марта в 20:00 мск в рамках курса «Специализация Android Developer». Доступна рассрочка на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/vSQW/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Пару слов о полях и свойствах в Kotlin

Терминология свойств и полей в Kotlin может немного сбивать с толку, потому что технически в Kotlin нет полей. Вы не можете объявить поле. Все — свойства! Однако, во избежании путаницы, я предпочитаю разделять определения полей и свойств на следующей основе — полями являются приватные переменные-члены класса. Это то, для чего выделена память. Свойствами являются публичные или защищенные (protected) функциями геттеры и сеттеры, которые позволяют вам получить доступ к приватным полям.

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

Читать статью
📱 Хочешь быть в курсе последних технологических инноваций и интернет трендов? Присоединяйся к reposted прямо сейчас!

У нас:
🌪️ Горячие новости из мира технологий и интернета;
🌪️ Интересное о будущем технологий и нейросетей;
🌪️ Эксклюзивные посты про IT-и медиа.

💥 Держи руку на пульсе трендов вместе с reposted
Kotlin вместо bash. Прокачиваем автоматизацию на сервере

Для решения задач автоматизации рутинных процессов для системных администраторов и DevOps чаще всего используются или bash-сценарии или python. Первое решение косвенно используется и в описании Dockerfile, поскольку сценарий исполняемых команд принципиально ничем не отличается от запуска скрипта в какой-либо shell, второй подход чаще ассоциируется с автоматизацией, связанных с взаимодействием с хранилищами данных. Но несправедливо было бы обойти стороной возможность создания исполняемых сценариев на языке Kotlin, которые могут стать полноценной заменой bash-сценариям.

В этой статье мы рассмотрим несколько примеров использования Kotlin Scripting (KTS) для автоматизации в распределенной системе, будем использовать долгоживущие скрипты с ожиданием заданий через RabbitMQ, а также поработаем с файловой системой, внешними сервисами, а также попробуем использовать KTS для сборки Docker-контейнеров
.

Читать статью