Как стать автором
Поиск
Написать публикацию
Обновить
60

Kotlin *

Статически типизированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Создание простого калькулятора в android studio

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров28K

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

Читать далее

Как распараллелить тесты с базой данных

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.5K

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

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

Читать далее

Хроники пикирующего бота или как важно не пропускать стадию QA в проектах

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.1K

Эта статья должна была рассказать вам о проекте простого телеграм-бота, который заточен на одно простое действие: мониторинг доступности сайтов. Но, опубликовав MVP и представив проект на публику, мы заранее не провели полный объем необходимых тестов, в самый ответственный момент не смогли быстро всё исправить и вместо восторженных отзывов аудитории получили порцию хейта. Поэтому мы решили не делать из статьи пиар-акцию, а просто ещё раз напомнить всем стартапам, да и вообще программистам, отделам и командам о важности каждого этапа разработки.

Читать далее

Следование style guide для .proto файлов с помощью protolint в GitHub Actions

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2K

В этом посте я расскажу, как настроить protolint для проверки .proto файлов на соответствие официальному style guide в GitHub Actions и поделюсь практическим опытом его использования.

Читать далее

Мигрируем Java Spring Boot приложение на Kotlin

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.2K

Доброе время!

Немного статистики по Kotlin: по недавней выборке на hh.ru в вакансиях "программист, разработчик" по слову Java и Kotlin почти треть вакансий (а в некоторых регионах больше) требуют владения Kotlin. А по последнему  отпросу от AZUL 2023 47% организаций используют Kotlin. Таким образом освоив Kotlin и добавив в резюме репозиторий с проектом на нем вы получите на 30% больше возможностей!

Как известно, лучший способ выучить новый язык программирования - это пройти курсы сделать на нем проект. Для Java программистов на мой взгляд самый простой и эффективный способ - взять собственный небольшой Spring Boot REST API проект и сделать его миграцию.

В рамках наших курсов "Из Middle в Senior" (см. предыдущий пост по курсу «Работа с документами в Java») я выпустил новый курс Spring Boot REST API приложение на Kotlin и хочу поделиться здесь особенностями миграции и полезными ссылками для тех, кто захочет это сделать самостоятельно. Статья в помощь тем, кто решил мигрировать на Кotlin свой Java проект, НЕ для изучения основ Kotlin.

Итак, приступим:

Обеспечение обратной совместимости gRPC API с помощью protolock в GitHub Actions

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2K

В этом посте я поделюсь с вами подробной инструкцией по настройке автоматической проверки обратной совместимости gRPC API с помощью protolock в GitHub Actions.

Читать далее

Android. Принять себя или Cookie?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров11K

Печенья, кеки, кукисы, ку-ку, кексы… нет, куки!

– Cookie — это что? 

– Почему их не нужно принимать?

– Безопасно ли это?

– CookieJar, CookieManager, CookieStore… WebView?

А также истории про то, как жить с cookie в большом приложении, и сколько эмоций вы испытаете, если в вашем приложении есть WebView.

Читать далее

Эффективное создание и деплой gRPC API с помощью GitHub Actions и Packages для проекта на Kotlin и React

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.1K

В этом посте я покажу, как с помощью GitHub Actions легко реализовать генерацию и публикацию gRPC API пакетов в GitHub Packages, в реестрах Apache Maven и npm. Если вы хотите освоить GitHub Packages для своих проектов и научиться генерировать gRPC API для сервисов на Kotlin/Java и gRPC-web клиентов — добро пожаловать под кат.

Читать далее

Обзор актуальных инструментов шифрования в Android

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров8.9K

Привет, Хабр! Меня зовут Артур Илькаев, я работаю в департаменте экосистемных продуктов, мы разрабатываем VK ID SDK и все что связано с авторизацией и сессиями, в частности — мультиаккаунт.

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

Читать далее

Kotlin Multiplatform в мобильной разработке. Рецепты общего кода для Android и iOS

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров12K

Kotlin Multiplatform — технология, которая позволяет использовать общую кодовую базу для бизнес-логики приложений разных платформ и писать платформенный код только там, где это необходимо. Хотя последнее время о ней много и часто говорят, найти информацию о нюансах внедрения KMP в проекты довольно сложно. В этом мы убедились лично, когда пытались разобраться, что и как именно можно безболезненно выносить в common-модуль. 

Читать далее

Kotlin под капотом: inline функции

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров23K

Многие разработчики не понимают в чем профит от использования inline функций и в каких случаях их нужно использовать. Для чего нужен crossinline и как работает reified. Разбираемся как это работает на уровне байткода, в котором хорошо видно всю суть inline функций kotlin.

Читать далее

Микросервисы на основе событий с Kafka Streams и Spring Boot

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров20K

Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике.

Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.

Читать далее

API vs ABI: разницу видят не только лишь все

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.9K

Привет, дорогой читатель! Думаю, ты точно знаешь, что такое API и как сделать, чтобы твои изменения были API-совместимыми. На самом деле я сам никогда не задумывался, что существует ABI-совместимость, до момента, пока не столкнулся с разработкой библиотеки.

У нас в компании есть библиотеки, которые используются несколькими проектами. При разработке этих библиотек мы всегда думали об API-совместимости, но не задумывались о вопросе ABI-совместимости, а это довольно важный вопрос. В статье расскажу, почему этот тема стоит вашего внимания.

Читать далее

Ближайшие события

Kotlin под капотом: нюансы использования аннотаций

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров7.5K

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

Читать далее

Пишем Kotlin DSL для графов навигации в домашних условиях

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров5.3K

Всем привет! Я Тимур, лид одной из android-команд. Больше трех лет работаю в Тинькофф, все это время был в привлечении и занимался флоу получения разных банковских продуктов.

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

Читать далее

Статический анализатор Ktlint для Kotlin в Android

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6K

Kotlin — это статически типизированный язык программирования на основе JVM, разработанный компанией JetBrains. Он был представлен Google в первую очередь для создания мобильных приложений на платформе Android. Используя Kotlin, разработчики могут писать код быстрее и более качественно. Тем не менее, как и в случае с любым другим языком программирования, важно соблюдать набор правил, чтобы обеспечить высокую производительность и читаемость кода.

Читать далее

Подходит ли data class для JPA entity?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров3.8K

Использовать data class для JPA Entity оправдано, если id записи генерится на стороне приложения и избыточно, если id генерится на стороне базы данных, так как придется переопределять методы equals и hashcode.

Подробнее

JUnit 5 Extensions — практическое руководство (часть 1)

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.1K

Привет. В Рунете материала по JUnit 5 Extensions сегодня немного, и довольно часто он ограничивается переводом документации (в редких случаях - постов с зарубежный ресурсов). Поэтому было решено исправить сей недостаток.

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

В качестве языка программирования я выберу Kotlin...

Читать далее

Kotlin Multiplatform перешёл в stable. Что это значит?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.3K

Привет! Меня зовут Максим, я руководитель мобильной разработки в KTS.

1 ноября состоялся релиза Kotlin 1.9.20, beta компилятора k2. 

Но для нас интереснее глобальное изменение статуса KMP. Мы используем эту технологию в мобильной разработке и написали про неё несколько статей.

В статье подробнее рассмотрим, что изменилось в технологии с переходом в релиз.

Читать далее

Можно ли обойтись без нативных языков, разрабатывая на Flutter и RN?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.8K

Привет! Меня зовут Дима, я разрабатываю мобильные приложения на Flutter в Пиробайт. Все чаще мне приходится сталкиваться с задачами, в которых требуется обращение к нативному API устройства.

Пакетов на pub.dev для решения этих задач мне всегда хватает. Но бывают моменты, когда пакет работает не так, как надо, либо требует сложной настройки для работы. Поэтому я стал заглядываться на изучение нативных языков, дабы уметь внедрять их в проект и не зависеть от других пользователей, которые пишут пакеты на Flutter (или хотя бы знать, как исправлять за ними ошибки в коде).

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

Читать далее