Создание паттернов креативного дизайна в Kotlin
Этот блог предназначен для тех, кто только начинает изучать паттерны проектирования в Kotlin. Здесь я попытался создать креативные паттерны проектирования с нуля, а не просто предоставить их синтаксис и теорию.
https://proandroiddev.com/creating-the-creational-design-patterns-in-kotlin-319d08fdf9b6
✍️ @kotlin_lib
Этот блог предназначен для тех, кто только начинает изучать паттерны проектирования в Kotlin. Здесь я попытался создать креативные паттерны проектирования с нуля, а не просто предоставить их синтаксис и теорию.
https://proandroiddev.com/creating-the-creational-design-patterns-in-kotlin-319d08fdf9b6
✍️ @kotlin_lib
👍4
Совет
Пример
1- Обычный способ
2- С помощью ifEmpty
3- Максимальное
✍️ @kotlin_lib
ifEmpty
позволяет нам выполнить второе действие, если содержимое нашего значения пусто. Это отличный способ избавиться от if-else
с isEmpty
.Пример
1- Обычный способ
2- С помощью ifEmpty
3- Максимальное
✍️ @kotlin_lib
👍17
Работаем с enum в kotlin/jvm правильно
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур.
https://habr.com/ru/articles/781730/
✍️ @kotlin_lib
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур.
https://habr.com/ru/articles/781730/
✍️ @kotlin_lib
Хабр
Работаем с enum в kotlin/jvm правильно
А вы знали, что HashMap для enum уступает по эффективности EnumMap? Или что EnumSet под капотом это обычный long? Под катом несколько рецептов удобного применения этих структур. Классы над которыми...
👍5
Тюнинг производительности Kotlin: 20 советов
Производительность — это критический показатель, который может привести к успеху или сломать ваше приложение. Хотя Kotlin предлагает множество функций, облегчающих разработку, знание того, как использовать их для повышения производительности, может стать решающим фактором. В этой статье приведены 20 советов, которые помогут вам писать высокопроизводительный код на Kotlin.
https://medium.com/@android-world/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664
✍️ @kotlin_lib
Производительность — это критический показатель, который может привести к успеху или сломать ваше приложение. Хотя Kotlin предлагает множество функций, облегчающих разработку, знание того, как использовать их для повышения производительности, может стать решающим фактором. В этой статье приведены 20 советов, которые помогут вам писать высокопроизводительный код на Kotlin.
https://medium.com/@android-world/kotlin-performance-tuning-20-best-practices-you-should-know-354011076664
✍️ @kotlin_lib
👍5👎1
Media is too big
VIEW IN TELEGRAM
Андрей Данилов — Gradle Kotlin DSL: о чем умолчали в документации
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
источник
✍️ @kotlin_lib
Gradle.kts уже давно не новая технология, но далеко не все на нее перешли. Причины разные: кто-то слышал о плохом перформансе, кто-то пытался мигрировать, но с ходу не вышло. Даже спустя 5 лет после релиза скуповатая на детали документация не проясняет многие кейсы. Андрей постарается исправить эту ситуацию в своем докладе.
Вы узнаете, есть ли вообще причины переходить на kts в 2023 году и насколько все плохо (или хорошо) с перформансом, учитывая что во многих release notes сообщают об ускорениях. Спикер также разберет все проблемы, возникающие как при миграции крупного проекта, так и при интеропе Kotlin/Groovy.
источник
✍️ @kotlin_lib
👍4
Media is too big
VIEW IN TELEGRAM
IntelliJ IDEA Tips and Tricks
Антон Архипов - специалист по работе с разработчиками в команде Kotlin в компании JetBrains. В сферу его профессиональных интересов входят языки программирования и инструментарий для разработчиков. С 2014 года он является чемпионом по Java.
источник
✍️ @kotlin_lib
Антон Архипов - специалист по работе с разработчиками в команде Kotlin в компании JetBrains. В сферу его профессиональных интересов входят языки программирования и инструментарий для разработчиков. С 2014 года он является чемпионом по Java.
источник
✍️ @kotlin_lib
👍3
Kotlin-реализация RecyclerView на Android
У вас есть большой список данных для показа пользователям вашего приложения? Ищете гибкий, удобный для разработчиков и пользователей способ отображения данных?
Тогда RecyclerView — именно то, что вам нужно.
RecyclerView — это расширенная версия ListView, только более мощная и гибкая.
RecyclerView относится к семейству ViewGroup, которое является оптимизированным преемником ListView и GridView.
Как следует из названия, RecyclerView перезапускает верхние элементы списка, которые, уходя за пределы с экрана, становятся невидимыми для пользователя. Например, если пользователь прокрутит список вниз до пункта 6 или 7, то элементы в позиции 1, 2 или 3 будут удалены из памяти. В результате сокращается расход памяти.
https://medium.com/@hrithik481/implement-recyclerview-in-android-with-kotlin-42408c6bf6
✍️ @kotlin_lib
У вас есть большой список данных для показа пользователям вашего приложения? Ищете гибкий, удобный для разработчиков и пользователей способ отображения данных?
Тогда RecyclerView — именно то, что вам нужно.
RecyclerView — это расширенная версия ListView, только более мощная и гибкая.
RecyclerView относится к семейству ViewGroup, которое является оптимизированным преемником ListView и GridView.
Как следует из названия, RecyclerView перезапускает верхние элементы списка, которые, уходя за пределы с экрана, становятся невидимыми для пользователя. Например, если пользователь прокрутит список вниз до пункта 6 или 7, то элементы в позиции 1, 2 или 3 будут удалены из памяти. В результате сокращается расход памяти.
https://medium.com/@hrithik481/implement-recyclerview-in-android-with-kotlin-42408c6bf6
✍️ @kotlin_lib
👍8😐1
KMP Library Wizard
Теперь можно в два клика создать KMP проект
https://terrakok.github.io/kmp-web-wizard/
✍️ @kotlin_lib
Теперь можно в два клика создать KMP проект
https://terrakok.github.io/kmp-web-wizard/
✍️ @kotlin_lib
👍6🔥3
Защита архитектуры проекта Kotlin с помощью Konsist
Konsist - это совершенно новый инструмент, который помогает стандартизировать кодовую базу. Он совместим с различными Kotlin-проектами, включая Android-проекты, Spring-проекты и Kotlin Multiplatform-проекты.
Прежде чем погрузиться в Konsist, давайте вкратце обсудим многоуровневую архитектуру. Компоненты в рамках паттерна многоуровневой архитектуры организованы в слои, каждый из которых выполняет определенную роль в приложении. Каждый слой также определяет границы - классы и интерфейсы могут быть доступны только другим классам и интерфейсам из нужных слоев.
Konsist может быть использован для автоматизации проверки этих слоев, что повышает качество кодовой базы приложения и делает ее более управляемой. Давайте рассмотрим несколько архитектур и посмотрим, как мы можем защитить их границы.
https://proandroiddev.com/protect-kotlin-project-architecture-using-konsist-3bfbe1ad0eea
✍️ @kotlin_lib
Konsist - это совершенно новый инструмент, который помогает стандартизировать кодовую базу. Он совместим с различными Kotlin-проектами, включая Android-проекты, Spring-проекты и Kotlin Multiplatform-проекты.
Прежде чем погрузиться в Konsist, давайте вкратце обсудим многоуровневую архитектуру. Компоненты в рамках паттерна многоуровневой архитектуры организованы в слои, каждый из которых выполняет определенную роль в приложении. Каждый слой также определяет границы - классы и интерфейсы могут быть доступны только другим классам и интерфейсам из нужных слоев.
Konsist может быть использован для автоматизации проверки этих слоев, что повышает качество кодовой базы приложения и делает ее более управляемой. Давайте рассмотрим несколько архитектур и посмотрим, как мы можем защитить их границы.
https://proandroiddev.com/protect-kotlin-project-architecture-using-konsist-3bfbe1ad0eea
✍️ @kotlin_lib
👍3
Apress_Pro_Spring_6_with_Kotlin.pdf
24.1 MB
Pro Spring 6 with Kotlin: An In-depth Guide to Using Kotlin APIs in Spring Framework 6
Автор: Chris Schaefer (2023)
Освойте основы Spring Framework 6, опираясь на реальный опыт экспертов по Spring. Из этой книги вы узнаете, как использовать Spring 6 в тандеме с языком программирования Kotlin для создания сложных корпоративных приложений сверху донизу. От монолитов до облачных нативных приложений для потоковых микросервисов - вы получите представление о каждом аспекте процесса, включая транзакции, доступ к данным, персистентность, веб-уровни и уровни представления.
✍️ @kotlin_lib
Автор: Chris Schaefer (2023)
Освойте основы Spring Framework 6, опираясь на реальный опыт экспертов по Spring. Из этой книги вы узнаете, как использовать Spring 6 в тандеме с языком программирования Kotlin для создания сложных корпоративных приложений сверху донизу. От монолитов до облачных нативных приложений для потоковых микросервисов - вы получите представление о каждом аспекте процесса, включая транзакции, доступ к данным, персистентность, веб-уровни и уровни представления.
✍️ @kotlin_lib
👍6
Прослушивание событий элементов с использованием Compose for Web
В декларативном мире события являются основным способом взаимодействия с элементами, и у большинства компонентов есть способ их прослушивания.
События играют ключевую роль во взаимодействии между вашим приложением и браузером. В декларативном мире события - это основной способ получения обновлений от элементов. В этом отношении HTML-документ действительно очень силен.
Как вы можете видеть в документации W3C, существует почти 100 типов событий, которые вы можете использовать. В этой статье мы узнаем, как использовать их в Compose for Web.
https://touchlab.co/compose-html-events
✍️ @kotlin_lib
В декларативном мире события являются основным способом взаимодействия с элементами, и у большинства компонентов есть способ их прослушивания.
События играют ключевую роль во взаимодействии между вашим приложением и браузером. В декларативном мире события - это основной способ получения обновлений от элементов. В этом отношении HTML-документ действительно очень силен.
Как вы можете видеть в документации W3C, существует почти 100 типов событий, которые вы можете использовать. В этой статье мы узнаем, как использовать их в Compose for Web.
https://touchlab.co/compose-html-events
✍️ @kotlin_lib
👍2✍1
DataMaps. Рассказ о нашей ORM на Kotlin
Меня зовут Александр, я ведущий программист в БФТ-Холдинге. Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально – Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов – ORM (object-relational mapping) – фреймворке DataMaps.
Данная статья не инструкция или справка. Это достаточно поверхностный обзор, цель которого получить первичную обратную связь: интересен ли наш фреймворк сообществу?
Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.
https://habr.com/ru/companies/bft/articles/787280/
✍️ @kotlin_lib
Меня зовут Александр, я ведущий программист в БФТ-Холдинге. Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально – Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов – ORM (object-relational mapping) – фреймворке DataMaps.
Данная статья не инструкция или справка. Это достаточно поверхностный обзор, цель которого получить первичную обратную связь: интересен ли наш фреймворк сообществу?
Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.
https://habr.com/ru/companies/bft/articles/787280/
✍️ @kotlin_lib
👍3
Как использовать ресурсы в Compose Multiplatform
Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.
https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d
✍️ @kotlin_lib
Ресурсы являются важной частью любого мобильного приложения, они включают в себя отрисовки, шрифты, текстовые файлы и многое другое. С появлением Compose Multiplatform у нас появился компонент ресурсов Compose, но он был экспериментальным и претерпел несколько изменений в разных версиях. Теперь, когда вышла следующая основная версия Compose, а именно 1.6.0-beta01, в разделе ресурсов появились некоторые важные изменения. Давайте рассмотрим их, а также то, как перенести и использовать новый способ доступа к ресурсам.
https://proandroiddev.com/how-to-use-resources-in-compose-multiplatform-77a6552b505d
✍️ @kotlin_lib
👍3
Использование делегирования в Kotlin для упрощения совместной работы с ViewModel и управления состояниями
В предыдущем материале мы рассказали о том, как создавался наш экран InRide для водителей. По мере того как развиваются технологии и потребности, развивается и наш продукт. Хамид Реза, наш менеджер по продукции, придумал встроить навигационные возможности прямо в существующий экран In-Ride, избавив наших водителей от зависимости от сторонних навигационных приложений. 🗺️
https://proandroiddev.com/leveraging-kotlin-delegation-to-simplify-viewmodel-collaboration-and-state-management-399c17cf5df5
✍️ @kotlin_lib
В предыдущем материале мы рассказали о том, как создавался наш экран InRide для водителей. По мере того как развиваются технологии и потребности, развивается и наш продукт. Хамид Реза, наш менеджер по продукции, придумал встроить навигационные возможности прямо в существующий экран In-Ride, избавив наших водителей от зависимости от сторонних навигационных приложений. 🗺️
https://proandroiddev.com/leveraging-kotlin-delegation-to-simplify-viewmodel-collaboration-and-state-management-399c17cf5df5
✍️ @kotlin_lib
👍3
Миграция конфигурации сборки с Groovy на Kotlin
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
Что такое DSL?
DSL (Domain-Specific Language) — это язык программирования, который спроектирован и оптимизирован для решения задач в конкретной области или для определенного класса задач. DSL build.gradle предоставляет разработчикам удобный способ определения настроек проекта и управления ими, используя специфический синтаксис, который Gradle понимает и обрабатывает. Этот DSL позволяет создавать мощные и гибкие сценарии сборки, которые могут быть легко настраиваемы для разных проектов и задач.
С Android Studio Giraffe Kotlin DSL становится новым стандартом для Gradle-скриптов в разработке Android. Когда вы создаете новые проекты, используя встроенные шаблоны IDE, вам будут предоставлены файлы Kotlin DSL вместо файлов Gradle на основе Groovy.
https://habr.com/ru/companies/ppr/articles/765544/
✍️ @kotlin_lib
👍5
Корутинные загадки
Антон Дудаков, Владимир Меркурьев
Спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и оцениваться то, что получилось на самом деле. Затем будем разбор того, почему все именно так. Кто выберет больше всего правильных вариантов — тот и победил.
Будут примеры с синхронизацией и конкурентной работой, отмена корутин и неочевидности Kotlin Flow.
https://www.youtube.com/watch?v=Qj_vTsN_4uo
✍️ @kotlin_lib
Антон Дудаков, Владимир Меркурьев
Спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и оцениваться то, что получилось на самом деле. Затем будем разбор того, почему все именно так. Кто выберет больше всего правильных вариантов — тот и победил.
Будут примеры с синхронизацией и конкурентной работой, отмена корутин и неочевидности Kotlin Flow.
https://www.youtube.com/watch?v=Qj_vTsN_4uo
✍️ @kotlin_lib
YouTube
Антон Дудаков, Владимир Меркурьев — Корутинные загадки
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
Спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и оцениваться то, что получилось…
— —
Спикеры будут показывать код с корутинами и спрашивать, что в нем должно случиться, а слушатели будут выбирать варианты ответов. После этого будет запускаться живой код и оцениваться то, что получилось…
👍5
Элегантная обработка событий в Kotlin - прохождение рефакторинга
Раскройте пиковую производительность кода Kotlin с помощью этих экспертных советов по рефакторингу.
В мире разработки программного обеспечения рефакторинг кода - это герой, который спасает нас от запутанного и неэффективного кода. В этой статье мы отправимся в приключение, чтобы переделать код Kotlin для обработки различных событий. Наша миссия? Повысить производительность и улучшить стиль, сделав код более гладким, удобным и приятным для работы.
https://img.ly/blog/kotlin-code-refactoring-for-peak-performance/
✍️ @kotlin_lib
Раскройте пиковую производительность кода Kotlin с помощью этих экспертных советов по рефакторингу.
В мире разработки программного обеспечения рефакторинг кода - это герой, который спасает нас от запутанного и неэффективного кода. В этой статье мы отправимся в приключение, чтобы переделать код Kotlin для обработки различных событий. Наша миссия? Повысить производительность и улучшить стиль, сделав код более гладким, удобным и приятным для работы.
https://img.ly/blog/kotlin-code-refactoring-for-peak-performance/
✍️ @kotlin_lib
👍3
Измеряем sequence
В Kotlin существует мощный механизм ленивой обработки коллекций, но многие разработчики боятся его использовать, так как не понимают, как он работает внутри.
Максим сравнит два подхода к обработке коллекций: обычный и ленивый через sequence. Он рассмотрит, как работают под капотом большинство конструкций sequence. Но самое главное — он измерит на конкретных цифрах, насколько корректно правило CouldBeSequence, и в каких случаях использование sequence дает реальный выигрыш, а в каких — проигрыш. «На десерт» будет немного оптимизации. Да-да, оригинальные функции Kotlin не всегда работают оптимально.
https://www.youtube.com/watch?v=bg3ICZVRDOs
✍️ @kotlin_lib
В Kotlin существует мощный механизм ленивой обработки коллекций, но многие разработчики боятся его использовать, так как не понимают, как он работает внутри.
Максим сравнит два подхода к обработке коллекций: обычный и ленивый через sequence. Он рассмотрит, как работают под капотом большинство конструкций sequence. Но самое главное — он измерит на конкретных цифрах, насколько корректно правило CouldBeSequence, и в каких случаях использование sequence дает реальный выигрыш, а в каких — проигрыш. «На десерт» будет немного оптимизации. Да-да, оригинальные функции Kotlin не всегда работают оптимально.
https://www.youtube.com/watch?v=bg3ICZVRDOs
✍️ @kotlin_lib
YouTube
Максим Сидоров — Измеряем sequence
Подробнее о конференции Mobius: https://jrg.su/ojGU3B
— —
В Kotlin существует мощный механизм ленивой обработки коллекций, но многие разработчики боятся его использовать, так как не понимают, как он работает внутри.
Максим сравнит два подхода к обработке…
— —
В Kotlin существует мощный механизм ленивой обработки коллекций, но многие разработчики боятся его использовать, так как не понимают, как он работает внутри.
Максим сравнит два подхода к обработке…
👍5
Понимание разницы между KSP и KAPS в Kotlin
В этой статье мы рассмотрим, чем отличаются KSP и KAPS, и узнаем, в каких случаях стоит использовать каждый из них.
https://towardsdev.com/understanding-the-difference-between-ksp-and-kaps-in-kotlin-d87e68d86f87
✍️ @kotlin_lib
В этой статье мы рассмотрим, чем отличаются KSP и KAPS, и узнаем, в каких случаях стоит использовать каждый из них.
https://towardsdev.com/understanding-the-difference-between-ksp-and-kaps-in-kotlin-d87e68d86f87
✍️ @kotlin_lib
👍2👎1