MobDev Portal | Мобильная Разработка
6K subscribers
314 photos
62 videos
4 files
269 links
Присоединяйтесь к нашему каналу и погрузитесь в мир мобильной-разработки

Связь: @devmangx
Download Telegram
Вышел Flutter 3.38

Лучшие новые фичи:

- Hot reload на Web Server

- Конфигурации для веб-разработки

- Улучшенные превью виджетов

- Оптимизации производительности и багфиксы

Все детали о нововведениях → тык

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4🔥2
Совет по SwiftUI

Используйте .stroke(), чтобы добавить рамку, выровненную по центру.

Используйте .strokeBorder(), чтобы добавить внутреннюю рамку.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3
Актуальные практики работы в фоне Android-приложений

В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.

- WorkManager
- JobScheduler
- Foreground Service
- Специализированные API (AlarmManager, DownloadManager, Geofencing)

Читать

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1
SwiftUI совет

В iOS 18.0+ можно использовать .presentationSizing(.fitted) для sheet, чтобы модальное окно подстраивалось под свой контент, а не занимало почти весь экран, идеально для компактных попапов в виде карточек

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Приложения вроде Notes и Mail в iOS 26 используют переходы тулбара, которые плавно трансформируются между вью. Такое поведение можно легко воспроизвести с помощью нативных API тулбара в SwiftUI.

Смотрите гайд на YouTube

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥3
SwiftUI совет

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

Отлично подходит для AI-чатов, заметок и любых интерфейсов с быстрыми действиями во время ввода текста

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥94
The Real Difference Between withContext and launch

Подробная статья про отличия корутин билдеров withContext и launch, с разбором на примерах и для каких случаев может подойти каждый.

Читать тут

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎3
SwiftUI совет

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

Отлично подходит для отображения дополнительных деталей до того, как пользователь выберет действие.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4
Основы AGSL для Android-разработчика

Отличная базовая статья по шейдерам

- Зачем появился AGSL
- Где AGSL хорош, а где он не про это
- А если устройство с API < 33?
- Как AGSL вплетается в Android и Compose
- Пример 1: Анимированный градиент
- Пример 2: Ripple - интерактивная волна от тапа на экран
- Пример 3: Летящая звезда - AGSL как мини-рендер сценки
- Заключение

Исходный код на GitHub → AGSL-Basics

AGSL (Android Graphics Shading Language) – это язык фрагментных шейдеров, встроенный в сам графический стек Android, так что эффекты применяются прямо на уровне отрисовки интерфейса.


Читайте на Хабр

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
SwiftUI совет

В iOS 26.0+ TextEditor поддерживает редактирование форматированного текста, если привязать его к AttributedString.

Это мгновенно открывает доступ к системным инструментам форматирования – bold, italics, underline, цветам, выравниванию и многому другому.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3
Управление потоком в Kotlin Flow

Годная статья, в которой рассказывается как управлять потоком в Kotlin Flow и какие операторы использовать для решения проблемы быстрого пользовательского ввода(наиболее популярный кейс когда пользователь быстро печатает, например при поиске)

Читать здесь

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Современный ввод OTP в SwiftUI, с анимацией и валидацией

Туториал на YouTube

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3
SwiftUI совет

Используйте submitLabel(), чтобы изменить кнопку отправки на клавиатуре на варианты вроде Next, Join, Search или Done.

(Обновлено для iOS 26)

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений

Автор статьи рассказывает как делал кастомный компонент Toolbar в Jetpack Compose, с какими ограничениями столкнулся и какую в итоге реализацию выбрал, чтоб компонент был гибким, контролируемым и оптимизированным с точки зрения рекомпозиций.

Читать тут

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
SwiftUI совет

В iOS 26+ вы можете добавить деления на Slider, используя параметр ticks.

Отлично подходит для таких вещей, как яркость, громкость или уровни прогресса

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76
SwiftUI совет

В iOS 26.0+ используйте GlassEffectContainer, чтобы объединять находящиеся рядом glass-вью в одну непрерывную форму Liquid Glass.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3
Джедайские техники Kotlin: inline-функции и reified-типы

Годная статья с примерами и детальным разбором inline-функций и reified-типов: зачем это нужно, как работают внутри и как использовать.

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
This media is not supported in your browser
VIEW IN TELEGRAM
Раскрывающийся Picker в SwiftUI за 100 секунд

Туториал на YouTube

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍4
SwiftUI совет

По умолчанию searchable() скрывает навбар во время поиска.

Начиная с iOS 17.1+, используйте
searchPresentationToolbarBehavior(.avoidHidingContent),
чтобы он оставался видимым.

👉 @MobDevPortal
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. Анализ утечек больше не ограничен экраном устройства — основная работа переехала на компьютер разработчика.

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.

Источник: тык
Оригинал: тут

👉 @MobDevPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4