Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍3
SwiftUI совет
Используйте
(Обновлено для iOS 26)
👉 @MobDevPortal
Используйте
submitLabel(), чтобы изменить кнопку отправки на клавиатуре на варианты вроде Next, Join, Search или Done.(Обновлено для iOS 26)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений
Автор статьи рассказывает как делал кастомный компонент Toolbar в Jetpack Compose, с какими ограничениями столкнулся и какую в итоге реализацию выбрал, чтоб компонент был гибким, контролируемым и оптимизированным с точки зрения рекомпозиций.
Читать тут
👉 @MobDevPortal
Автор статьи рассказывает как делал кастомный компонент Toolbar в Jetpack Compose, с какими ограничениями столкнулся и какую в итоге реализацию выбрал, чтоб компонент был гибким, контролируемым и оптимизированным с точки зрения рекомпозиций.
Читать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
SwiftUI совет
В iOS 26+ вы можете добавить деления на
Отлично подходит для таких вещей, как яркость, громкость или уровни прогресса
👉 @MobDevPortal
В iOS 26+ вы можете добавить деления на
Slider, используя параметр ticks.Отлично подходит для таких вещей, как яркость, громкость или уровни прогресса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤6
SwiftUI совет
В iOS 26.0+ используйте
👉 @MobDevPortal
В iOS 26.0+ используйте
GlassEffectContainer, чтобы объединять находящиеся рядом glass-вью в одну непрерывную форму Liquid Glass.Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3
Джедайские техники Kotlin: inline-функции и reified-типы
Годная статья с примерами и детальным разбором inline-функций и reified-типов: зачем это нужно, как работают внутри и как использовать.
👉 @MobDevPortal
Годная статья с примерами и детальным разбором inline-функций и reified-типов: зачем это нужно, как работают внутри и как использовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥5👍4
SwiftUI совет
По умолчанию
Начиная с iOS 17.1+, используйте
чтобы он оставался видимым.
👉 @MobDevPortal
По умолчанию
searchable() скрывает навбар во время поиска.Начиная с iOS 17.1+, используйте
searchPresentationToolbarBehavior(.avoidHidingContent),чтобы он оставался видимым.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥3
LeakCanary становится частью Android Studio
В Google выкатили серьёзное обновление для Android Studio Panda (2025.3.1) — теперь LeakCanary встроен прямо в IDE. Анализ утечек больше не ограничен экраном устройства — основная работа переехала на компьютер разработчика.
В Android Studio Profiler появилась отдельная task для LeakCanary. Ключевое изменение — анализ heap dump теперь выполняется на стороне IDE.
Раньше парсинг hprof мог надолго подвесить слабые тестовые девайсы — иногда на десятки секунд или даже минуты. Теперь вся тяжёлая обработка выполняется ресурсами рабочего компьютера, а устройство используется только для сбора дампа.
Что в итоге получили:
- Производительность — анализ заметно быстрее за счёт ресурсов ПК
- Удобство — результаты сразу открываются в IDE, работает Jump to Source: клик по утечке → переход в код
- Контекст — трейс утечки можно скопировать и сразу отправить в Gemini прямо из Android Studio для подсказок
Важно: несмотря на глубокую интеграцию, LeakCanary остаётся независимым Open Source-проектом. Это всё тот же инструмент от Square, который развивается сообществом. Google не «поглотила» библиотеку, а лишь добавила удобный UI для запуска и анализа внутри IDE.
Попробовать интеграцию уже можно в Canary-сборке Android Studio Panda.
Источник: тык
Оригинал: тут
👉 @MobDevPortal
В Google выкатили серьёзное обновление для Android Studio Panda (2025.3.1) — теперь LeakCanary встроен прямо в IDE. Анализ утечек больше не ограничен экраном устройства — основная работа переехала на компьютер разработчика.
LeakCanary — де-факто стандарт в Android-разработке для поиска утечек памяти. Библиотека автоматически отслеживает объекты, которые не были освобождены сборщиком мусора. Именно такие «хвосты» со временем накапливаются в heap, приводят к деградации производительности и в итоге к OutOfMemoryError.
В Android Studio Profiler появилась отдельная task для LeakCanary. Ключевое изменение — анализ heap dump теперь выполняется на стороне IDE.
Раньше парсинг hprof мог надолго подвесить слабые тестовые девайсы — иногда на десятки секунд или даже минуты. Теперь вся тяжёлая обработка выполняется ресурсами рабочего компьютера, а устройство используется только для сбора дампа.
Что в итоге получили:
- Производительность — анализ заметно быстрее за счёт ресурсов ПК
- Удобство — результаты сразу открываются в IDE, работает Jump to Source: клик по утечке → переход в код
- Контекст — трейс утечки можно скопировать и сразу отправить в Gemini прямо из Android Studio для подсказок
Важно: несмотря на глубокую интеграцию, LeakCanary остаётся независимым Open Source-проектом. Это всё тот же инструмент от Square, который развивается сообществом. Google не «поглотила» библиотеку, а лишь добавила удобный UI для запуска и анализа внутри IDE.
Попробовать интеграцию уже можно в Canary-сборке Android Studio Panda.
Источник: тык
Оригинал: тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4
SwiftUI совет
Можно добавлять подзаголовки к действиям в Menu, если в label у Button разместить ещё один Text — SwiftUI сам автоматически применит нужные стили
👉 @MobDevPortal
Можно добавлять подзаголовки к действиям в Menu, если в label у Button разместить ещё один Text — SwiftUI сам автоматически применит нужные стили
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI Animated Scrollable Slider — кастомный Picker — Xcode 26
В этом видео автор показывает, как создать кастомный picker, который можно использовать для выбора роста, веса и других параметров с помощью SwiftUI.
https://www.youtube.com/watch?v=14HGMJ0gSCk
👉 @MobDevPortal
В этом видео автор показывает, как создать кастомный picker, который можно использовать для выбора роста, веса и других параметров с помощью SwiftUI.
https://www.youtube.com/watch?v=14HGMJ0gSCk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥3
Если вы разрабатываете приложения под iOS/macOS, вам может пригодится xcbeautify.
Этот инструмент позволяет вашим агентам видеть ошибки сборки без необходимости пролистывать страницы вывода компилятора
https://github.com/cpisciotta/xcbeautify
👉 @MobDevPortal
Этот инструмент позволяет вашим агентам видеть ошибки сборки без необходимости пролистывать страницы вывода компилятора
https://github.com/cpisciotta/xcbeautify
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3
Совет для SwiftUI
В iOS 16.0+ вы можете зарезервировать место для дополнительных строк текста, чтобы высота вашего макета оставалась постоянной
👉 @MobDevPortal
В iOS 16.0+ вы можете зарезервировать место для дополнительных строк текста, чтобы высота вашего макета оставалась постоянной
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
This media is not supported in your browser
VIEW IN TELEGRAM
Create animated stripes in Jetpack Compose
Прикольный материал про UI, с примером реализации анимированных полос с помощью градиента в Jetpack Compose.
- Manipulating Color Stops
- Drawing The Stripes
- Animating The Stripes
- A Little Helper Function
Читать тут
👉 @MobDevPortal
Прикольный материал про UI, с примером реализации анимированных полос с помощью градиента в Jetpack Compose.
- Manipulating Color Stops
- Drawing The Stripes
- Animating The Stripes
- A Little Helper Function
Читать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Совет для SwiftUI💡
Используйте
👉 @MobDevPortal
Используйте
Divider() внутри Menu, чтобы группировать связанные действия - так меню становится более наглядным и удобным для пользователяPlease open Telegram to view this post
VIEW IN TELEGRAM
❤6
Live Updates на Android: где макеты врут, a SDK ставит границы
Разработчик из Dodo Engineering рассказывает как они завозили Live Updates и с какими проблемами столкнулись.
Если коротко – не всё так радужно, как может показаться. Начиная от документации и заканчивая ограничениями в кастомизации и тестировании на эмулях.
Если планировали внедрять Live Updates, обязательно почитайте статью, вероятно сэкономите какое-то время.
Читать
👉 @MobDevPortal
Разработчик из Dodo Engineering рассказывает как они завозили Live Updates и с какими проблемами столкнулись.
Если коротко – не всё так радужно, как может показаться. Начиная от документации и заканчивая ограничениями в кастомизации и тестировании на эмулях.
Если планировали внедрять Live Updates, обязательно почитайте статью, вероятно сэкономите какое-то время.
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2
Совет для SwiftUI
Создавайте эффекты наклона с помощью модификатора
👉 @MobDevPortal
Создавайте эффекты наклона с помощью модификатора
projectionEffect()Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4
This media is not supported in your browser
VIEW IN TELEGRAM
В статье на Habr разобран пример реализации такой анимации в Compose. Авторы вынесли решение в отдельную библиотеку ThemeAnimator, которую можно подключить к своему проекту.
👉 @MobDevPortal
Анимация смены темы реализована через перехват отрисовки в Modifier.Node: сначала делается снимок UI в старой теме, затем тема переключается, фиксируется новое состояние и запускается анимация между двумя скриншотами. Переход рисуется как круговое раскрытие новой темы, что позволяет избежать мерцаний и добиться плавного эффекта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4👎1
Совет по Xcode
Если превью в SwiftUI начинают вести себя странно или тормозить, очистите весь кэш данных превью одной командой.
👉 @MobDevPortal
Если превью в SwiftUI начинают вести себя странно или тормозить, очистите весь кэш данных превью одной командой.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3