#полезное
🏠 springdoc-openapi — библиотека, превращающая ваши Spring Boot 3.x приложения в самоописываемые API, она генерирует OpenAPI 3.0 спецификацию и интерактивный Swagger UI на ходу.
В отличие от ручного описания эндпоинтов, она анализирует контроллеры, модели и аннотации вроде @Operation или @SecurityScheme, создавая актуальную документацию без boilerplate-кода. Проект поддерживает не только классические MVC, но и WebFlux, включая функциональные эндпоинты.
Гитхаб
👉 Новости 👉 База вопросов
В отличие от ручного описания эндпоинтов, она анализирует контроллеры, модели и аннотации вроде @Operation или @SecurityScheme, создавая актуальную документацию без boilerplate-кода. Проект поддерживает не только классические MVC, но и WebFlux, включая функциональные эндпоинты.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#полезное
😱 Redwood — библиотека для создания пользовательских интерфейсов на Android, iOS и в веб-приложениях с использованием Kotlin и Jetpack Compose!
🟠 Основная цель проекта — упростить разработку многоплатформенных интерфейсов, обеспечивая согласованность UI и возможность использования общих компонентов на разных платформах.
🟠 Redwood интегрирует систему дизайна и компонуемые функции (composables), что позволяет разрабатывать UI, которые адаптируются к особенностям каждой платформы. Это решение нацелено на повышение продуктивности и унификацию интерфейсов без необходимости писать отдельный код для каждой платформы.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Меняем Android Studio на IntelliJ IDEA ради JetBrains Junie
Что за проблемы возникли:
🟠 Android Plugin немного отстает от последних версий Android Studio
🟠 Несколько полезных плагинов недоступны для установки в IDEA (Firebase Services, Firebase Testing, Test Recorder, Android APK Support, Android NDK Support, Android SDK Upgrade Assistant, Google Cloud Tools for Android Studio, App Links Assistant)
🟠 Некоторые плагины нужно установить вручную(Android,Android Design Tools, Jetpack Compose, Smali Viewer), некоторый функционал дублируется
Android Studio хорошо заточена под Android разработку, но когда хочется потрогать последние фичи из IDEA - свитчнуться возможно!
👉 Новости 👉 База вопросов
Что за проблемы возникли:
Android Studio хорошо заточена под Android разработку, но когда хочется потрогать последние фичи из IDEA - свитчнуться возможно!
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Что делает файл .gitignore?
Файл
👉 Новости 👉 База вопросов
Файл
.gitignore определяет файлы и папки, которые Git должен игнорировать. Это используется для исключения временных файлов, логов, зависимостей, сгенерированных файлов и других ненужных элементов.Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🛞 Seal — open-source приложение, предлагающее простое решение для скачивания контента — загрузку медиа через yt-dlp с поддержкой 1000+ сайтов. Проект выделяется чистым Material Design 3 интерфейсом и неожиданными фишками вроде встроенного aria2c для ускорения загрузок и автоматического добавления метаданных в аудиофайлы.
Приложение полностью написано на Kotlin с использованием современных подходовю, а его разработчик принципиально запрещает коммерческое использование названия Seal в форках.
Гитхаб
👉 Новости 👉 База вопросов
Приложение полностью написано на Kotlin с использованием современных подходовю, а его разработчик принципиально запрещает коммерческое использование названия Seal в форках.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😎 Ktorm — минималистичный ORM для Kotlin-разработчиков. Этот фреймворк предлагает принципиально иной подход к работе с базами данных: вместо сложных конфигураций и магии аннотаций здесь чистый Kotlin-код с типизированным SQL DSL.
При этом фреймворк не абстрагируется от SQL, а аккуратно его дополняет: вы всегда видите, какой запрос будет выполнен, но пишете его на понятном Kotlin. Встроенная поддержка пагинации, агрегаций и транзакций делает Ktorm готовым к использованию в production.
Гитхаб
👉 Новости 👉 База вопросов
При этом фреймворк не абстрагируется от SQL, а аккуратно его дополняет: вы всегда видите, какой запрос будет выполнен, но пишете его на понятном Kotlin. Встроенная поддержка пагинации, агрегаций и транзакций делает Ktorm готовым к использованию в production.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🤓 Rich Errors в Kotlin 2.4
Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму
👉 Новости 👉 База вопросов
Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму
try-catch. Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #git
🤔 Какие различные стратегии ветвления вы знаете?
Централизованный рабочий процесс (Centralized Workflow). Веткой разработки по умолчанию является main, и все изменения фиксируются в этой ветке. Этот рабочий процесс не требует других веток, кроме главной.
Рабочий процесс разветвления функций (Feature Branching Workflow). Основная идея рабочего процесса разветвления функций заключается в том, что разработка всех функций должна вестись в специальной ветке, а не в основной.
Рабочий процесс Gitflow. Gitflow определяет строгую модель ветвления, разработанную вокруг релиза проекта. Это обеспечивает надежную основу для управления большими проектами. Она назначает очень специфические роли различным веткам и определяет, как и когда они должны взаимодействовать. В дополнение к функциональным веткам используются отдельные ветки для подготовки, поддержки и записи релизов.
Рабочий процесс Forking. Forking Workflow принципиально отличается от других популярных рабочих процессов Git. Вместо того чтобы использовать единый серверный репозиторий в качестве "центральной" кодовой базы, он предоставляет каждому разработчику свой серверный репозиторий. Это означает, что каждый участник имеет не один, а два Git-репозитория: частный локальный и публичный серверный. Чаще всего Forking Workflow встречается в публичных проектах с открытым исходным кодом.
👉 Новости 👉 База вопросов
Централизованный рабочий процесс (Centralized Workflow). Веткой разработки по умолчанию является main, и все изменения фиксируются в этой ветке. Этот рабочий процесс не требует других веток, кроме главной.
Рабочий процесс разветвления функций (Feature Branching Workflow). Основная идея рабочего процесса разветвления функций заключается в том, что разработка всех функций должна вестись в специальной ветке, а не в основной.
Рабочий процесс Gitflow. Gitflow определяет строгую модель ветвления, разработанную вокруг релиза проекта. Это обеспечивает надежную основу для управления большими проектами. Она назначает очень специфические роли различным веткам и определяет, как и когда они должны взаимодействовать. В дополнение к функциональным веткам используются отдельные ветки для подготовки, поддержки и записи релизов.
Рабочий процесс Forking. Forking Workflow принципиально отличается от других популярных рабочих процессов Git. Вместо того чтобы использовать единый серверный репозиторий в качестве "центральной" кодовой базы, он предоставляет каждому разработчику свой серверный репозиторий. Это означает, что каждый участник имеет не один, а два Git-репозитория: частный локальный и публичный серверный. Чаще всего Forking Workflow встречается в публичных проектах с открытым исходным кодом.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥺 Фоновая работа в Android и iOS
Бытует мнение, что iOS вообще не позволяет приложению выполнять какие-либо действия в фоне, но это не совсем так. В одном из наших Compose Multiplatform приложений необходимо было реализовать синхронизацию данных в фоне, и моему коллеге пришлось глубже разобраться в теме.
На текущий момент не существует хорошего решения для KMP-проектов, которое предоставляло бы общий API для работы с фоновыми задачами. Это вполне объяснимо: API сильно отличаются между платформами.
🚩 Для решения задачи синхронизации данных в фоне в Android существует несколько решений, например, WorkManager, который имеет довольно удобный API и позволяет запускать задачи с интервалом не менее 15 минут. Он позволяет задать условия запуска задачи, порядок выполнения воркеров и определить поведение при повторном планировании одной и той же задачи.
🚩 В iOS есть два стула: BGAppRefreshTaskRequest и BGProcessingTaskRequest.
Первый предназначен для относительно быстрых операций длительностью до 30 секунд и может выполняться чаще, второй — для более долгих задач, которые могут выполняться в течение нескольких минут и даже часов. Разумеется, можно указать минимальное время, через которое должна быть выполнена синхронизация. В интернетах рекомендуют устанавливать интервал в один час, однако iOS конечно же не гарантирует, что задача будет выполнена вообще
С появлением SwiftUI стало удобнее работать с фоновыми задачами — достаточно запланировать их с помощью BGTaskScheduler и обрабатывать через модификатор backgroundTask. Однако, по сравнению с WorkManager, многое приходится делать вручную — например, явно обрабатывать ситуацию, когда задача уже запланирована, иначе интервал её запуска может быть сброшен.
Таким образом, реализовать фоновую работу в мультиплатформенных проектах вполне возможно, но для этого потребуется написать платформенный код.
👉 Новости 👉 База вопросов
Бытует мнение, что iOS вообще не позволяет приложению выполнять какие-либо действия в фоне, но это не совсем так. В одном из наших Compose Multiplatform приложений необходимо было реализовать синхронизацию данных в фоне, и моему коллеге пришлось глубже разобраться в теме.
На текущий момент не существует хорошего решения для KMP-проектов, которое предоставляло бы общий API для работы с фоновыми задачами. Это вполне объяснимо: API сильно отличаются между платформами.
Первый предназначен для относительно быстрых операций длительностью до 30 секунд и может выполняться чаще, второй — для более долгих задач, которые могут выполняться в течение нескольких минут и даже часов. Разумеется, можно указать минимальное время, через которое должна быть выполнена синхронизация. В интернетах рекомендуют устанавливать интервал в один час, однако iOS конечно же не гарантирует, что задача будет выполнена вообще
С появлением SwiftUI стало удобнее работать с фоновыми задачами — достаточно запланировать их с помощью BGTaskScheduler и обрабатывать через модификатор backgroundTask. Однако, по сравнению с WorkManager, многое приходится делать вручную — например, явно обрабатывать ситуацию, когда задача уже запланирована, иначе интервал её запуска может быть сброшен.
Таким образом, реализовать фоновую работу в мультиплатформенных проектах вполне возможно, но для этого потребуется написать платформенный код.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#ЛитКод
Задача: 487. Max Consecutive Ones II
Дан бинарный массив nums, верните максимальное количество последовательных единиц в массиве, если можно перевернуть не более одного нуля.
Пример:
👨💻 Алгоритм:
1⃣ Для каждого возможного начала последовательности в массиве nums начните считать количество нулей.
2⃣ Для каждой последовательности проверяйте, сколько нулей содержится в ней. Если количество нулей не превышает одного, обновите максимальную длину последовательности единиц.
3⃣ Продолжайте проверять все возможные последовательности в массиве, и верните максимальную длину последовательности единиц, удовлетворяющую условию.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 487. Max Consecutive Ones II
Дан бинарный массив nums, верните максимальное количество последовательных единиц в массиве, если можно перевернуть не более одного нуля.
Пример:
Input: nums = [1,0,1,1,0]
Output: 4
Explanation:
- If we flip the first zero, nums becomes [1,1,1,1,0] and we have 4 consecutive ones.
- If we flip the second zero, nums becomes [1,0,1,1,1] and we have 3 consecutive ones.
The max number of consecutive ones is 4.
class Solution {
fun findMaxConsecutiveOnes(nums: IntArray): Int {
var longestSequence = 0
for (left in nums.indices) {
var numZeroes = 0
for (right in left until nums.size) {
if (nums[right] == 0) {
numZeroes++
}
if (numZeroes <= 1) {
longestSequence = maxOf(longestSequence, right - left + 1)
}
}
}
return longestSequence
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 Redwood — библиотека для создания пользовательских интерфейсов на Android, iOS и в веб-приложениях с использованием Kotlin и Jetpack Compose!
🟠 Основная цель проекта — упростить разработку многоплатформенных интерфейсов, обеспечивая согласованность UI и возможность использования общих компонентов на разных платформах.
🟠 Redwood интегрирует систему дизайна и компонуемые функции (composables), что позволяет разрабатывать UI, которые адаптируются к особенностям каждой платформы. Это решение нацелено на повышение продуктивности и унификацию интерфейсов без необходимости писать отдельный код для каждой платформы.
Гитхаб
👉 Новости 👉 База вопросов
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #git
🤔 Что такое ветка в репозитории Git?
Ветка - это независимая линия разработки в Git. Она позволяет работать над новой функциональностью или исправлениями, не затрагивая основную версию проекта. После завершения работы изменения из ветки можно объединить с основной веткой.
👉 Новости 👉 База вопросов
Ветка - это независимая линия разработки в Git. Она позволяет работать над новой функциональностью или исправлениями, не затрагивая основную версию проекта. После завершения работы изменения из ветки можно объединить с основной веткой.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️🔥 Ktorfit — retrofit для Kotlin Multiplatform на базе Ktor
Когда нужно реализовать сетевые запросы в Kotlin-приложении, Ktorfit предлагает знакомый по Retrofit DSL инструмент, но с поддержкой Ktor-клиентов под капотом.
Проект использует Kotlin Symbol Processing для генерации кода во время компиляции — это даёт возможность использовать нативные suspend-функции и Flow для Kotlin Coroutines, поддержку всех платформ, где работает Ktor, а также лёгковесную альтернативу без рефлексии
Гитхаб
👉 Новости 👉 База вопросов
Когда нужно реализовать сетевые запросы в Kotlin-приложении, Ktorfit предлагает знакомый по Retrofit DSL инструмент, но с поддержкой Ktor-клиентов под капотом.
Проект использует Kotlin Symbol Processing для генерации кода во время компиляции — это даёт возможность использовать нативные suspend-функции и Flow для Kotlin Coroutines, поддержку всех платформ, где работает Ktor, а также лёгковесную альтернативу без рефлексии
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
💅1
#полезное
👨💻 kotlin-logging — легковесный фреймворк для логгирования, написанный на чистом Kotlin
—
kotlin-logging предоставляет обертку для slf4j-api для использования классами Kotlin; при этом kotlin-logging имеет такие преимущества:
— нет необходимости писать шаблонный код, содержащий имя логгера и класса или имя логгера
— простой способ регистрации сообщений в виде строки с ленивой оценкой с помощью лямбда-выражения
— все предыдущие реализации slf4j по-прежнему могут быть использованы
GitHub
Wiki
👉 Новости 👉 База вопросов
—
implementation 'io.github.oshai:kotlin-logging-jvm:5.1.0'kotlin-logging предоставляет обертку для slf4j-api для использования классами Kotlin; при этом kotlin-logging имеет такие преимущества:
— нет необходимости писать шаблонный код, содержащий имя логгера и класса или имя логгера
— простой способ регистрации сообщений в виде строки с ленивой оценкой с помощью лямбда-выражения
{}— все предыдущие реализации slf4j по-прежнему могут быть использованы
GitHub
Wiki
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Как вы разрешаете конфликты в Git?
Конфликты возникают, когда изменения из удаленного и локального репозиториев пересекаются. Чтобы разрешить конфликт, нужно вручную отредактировать проблемные файлы, выбрать правильную версию, а затем зафиксировать изменения.
👉 Новости 👉 База вопросов
Конфликты возникают, когда изменения из удаленного и локального репозиториев пересекаются. Чтобы разрешить конфликт, нужно вручную отредактировать проблемные файлы, выбрать правильную версию, а затем зафиксировать изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 Мобильные технологии Apple снова унизили — в сети сравнили простое удаление объектов на смартфонах Apple и Samsung.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😵 6 основных аспектов безопасности
Незащищенный API становится легкой мишенью для хакеров, поэтому его безопасность – приоритет для разработчиков и компаний, дорожащих своей репутацией.
В этой статье мы рассмотрим шесть основных аспектов защиты API, которые помогут минимизировать риски взлома, утечки данных и отказа в обслуживании.
Читать статью
👉 Новости 👉 База вопросов
Незащищенный API становится легкой мишенью для хакеров, поэтому его безопасность – приоритет для разработчиков и компаний, дорожащих своей репутацией.
В этой статье мы рассмотрим шесть основных аспектов защиты API, которые помогут минимизировать риски взлома, утечки данных и отказа в обслуживании.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😵 Стандартизация без боли
В начале проекта разработчик хочет свободы творчества: писать код быстро и видеть результат. Но со временем баги, регрессии и несовместимые решения превращают эту свободу в боль.
В статье автор сравнивает языки программирования по уровню синтаксической однозначности, гибкости и пригодности для командной работы.
Также рассматривает, как строгие ограничения формируют культуру качества, а чрезмерная выразительность часто мешает команде работать как единое целое
Читать статью
👉 Новости 👉 База вопросов
В начале проекта разработчик хочет свободы творчества: писать код быстро и видеть результат. Но со временем баги, регрессии и несовместимые решения превращают эту свободу в боль.
В статье автор сравнивает языки программирования по уровню синтаксической однозначности, гибкости и пригодности для командной работы.
Также рассматривает, как строгие ограничения формируют культуру качества, а чрезмерная выразительность часто мешает команде работать как единое целое
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #docker
🤔 Какова цель томов в Docker?
Тома в Docker предназначены для хранения и обмена данными между контейнерами и хост-системой. Они позволяют сохранять данные независимо от жизненного цикла контейнера, обеспечивая сохранность данных при остановке или удалении контейнера. Тома можно использовать для базы данных, конфигураций приложений и логов.
👉 Новости 👉 База вопросов
Тома в Docker предназначены для хранения и обмена данными между контейнерами и хост-системой. Они позволяют сохранять данные независимо от жизненного цикла контейнера, обеспечивая сохранность данных при остановке или удалении контейнера. Тома можно использовать для базы данных, конфигураций приложений и логов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Forwarded from YeaHub
Мы рады представить нового эксперта в нашей команде! К YeaHub присоединился опытный Android-разработчик и ментор, который вместе с учениками будет разрабатывать Open Source-версию мобильного приложения YeaHub. Код открыт в нашем репозитории.
В качестве Guru (эксперта) он:
- Будет улучшать контент по Android-разработке
- Добавлять новые вопросы и коллекции
- Публиковать авторские посты и гайды на канале
И это только начало! В планах привлечь Guru (Экспертов) по каждому направлению!
Спасибо, что остаетесь с нами — мы продолжаем прокачивать продукт 💪
Пробуйте, тестируйте, делитесь обратной связью!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3👍2