Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.72K subscribers
1.55K photos
74 videos
52 files
4.33K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
⚙️ Корутины в Kotlin: как сделать «Optimised Out» переменные видимыми

Отладка корутинов в Kotlin иногда может напоминать распутывание паутины невидимых нитей — в буквальном смысле. Одна из распространенных ошибок, с которой сталкиваются разработчики — появление страшного сообщения «optimised out» при проверке переменных в приостановленной корутине.

В этой статье автор расскажет, как динамически включать удобные для отладки настройки с помощью свойства idea.active, что позволит вам проверять переменные корутин в IntelliJ IDEA и Android Studio без ущерба для производительности.

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

#новость #android #kotlin
2😁1
👾 Kotlinx.serialization и работа с JSON

Наверное, все мы хотя бы раз сталкивались с задачей сериализации данных, будь то обмен данными с сервером, сохранение состояния объекта в файл или передача данных между различными приложениями. В Kotlin для этих целей удобно использовать библиотеку Kotlinx.serialization, которая позволяет работать с данными, сериализуя и десериализуя их в различные форматы, такие как JSON, CBOR, и Protocol Buffers.

В статье автор рассказывает, как настроить и использовать kotlinx.serialization в своём проекте, а также показывает примеры эффективной работы с JSON.

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

#новость #kotlin #android
🥰4👍1
🛠️ Кастомизация лейаутов на Compose

В этом докладе — полноценный обзор средств для кастомизации лейаутов на Compose.

Автор разбирает механизм работы layout-фазы в Compose. Рассказывает, как работают стандартные лейауты, а также какие возможности существуют для написания кастомных. Рассматривает нюансы и хаки, о которых не написано в документации.

👀 Смотреть доклад

#новость #android #kotlin
4👍1
👾 Преимущества Data-классов в Kotlin

Data-класс предназначен исключительно для хранения каких-либо данных.

Основное преимущество: для параметров, переданных в основном конструкторе, автоматически будут переопределены методы toString(), equals(), hashCode(), copy().

Также для каждой переменной, объявленной в основном конструкторе, автоматически генерируются функции componentN(), где N — номер позиции переменной в конструкторе.

Благодаря этому внутри data-класса мы исключаем написание шаблонного кода.

#kotlin
3
🐦 Канареечные релизы на Camunda

В последнее время команда Т-Банка часто выпускаем новую функциональность, используя метод канареечных релизов. Автор статьи рассказывает, как это делается.

У себя на проекте команда использует Camunda, поэтому автор разберёт, как более безопасно выпускать новые версии bpmn-схемы на прод, минимизируя влияние багов на пользователей.

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

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

#новость #kotlin
🥰2
👾 Extensions (расширения) — что это и для чего нужны

Это функции, которые позволяют добавить функционал к уже определенным типам.

Kotlin предлагает нам концепцию «Extension Function»: мы можем к любому существующему типу добавить функцию-расширение, которая будет доступна через все объекты этого типа (но будет иметь доступ только к публичным частям).

• Для добавления функционала класса, если он закрыт для расширения (например, лежит в сторонней библиотеке).

• Для расширения nullable типов.

• Для расширения companion object.

• Для расширения свойств существующих классов.

• Для конвертации моделей из одной в другую.

• Для расширения функционала дженериков.

#kotlin
1👍1
👨‍💻 Корутины Kotlin в продакшене: уроки и подводные камни

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

В этой статье автор рассматривает основные проблемы, с которыми можно столкнуться при работе с корутинами, а также нюансы, способные привести к серьезным ошибкам.

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

#новость #android #kotlin
😢53👏1🎉1
📁 Как создать плагин для IntelliJ IDEA

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

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

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

#новость #kotlin #flutter
1
👾 Создание плагинов с помощью Kotlin Multiplatform

Хоть Flutter и предоставляет полноценный фреймворк для создания кроссплатформенных приложений, интеграция нативного функционала иногда может быть весьма обременительной. Именно здесь на помощь приходит Kotlin Multiplatform (KMP).

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

В этой статье автор делится опытом использования KMP для создания библиотеки общих настроек (Shared Preferences) для Flutter под названием SharedPrefsKMP. Эта библиотека упрощает управление общими настройками в Android и iOS, демонстрируя, как KMP может улучшить процесс разработки на Flutter.

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

#новость #kotlin
😁51
👾 Как работает модификатор crossinline?

crossinline — ключевое слово, которое используется для указания, что лямбда-выражение не может содержать нелокальных return, даже если оно передано в inline-функцию.

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

#kotlin
3