Все потоки
Поиск
Написать публикацию
Обновить
53.63

Kotlin *

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

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

Что нового в Spring Framework 6.2, Spring Boot 3.4 и каковы планы на будущее?

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

Команда Spring АйО перевела статью InfoQ, посвящённую новым версиям Spring Framework и Spring Boot. В статье обсуждаются улучшения последних релизов, анонс следующего поколения Spring, запланированного на 2025 год, а также ответы на вопросы редакции InfoQ от руководителя проекта Spring Framework Юргена Хёллера и контрибьютера Spring Framework core Себастьяна Делюза.

Читать далее

Что нового в Spring Boot 3.4

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

Недавно состоялся релиз Spring Framework 6.2, вслед за ним последовал релиз Spring Boot 3.4.

Команда Spring АйО подготовила перевод статьи Josh Long об основных изменениях и улучшениях, которые вошли в последний релиз.

Читать далее

Compose Web здорового человека

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

Рассказываю про то, про что нельзя говорить (по мнению JB) — Compose HTML. О том, как эта библиотека была Compose Web, как стала Compose HTML, что и как там можно делать и про основные проблемы — всё по‑возможности кратко (надеюсь :) )

Ну-ка, что там?

Пишем Android приложение для фильтрации спам-звонков

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

Всем привет! Меня зовут Иван Чечиков. В этой статье я расскажу о своем пет-проекте - Android приложении, которое может идентифицировать нежелательные входящие звонки.

Подробности – под катом.

Читать далее

От кода к смыслу: улучшенная панель Structure в IntelliJ IDEA 2024.3

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

Совсем недавно вышла IntelliJ IDEA 2024.3 – последний мажорный релиз IDE в этом году. И одним из самых важных нововведений этой версии стала улучшенная панель Structure. 

Команда Spring АйО перевела статью Siva Katamreddy (Developer Advocate в JetBrains), в которой Siva рассказывает, как улучшенная панель помогает решать задачи, и делится историей создания этой функциональности.

Читать далее

Гайд по реализации паттерна Composite в Kotlin с sealed-классами и корутинами

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

Привет, Хабр! Сегодня рассмотрим, как реализовать паттерн Composite в Kotlin с помощью sealed-классов и корутин. Если у вас есть сложная система с кучей объектов — простых и составных — и вы хотите управлять ими, не теряя асинхронности, то этот гайд для вас.

Читать далее

Версионирование эндпоинтов — это просто

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

Команда Spring АйО перевела и адаптировала доклад "Endpoint versioning made simple" Бауке Найхаус (Bouke Nijhuis) с последнего Devoxx Belgium. 

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

Читать далее

Паттерны проектирования на языке Kotlin (часть 2)

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

Паттерны проектирования на языке Kotlin

Это вторая часть статьи. Первая её часть здесь.

Поведенческие паттерны

Читать далее

Избавляемся от Android в api-модулях

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

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»

На решение, которое будет описано ниже, меня натолкнула статья Оптимизация Gradle: избавляемся от Android-модулей. В ней приведен синтетический бенчмарк, из которого видно, что количество gradle-модулей с Android-плагином негативно влияет на скорость конфигурации проекта, а также на количество необходимой памяти. Мы, как инженеры, должны воспользоваться каждой возможностью ускорить сборку проекта. Однако в статье приведено несколько недостатков описанного подхода, и на момент написания статьи они были критичными и не давали возможности использовать его в нашем проекте. 

Итак, теперь сначала..

Читать далее

Работа с CoordinatorLayout: шапочный разбор

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

Приветствую тебя, уважаемый читатель! Меня зовут Пятаков Никита, я Android-инженер в команде MT&S Авито. Здесь я делюсь опытом реализации двух версий шапки на главном экране приложения Avito. Эта статья будет особенно полезна разработчикам, которые хотят познакомиться с CoordinatorLayout и научиться делать похожие задачки с нетривиальным взаимодействием view между собой. 

Читать далее

Готовим лоб к пробитию стен: как Android-разработчику найти первую работу в 2025-м

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

Привет, друзья!

Я Илья Попов, действующий senior android разработчик, ментор начинающих андроид-разработчиков и автор телеграм-канала Android Dev Notes.

Итак, вы приняли решение стать андроид-разработчиком. Как найти дорогу в этом океане неизвестного впереди?

Раз наша цель – работа в андроид-разработке, то первое, что нужно сделать – изучить рынок вакансий и понять, а что от вас вообще нужно работодателям?

Идём на основные сайты для поиска работы (hh, superjob, career.habr, geekjob, getmatch и тд) и анализируем пару десятков вакансий джуниоров и то, какие требования в них фигурируют чаще всего. Составляем себе список навыков, библиотек, фреймворков, инструментов для освоения.

Следующее, с чем надо определиться: к какому из пунктов приступать первым? Здесь два варианта:

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

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

Эта программа не будет высечена на камне – нам может потребоваться её изменять, а часто придётся импровизировать и отходить от неё. Но мы теперь не плывём в океане наудачу – у нас есть маяк. А дальше дело за малым – поднимаем якорь, надуваем паруса и вступаем на тернистый, но интересный путь разработчика!

Читать далее

Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая

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

Другие статьи из серии:
1. Почему MVx архитектуры всегда получаются плохо
2. Как поправить 3 проблемы MVx архитектур
3. Кроссплатформенная архитектура ядра приложения. Простая. Линейная. Масштабируемая
4. Т-функция: подключаем логику к UI как к БД


Описание проблемы


Задача


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



Я смотрю на это всё и вижу: вот экраны, эти данные на них — статические, а вот эти динамические, значит их надо откуда-то взять; вот тут интерактивные компоненты: при взаимодействии с ними надо что-то сделать. Иногда просто открыть другой экран или виджет, иногда выполнить логику. Исходя из этого я проектирую то, как будет выглядеть логика фичи. Описываю ее в компонентах архитектуры, разбиваю на задачи, узнаю где и как взаимодействовать с сервером, и прочее.


Скрытые кейсы


Но потом я обнаруживаю, что далеко не все переходы такие простые, как нарисовано на дизайне, например, как в случае с авторизацией. Не все явно присутствуют, как, например, переходы назад. А в некоторых случаях не хватает всевозможных экранов ожидания, экранов “пустых” состояний и экранов ошибок.


Знакомо?

Читать дальше →

Паттерны проектирования на языке Kotlin (часть 1)

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

Паттерны проектирования - проверенные временем решения общих задач в программировании. Они разделяются на три категории:

Читать далее

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

Spring Framework 6.2.0: переопределение бинов в тестах

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

Недавно вышел Spring Framework 6.2, который включил в себя множество улучшений и новых возможностей. К одним из них можно отнести переопределение бинов в тестах.

В новом переводе от команды Spring АйО вы узнаете как можно использовать @TestBean, @MockitoBean и @MockitoSpyBean для переопределения бинов в тестах.

Читать далее

Test-Driven Development: как полюбить модульное тестирование

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

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

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

И об этом мы поговорим в статье ниже.

Мы разберём страхи, останавливающие разработчика перед тем, чтобы начать, наконец, писать тесты. Выявим очевидные преимущества. Обсудим основные правила разработки через тестирование. И подкрепим всё это реальными примерами.

Читать далее

«Приключение на 20 минут: взял и поменял язык». Личный опыт перехода на Kotlin

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

Зовут меня Артемий, я разработчик в компании i-Digital. Еще в начале своего карьерного пути выбрал для себя основным языком Python и развивался по большей части в нем. В какой-то момент начал преподавать его молодому поколению разработчиков в частных студиях, а заодно брать студентов на личное обучение.

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

Читать далее

Сборка мусора в Java. Часть 2. Прогресс со времени выхода JDK 8

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

Команда Spring АйО перевела и адаптировала доклад "Garbage Collection in Java: The progress since JDK 8" Стефана Йоханссона(Stefan Johansson) с последнего Devoxx Belgium.

Доклад получилось поделить на две статьи:

* В первой мы рассказали про основы работы сборки мусора в Java и различных сборщиках мусора

* Вторая часть посвящена сравнению производительности сборщиков и их прогрессу с момента выхода JDK 8

Читать далее

Классы без лишнего веса: инлайн-классы в Kotlin

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

В этой статье поговорим о Kotlin и его инлайн‑классах. Честно говоря, когда я впервые услышал об этой фиче, подумал: «Опять что‑то выдумали, чтобы жизнь медом не казалась». Но, разобравшись, понял, что это очень даже полезная штука.

Читать далее

Поддержка RestClient для OAuth2 в Spring Security 6.4

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

Команда Spring АйО перевела статью, в которой Steve Reisenberg рассказал о множестве полезных улучшений для работы с OAuth2 в Security 6.4. 

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

Читать далее

Как силами мобильных разработчиков автоматизировать процесс разработки

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

Всем привет! Меня зовут Женя Мельцайкин, я старший инженер-программист в компании Контур. Большую часть времени в Контуре я работал и работаю Android-программистом, но статья будет не про Android и даже не про мобильную разработку. А про команду мобильной разработки и про наш процесс разработки! Давайте же начнем разбираться, причем тут мобильные разработчики, автоматизация и бэкенд.

Читать далее