Циклы в Swift: скрытые трюки для повышения производительности, которые сделают ваш код в 10 раз быстрее
В начале своего пути в программировании я думал, что циклы — это просто… циклы. Знаете, те самые базовые for и while, которые изучают на первых уроках? Как же я ошибался.
Только когда я начал отлаживать кошмарное приложение, которое тратило больше трёх секунд на отрисовку простого списка, я понял, что система циклов Swift гораздо сложнее, чем показывают большинство руководств. Тот самый невинный цикл for-in, который я везде копировал? Да, он был узким местом.
Вот в чём дело: Swift предоставляет нам три основных типа циклов, но знание того, когда использовать каждый из них, может радикально повлиять на производительность вашего приложения. Мы говорим о разнице между плавной прокруткой со скоростью 60 кадров в секунду и тем, как пользователи в ярости удаляют ваше приложение.
Статья: https://apptractor.ru/info/articles/swift-loops.html
Платформа: iOS
В начале своего пути в программировании я думал, что циклы — это просто… циклы. Знаете, те самые базовые for и while, которые изучают на первых уроках? Как же я ошибался.
Только когда я начал отлаживать кошмарное приложение, которое тратило больше трёх секунд на отрисовку простого списка, я понял, что система циклов Swift гораздо сложнее, чем показывают большинство руководств. Тот самый невинный цикл for-in, который я везде копировал? Да, он был узким местом.
Вот в чём дело: Swift предоставляет нам три основных типа циклов, но знание того, когда использовать каждый из них, может радикально повлиять на производительность вашего приложения. Мы говорим о разнице между плавной прокруткой со скоростью 60 кадров в секунду и тем, как пользователи в ярости удаляют ваше приложение.
Статья: https://apptractor.ru/info/articles/swift-loops.html
Платформа: iOS
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
SnapNotify - Snackbar для Jetpack Compose
SnapNotify - легковесная, потокобезопасная библиотека Snackbar для Jetpack Compose с предельно простой настройкой. Показывайте снекбары из любого места с красивой стилизацией, управлением очередью и опциональной интеграцией с Hilt. Полностью на Kotlin.
SnapNotify на GitHub: https://github.com/ivamsi/snapnotify
Платформа: Android
⭐️: 18
SnapNotify - легковесная, потокобезопасная библиотека Snackbar для Jetpack Compose с предельно простой настройкой. Показывайте снекбары из любого места с красивой стилизацией, управлением очередью и опциональной интеграцией с Hilt. Полностью на Kotlin.
SnapNotify на GitHub: https://github.com/ivamsi/snapnotify
Платформа: Android
⭐️: 18
👍1
Превратите свои фотографии в миниатюрное волшебство с помощью Nano Banana
В статье разработчик Питер Фризе подробно описывает, как интегрировать новую модель генерации изображений от Google, известную как "Nano Banana" (официальное название gemini-2.5-flash-image-preview), в iOS-приложения. Автор объясняет, что с помощью Firebase AI Logic можно безопасно использовать возможности Gemini для создания и редактирования изображений прямо в приложении, не храня на устройстве пользователя API-ключи. В качестве примера он создает приложение для генерации миниатюрных диорам комнат, демонстрируя, как с помощью нескольких строк кода на Swift можно превращать текстовые описания и существующие фотографии в новые уникальные изображения.
Статья: https://peterfriese.dev/blog/2025/gemini-nano-banana-ios/
Платформа: iOS
В статье разработчик Питер Фризе подробно описывает, как интегрировать новую модель генерации изображений от Google, известную как "Nano Banana" (официальное название gemini-2.5-flash-image-preview), в iOS-приложения. Автор объясняет, что с помощью Firebase AI Logic можно безопасно использовать возможности Gemini для создания и редактирования изображений прямо в приложении, не храня на устройстве пользователя API-ключи. В качестве примера он создает приложение для генерации миниатюрных диорам комнат, демонстрируя, как с помощью нескольких строк кода на Swift можно превращать текстовые описания и существующие фотографии в новые уникальные изображения.
Статья: https://peterfriese.dev/blog/2025/gemini-nano-banana-ios/
Платформа: iOS
👍1
Вопрос на 16 КБ: почему так важны изменения в памяти Android и как подготовить приложение
Годами Android управлял памятью блоками по 4 КБ. Но с появлением современных устройств с большим объёмом оперативной памяти это стало неэффективным. С 1 ноября 2025 года Google Play требует, чтобы все новые приложения и обновления для Android 15 (API 35) или выше были совместимы с этим новым размером страницы в 16 КБ.
Если ваше приложение полностью написано на Kotlin/Java, вы, вероятно, можете расслабиться. Но если ваше приложение использует нативный код (C/C++) — а вы удивитесь, как много таких приложений используют благодаря сторонним SDK, — вам нужно действовать прямо сейчас.
Давайте разберёмся, что на самом деле означает это изменение, почему это хорошо, и разберём чёткий трёхэтапный план подготовки вашего приложения.
Статья: https://apptractor.ru/develop/16kb-question.html
Платформа: Android
Годами Android управлял памятью блоками по 4 КБ. Но с появлением современных устройств с большим объёмом оперативной памяти это стало неэффективным. С 1 ноября 2025 года Google Play требует, чтобы все новые приложения и обновления для Android 15 (API 35) или выше были совместимы с этим новым размером страницы в 16 КБ.
Если ваше приложение полностью написано на Kotlin/Java, вы, вероятно, можете расслабиться. Но если ваше приложение использует нативный код (C/C++) — а вы удивитесь, как много таких приложений используют благодаря сторонним SDK, — вам нужно действовать прямо сейчас.
Давайте разберёмся, что на самом деле означает это изменение, почему это хорошо, и разберём чёткий трёхэтапный план подготовки вашего приложения.
Статья: https://apptractor.ru/develop/16kb-question.html
Платформа: Android
👍1
StepsShare - трекер шагов на Compose Multiplatform
StepsShare - cовременное кроссплатформенное приложение для отслеживания шагов, созданное на Kotlin Multiplatform и Compose Multiplatform. Отслеживайте количество шагов за день, ставьте персональные цели и отслеживайте свой прогресс на устройствах Android и iOS.
Внутри, кроме KMP и CMP, Material Design 3 с анимациями, MVVM, Compose Navigation, локальное хранение данных в Room, Koin, Compose Charts, Kotlinx Serialization.
StepsShare на GitHub: https://github.com/tamtom/StepsShare-oss
Платформа: кроссплатформа
⭐️: 78
StepsShare - cовременное кроссплатформенное приложение для отслеживания шагов, созданное на Kotlin Multiplatform и Compose Multiplatform. Отслеживайте количество шагов за день, ставьте персональные цели и отслеживайте свой прогресс на устройствах Android и iOS.
Внутри, кроме KMP и CMP, Material Design 3 с анимациями, MVVM, Compose Navigation, локальное хранение данных в Room, Koin, Compose Charts, Kotlinx Serialization.
StepsShare на GitHub: https://github.com/tamtom/StepsShare-oss
Платформа: кроссплатформа
⭐️: 78
👍1
Как я научил Jetpack Compose показывать рекомпозиции в реальном времени
Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.
Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».
В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Статья: https://habr.com/ru/companies/yandex/articles/945276/
Платформа: Android
Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.
Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».
В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Статья: https://habr.com/ru/companies/yandex/articles/945276/
Платформа: Android
❤2
Как Swift Runtime влияет на производительность iOS-приложений
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
Статья: https://habr.com/ru/companies/tbank/articles/947486/
Платформа: iOS
Для больших iOS-приложений, написанных на Swift, понимание работы Swift Runtime и его влияния на производительность — важный навыĸ разработчиĸов. Swift Runtime при исполнении ĸода отвечает за фундаментальные вещи языĸа Swift: управление памятью и систему типов в рантайме.
В статье сосредоточимся на механизмах приведения типов и создания generic-типов внутри Swift Runtime и рассмотрим один ĸонĸретный метод, ĸоторый является узĸим местом в производительности приложения. Разберем примеры ĸода, демонстрирующие, ĸогда и почему этот метод вызывается, ĸаĸово его влияние на отзывчивость приложения и ĸаĸие стратегии использовать для смягчения негативного воздействия.
Статья: https://habr.com/ru/companies/tbank/articles/947486/
Платформа: iOS
👍2
ImmutableData - простое управление состояниями для SwiftUI
ImmutableData - новый подход к архитектуре приложений для SwiftUI, основанный на более чем десятилетнем опыте работы с декларативными UI-фреймворками. Вдохновленная принципами Flux и Redux, архитектура использует современные возможности Swift, чтобы сделать ваш код чище, быстрее и проще для понимания. Вместо традиционного императивного и объектно-ориентированного программирования, авторы делают ставку на декларативное мышление, функциональный стиль и неизменяемые (immutable) данные. В основе всего — однонаправленный поток данных, который обеспечивает строгое разделение ответственности: действия декларируют, что произошло; слой состояния реагирует на эти действия, изменяя данные; а представления (views) — просто отображают обновлённое состояние.
Это строгое разделение позволяет избавиться от таких проблем, как двусторонняя привязка данных и "спагетти-код", вызванный изменяемыми объектами. Архитектура ImmutableData делает код надёжнее, его легче тестировать, а новичкам — проще в нём разобраться. Пакет предоставляет три основных модуля: ImmutableData для управления данными, ImmutableUI для работы с представлениями SwiftUI и AsyncSequenceTestUtils для тестирования. Чтобы начать, достаточно добавить пакет в свой проект через Swift Package Manager. Например, для простого счётчика вам нужно определить состояние, действия и редьюсер, а затем использовать @ImmutableUI.Selector и @ImmutableUI.Dispatcher, чтобы связать ваш UI с глобальным состоянием приложения. Это позволяет создавать масштабируемые и легко поддерживаемые приложения.
ImmutableData на GitHub: https://github.com/Swift-ImmutableData/ImmutableData
Платформа: iOS
⭐️: 37
ImmutableData - новый подход к архитектуре приложений для SwiftUI, основанный на более чем десятилетнем опыте работы с декларативными UI-фреймворками. Вдохновленная принципами Flux и Redux, архитектура использует современные возможности Swift, чтобы сделать ваш код чище, быстрее и проще для понимания. Вместо традиционного императивного и объектно-ориентированного программирования, авторы делают ставку на декларативное мышление, функциональный стиль и неизменяемые (immutable) данные. В основе всего — однонаправленный поток данных, который обеспечивает строгое разделение ответственности: действия декларируют, что произошло; слой состояния реагирует на эти действия, изменяя данные; а представления (views) — просто отображают обновлённое состояние.
Это строгое разделение позволяет избавиться от таких проблем, как двусторонняя привязка данных и "спагетти-код", вызванный изменяемыми объектами. Архитектура ImmutableData делает код надёжнее, его легче тестировать, а новичкам — проще в нём разобраться. Пакет предоставляет три основных модуля: ImmutableData для управления данными, ImmutableUI для работы с представлениями SwiftUI и AsyncSequenceTestUtils для тестирования. Чтобы начать, достаточно добавить пакет в свой проект через Swift Package Manager. Например, для простого счётчика вам нужно определить состояние, действия и редьюсер, а затем использовать @ImmutableUI.Selector и @ImmutableUI.Dispatcher, чтобы связать ваш UI с глобальным состоянием приложения. Это позволяет создавать масштабируемые и легко поддерживаемые приложения.
ImmutableData на GitHub: https://github.com/Swift-ImmutableData/ImmutableData
Платформа: iOS
⭐️: 37
🤔1
Андроид всё еще не готов к RAW-видео
Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
Я разберу лишь основные моменты, которые и убедили меня в том, что эффективная съемка RAW‑видео на Андроид на сегодняшний день невозможна без »костылей» и ухищрений. Костылей, которые нивелируют все те преимущества RAW, которые так жаждут получить на своих смартфонах видеографы. Ухищрений, которые по итогу делают менее ресурсоемкие форматы записи видео на смартфоне даже более эффективными и качественными, чем RAW.
Да, будет интересно!
Статья: https://habr.com/ru/articles/947578/
Платформа: Android
Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
Я разберу лишь основные моменты, которые и убедили меня в том, что эффективная съемка RAW‑видео на Андроид на сегодняшний день невозможна без »костылей» и ухищрений. Костылей, которые нивелируют все те преимущества RAW, которые так жаждут получить на своих смартфонах видеографы. Ухищрений, которые по итогу делают менее ресурсоемкие форматы записи видео на смартфоне даже более эффективными и качественными, чем RAW.
Да, будет интересно!
Статья: https://habr.com/ru/articles/947578/
Платформа: Android
To Do - ведение дел на Jetpack Compose
To Do - простое приложение для ведения дел на Jetpack Compose с настраиваемыми темами Material Design 3.
To Do на GitHub: https://github.com/Super12138/ToDo
Платформа: Android
⭐️: 41
To Do - простое приложение для ведения дел на Jetpack Compose с настраиваемыми темами Material Design 3.
To Do на GitHub: https://github.com/Super12138/ToDo
Платформа: Android
⭐️: 41
•
(iOS Ru) Пишем видеоплеер под iOS с нуля•
(iOS En) The curious case of RETROACTIVE attribute in Swift•
(iOS En) iOS 26 Custom Animated ToolBar Using SwiftUI•
(iOS En) Mastering iOS 26 Toolbars & Modal Sheets in SwiftUI •
(And Ru) Разбор кода: пиксельная погода на Kotlin•
(And En) Shadows In Compose | Jetpack Compose Tips•
(And En) Firebender - TypeAlias Show•
(Crs En) Multi-Module Architecture in KMP for Beginners (Kotlin Multiplatform)•
(Crs En) Building a macOS Screen Saver with Kotlin•
(Dev Ru) Давайте потестируем Webview•
(Dev Ru) Сколько кнопок нажимает ваш автотест?•
(Dev Ru) Язык программирования Gleam — Gleam, Erlang VM, BEAM, Elixir vs Gleam•
(Dev En) Charts, Code, and Sails: Winning a Regatta with Kotlin NotebookПрошлогодние видео:
•
(And Ru) Бессмертное приложение•
(And Ru) Укрощаем UDF state-based архитектуры. Реальные кейсы в больших приложениях•
(Dev Ru) Заработок на Open Source. Decompose. Будущее KMP. Аркадий Иванов•
(Dev Ru) Грейд в IT•
(Dev Ru) Как устроен Yandex Mobile Ads SDK•
(Dev Ru) Паттерны SDUIPlease open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI: Горизонтальный пикер/слайдер/линейка
Если стандартные слайдеры уже надоели, посмотрите, как создать кастомный горизонтальный Dial Picker — компонент, похожий на линейку или шкалу настройки.
В статье автор подробно разбирает создание такого элемента с нуля.
Статья: https://levelup.gitconnected.com/swiftui-horizontal-dial-picker-slider-ruler-8b3681fc9a00
Платформа: iOS
Поставь 👍, если хотите перевод на русский.
Если стандартные слайдеры уже надоели, посмотрите, как создать кастомный горизонтальный Dial Picker — компонент, похожий на линейку или шкалу настройки.
В статье автор подробно разбирает создание такого элемента с нуля.
Статья: https://levelup.gitconnected.com/swiftui-horizontal-dial-picker-slider-ruler-8b3681fc9a00
Платформа: iOS
Поставь 👍, если хотите перевод на русский.
👍4
Все, что вы хотели знать о флагах в эмодзи (но не знали, что вам это нужно)
Допустим, вы создаете аналитическое приложение и вам нужен простой способ обозначить местоположение аналитического события. Если вы, как и я, подумали: «Да, флажки эмодзи — забавный способ показать страны», то наверняка сразу же начали создавать такой словарь
Но подождите. Оказывается, есть гораздо более простой способ сделать это (ну как «простой»… с программной точки зрения).
Статья: https://apptractor.ru/info/articles/vse-chto-vy-hoteli-znat-o-flagah-v-emodzi-no-ne-znali-chto-vam-eto-nuzhno.html
Платформа: iOS
Допустим, вы создаете аналитическое приложение и вам нужен простой способ обозначить местоположение аналитического события. Если вы, как и я, подумали: «Да, флажки эмодзи — забавный способ показать страны», то наверняка сразу же начали создавать такой словарь
let emojiFlags = [
"AU": "🇦🇺",
"BE": "🇧🇪",
"BR": "🇧🇷",
"BS": "🇧🇸",
...
]
Но подождите. Оказывается, есть гораздо более простой способ сделать это (ну как «простой»… с программной точки зрения).
Статья: https://apptractor.ru/info/articles/vse-chto-vy-hoteli-znat-o-flagah-v-emodzi-no-ne-znali-chto-vam-eto-nuzhno.html
Платформа: iOS
Foqos - блокировка приложений с помощью NFC-метки или QR-кода
Foqos поможет вам одним касанием отключить самые отвлекающие приложения — с помощью NFC-меток или QR-кодов — чтобы вы могли сосредоточиться и выработать полезные цифровые привычки. Это бесплатное приложение с открытым исходным кодом, которое является альтернативой Brick, Bloom, Unpluq, Blok и другим.
Foqos на GitHub: https://github.com/awaseem/foqos
Платформа: iOS
⭐️: 172
Foqos поможет вам одним касанием отключить самые отвлекающие приложения — с помощью NFC-меток или QR-кодов — чтобы вы могли сосредоточиться и выработать полезные цифровые привычки. Это бесплатное приложение с открытым исходным кодом, которое является альтернативой Brick, Bloom, Unpluq, Blok и другим.
Foqos на GitHub: https://github.com/awaseem/foqos
Платформа: iOS
⭐️: 172
Строки в Swift
Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift.
Каждый, кто писал или пишет приложения на этом языке, так или иначе работает со строками. Но задумывались ли вы когда-нибудь, как они устроены внутри? В этой статье я постараюсь приоткрыть завесу и рассказать, какие тайны скрывают строки в Swift.
Статья: https://habr.com/ru/articles/948870/
Платформа: iOS
Сегодня поговорим о теме, которая вроде бы знакома каждому разработчику, но при этом часто остаётся в тени. Речь пойдёт о строках в Swift.
Каждый, кто писал или пишет приложения на этом языке, так или иначе работает со строками. Но задумывались ли вы когда-нибудь, как они устроены внутри? В этой статье я постараюсь приоткрыть завесу и рассказать, какие тайны скрывают строки в Swift.
Статья: https://habr.com/ru/articles/948870/
Платформа: iOS
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов
В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проек
Статья: https://habr.com/ru/companies/cian/articles/920328/
Платформа: Android
В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проек
Статья: https://habr.com/ru/companies/cian/articles/920328/
Платформа: Android
Хабр
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов
В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это...
Горизонтальный селектор/слайдер/линейка на SwiftUI
Вот что у нас получится - горизонтальный селектор/слайдер/линейка, или как вы его там называете. Сегментированные деления с анимацией, тактильными эффектами и опциональным отображением меток.
В интернете есть несколько решений. Однако ни одно из них не делало того, чего я хочу, и не было реализовано так, как мне нравится. И, как вы, возможно, уже знаете меня, если мне не понравится то, что есть, я просто ДЕЛАЮ ЭТО САМ.
Идея довольно проста, но есть много мелочей, на которые нужно обратить внимание, чтобы всё работало гладко, так как нам (или, по крайней мере, мне) нравится.
Давайте посмотрим.
Статья: https://apptractor.ru/info/articles/gorizontalnyy-selektor-slayder-lineyka-na-swiftui.html
Платформа: iOS
Вот что у нас получится - горизонтальный селектор/слайдер/линейка, или как вы его там называете. Сегментированные деления с анимацией, тактильными эффектами и опциональным отображением меток.
В интернете есть несколько решений. Однако ни одно из них не делало того, чего я хочу, и не было реализовано так, как мне нравится. И, как вы, возможно, уже знаете меня, если мне не понравится то, что есть, я просто ДЕЛАЮ ЭТО САМ.
Идея довольно проста, но есть много мелочей, на которые нужно обратить внимание, чтобы всё работало гладко, так как нам (или, по крайней мере, мне) нравится.
Давайте посмотрим.
Статья: https://apptractor.ru/info/articles/gorizontalnyy-selektor-slayder-lineyka-na-swiftui.html
Платформа: iOS
ADB Keep Screen On - включенный экран при работе с ADB
ADB Keep Screen On - это простая утилита для командной строки, написанная на Go, которая предотвращает переход устройства Android в спящий режим при подключении через ADB по USB.
Она идеально подходит для разработчиков, тестировщиков и докладчиков, которым необходимо, чтобы экран оставался активным во время отладки, автоматизации или демонстраций в режиме реального времени без необходимости следить за состоянием зарядки или вручную настраивать параметры устройства.
ADB Keep Screen On на GitHub: https://github.com/nisrulz/adb-keep-screen-on
Платформа: Android
⭐️: 11
ADB Keep Screen On - это простая утилита для командной строки, написанная на Go, которая предотвращает переход устройства Android в спящий режим при подключении через ADB по USB.
Она идеально подходит для разработчиков, тестировщиков и докладчиков, которым необходимо, чтобы экран оставался активным во время отладки, автоматизации или демонстраций в режиме реального времени без необходимости следить за состоянием зарядки или вручную настраивать параметры устройства.
ADB Keep Screen On на GitHub: https://github.com/nisrulz/adb-keep-screen-on
Платформа: Android
⭐️: 11
Как Shopify перевела свои крупнейшие приложения на новую архитектуру React Native
Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.
Статья: https://habr.com/ru/articles/949002/
Платформа: кроссплатформа
Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.
Статья: https://habr.com/ru/articles/949002/
Платформа: кроссплатформа
👍1
Новые подходы в Swift для тестирования: разбор технологии Swift Testing
Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию. Кирилл Гусев из ОК рассказывает о том, какие возможности предоставляет Swift Testing и как они в компании планируют применять их.
Статья: https://habr.com/ru/companies/vk/articles/949260/
Платформа: iOS
Тестирование на Swift долгие годы держалось на трех китах: XCTest, сторонние библиотеки и собственная смекалка. Но на WWDC 24 Apple представила новый, современный фреймворк — Swift Testing, который предлагает концептуально новый подход к тестированию. Кирилл Гусев из ОК рассказывает о том, какие возможности предоставляет Swift Testing и как они в компании планируют применять их.
Статья: https://habr.com/ru/companies/vk/articles/949260/
Платформа: iOS
👍1
Проблема при выделении текста в TextView на Android 15+
При использовании TextView с выравниванием текста по ширине (justificationMode = JUSTIFICATION_MODE_INTER_WORD) возникает следующая проблема: во время выделения текста маркеры и подсветка часто смещаются. В результате выделяется не то слово, которое должно быть, маркеры не совпадают с символами.
Статья: https://android-tools.ru/coding/problema-pri-vydelenii-teksta-v-textview-na-android-15/
Платформа: Android
При использовании TextView с выравниванием текста по ширине (justificationMode = JUSTIFICATION_MODE_INTER_WORD) возникает следующая проблема: во время выделения текста маркеры и подсветка часто смещаются. В результате выделяется не то слово, которое должно быть, маркеры не совпадают с символами.
Статья: https://android-tools.ru/coding/problema-pri-vydelenii-teksta-v-textview-na-android-15/
Платформа: Android
😱1