Flutter + нативные iOS виджеты: любовь с первого Method Chann
Как создать нативные iOS виджеты для Flutter приложения: Widget Extension, Method Channel для обмена данными, Timeline Provider для обновлений и SwiftUI верстка.
Пошаговый гайд с примерами кода на русском языке. Рассматриваем настройку App Groups, работу с UserDefaults и стратегии обновления виджетов.
Без лишних библиотек, только нативные возможности iOS и стандартные механизмы Flutter.
Статья: https://habr.com/ru/articles/940678/
Платформа: кроссплатформа
Как создать нативные iOS виджеты для Flutter приложения: Widget Extension, Method Channel для обмена данными, Timeline Provider для обновлений и SwiftUI верстка.
Пошаговый гайд с примерами кода на русском языке. Рассматриваем настройку App Groups, работу с UserDefaults и стратегии обновления виджетов.
Без лишних библиотек, только нативные возможности iOS и стандартные механизмы Flutter.
Статья: https://habr.com/ru/articles/940678/
Платформа: кроссплатформа
👍2😁1
Продвинутая анимация в SwiftUI: matchedGeometryEffect, TimelineView, PhaseAnimator и другое
В этом обзоре рассматривают самые передовые инструменты анимации SwiftUI — от переходов и рендеринга на основе временной шкалы до многофазной анимации и кастомных интерполяций.
Статья: https://swift-pal.com/advanced-animations-in-swiftui-matchedgeometryeffect-timelineview-phaseanimator-beyond-2025-da8876b7b0b9
Платформа: iOS
В этом обзоре рассматривают самые передовые инструменты анимации SwiftUI — от переходов и рендеринга на основе временной шкалы до многофазной анимации и кастомных интерполяций.
Статья: https://swift-pal.com/advanced-animations-in-swiftui-matchedgeometryeffect-timelineview-phaseanimator-beyond-2025-da8876b7b0b9
Платформа: iOS
🔥2
Как я сократил время загрузки Android-приложения на 70% с помощью параллельных сетевых вызовов
В прошлом месяце я отлаживал дашборд пользователя в своём Android-приложении, который загружался мучительно долго — 4.5 секунды. Пользователи просто закрывали экран, и я знал, что нужно что-то менять. Виновники? Последовательные сетевые вызовы, которые без необходимости блокировали друг друга.
После реализации параллельных сетевых вызовов с использованием корутин Kotlin тот же экран теперь загружается всего за 1.3 секунды. Вот как я это сделал, и как можете сделать вы.
Статья: https://apptractor.ru/info/articles/kak-ya-sokratil-vremya-zagruzki-android-prilozheniya-na-70-s-pomoschyu-parallelnyh-setevyh-vyzovov.html
Платформа: Android
В прошлом месяце я отлаживал дашборд пользователя в своём Android-приложении, который загружался мучительно долго — 4.5 секунды. Пользователи просто закрывали экран, и я знал, что нужно что-то менять. Виновники? Последовательные сетевые вызовы, которые без необходимости блокировали друг друга.
После реализации параллельных сетевых вызовов с использованием корутин Kotlin тот же экран теперь загружается всего за 1.3 секунды. Вот как я это сделал, и как можете сделать вы.
Статья: https://apptractor.ru/info/articles/kak-ya-sokratil-vremya-zagruzki-android-prilozheniya-na-70-s-pomoschyu-parallelnyh-setevyh-vyzovov.html
Платформа: Android
😁2👍1
SwiftToasts - тосты для SwiftUI
Всплывающее уведомление — это временный, относительно ненавязчивый визуальный компонент, который можно использовать для отображения коротких сообщений, таких как обновления статуса или сообщения об ошибках, не мешая пользователю взаимодействовать с основным контентом.
SwiftToasts — это библиотека для SwiftUI, которая обеспечивает простую, быструю, гибкую и настраиваемую интеграцию всплывающих уведомлений в платформы Apple на уровне сцены. Библиотека, разработанная с учетом соглашений API SwiftUI, делает использование библиотеки привычным, интуитивно понятным и по-настоящему нативным.
SwiftToasts на GitHub: https://github.com/athankefalas/swift-toasts
Платформа: iOS
⭐️: 3
Всплывающее уведомление — это временный, относительно ненавязчивый визуальный компонент, который можно использовать для отображения коротких сообщений, таких как обновления статуса или сообщения об ошибках, не мешая пользователю взаимодействовать с основным контентом.
SwiftToasts — это библиотека для SwiftUI, которая обеспечивает простую, быструю, гибкую и настраиваемую интеграцию всплывающих уведомлений в платформы Apple на уровне сцены. Библиотека, разработанная с учетом соглашений API SwiftUI, делает использование библиотеки привычным, интуитивно понятным и по-настоящему нативным.
SwiftToasts на GitHub: https://github.com/athankefalas/swift-toasts
Платформа: iOS
⭐️: 3
👍2
Flutter умрёт?
Flutter не умер. И не умирает. Но никто и не гарантируется его вечное доминирование.
Фреймворк, который победит в следующем десятилетии, — это тот, который лучше всего адаптируется к меняющимся потребностям разработчиков и требованиям платформ.
Сейчас Flutter довольно хорошо адаптируется.
Настоящий вопрос не в том, «умрет ли Flutter?».
А в том, «будет ли Flutter развиваться достаточно быстро, чтобы оставаться актуальным?».
Статья: https://apptractor.ru/info/articles/flutter-umryot.html
Платформа: кроссплатформа
Flutter не умер. И не умирает. Но никто и не гарантируется его вечное доминирование.
Фреймворк, который победит в следующем десятилетии, — это тот, который лучше всего адаптируется к меняющимся потребностям разработчиков и требованиям платформ.
Сейчас Flutter довольно хорошо адаптируется.
Настоящий вопрос не в том, «умрет ли Flutter?».
А в том, «будет ли Flutter развиваться достаточно быстро, чтобы оставаться актуальным?».
Статья: https://apptractor.ru/info/articles/flutter-umryot.html
Платформа: кроссплатформа
Slide to Unlock - настраиваемый слайдер для разблокировки
Slide to Unlock - полностью настраиваемый слайдер для Jetpack Compose и KMP от RevenueCat. Вы можете легко реализовать функцию разблокировки слайдером с помощью композабл SlideToUnlock. Он предлагает интуитивно понятные возможности настройки цветов, текста, форм и даже всего содержимого миниатюры и подсказки, позволяя создавать широкий спектр стилей.
Slide to Unlock на GitHub: https://github.com/RevenueCat/slide-to-unlock
Платформа: Android
⭐️: 83
Slide to Unlock - полностью настраиваемый слайдер для Jetpack Compose и KMP от RevenueCat. Вы можете легко реализовать функцию разблокировки слайдером с помощью композабл SlideToUnlock. Он предлагает интуитивно понятные возможности настройки цветов, текста, форм и даже всего содержимого миниатюры и подсказки, позволяя создавать широкий спектр стилей.
Slide to Unlock на GitHub: https://github.com/RevenueCat/slide-to-unlock
Платформа: Android
⭐️: 83
❤2
Stack Inspector: мониторинг стека в iOS и macOS
В разработке приложений для iOS и macOS управление памятью - ключевой аспект стабильности и производительности. Одним из фундаментальных элементов памяти потока является стек. Понимание того, как работает стек, и возможность контролировать его состояние помогает разработчикам избегать критических ошибок, таких как stack overflow, и оптимизировать алгоритмы.
Статья: https://habr.com/ru/articles/941586/
Платформа: iOS
В разработке приложений для iOS и macOS управление памятью - ключевой аспект стабильности и производительности. Одним из фундаментальных элементов памяти потока является стек. Понимание того, как работает стек, и возможность контролировать его состояние помогает разработчикам избегать критических ошибок, таких как stack overflow, и оптимизировать алгоритмы.
Статья: https://habr.com/ru/articles/941586/
Платформа: iOS
👍1
•
(iOS En) Login Page + Firebase Email Authentication + Email Verification•
(iOS En) Login Page UI + Firebase Phone Auth•
(iOS En) What’s New in SF Symbols 7 – Stunning Visual Effects for iOS & macOS 26•
(iOS En) Fluid Zoom Transition with Liquid Glass•
(And Ru) Google закрывает свободу на Android•
(And En) Android Developer Story: How Dashlane brought Credential Manager to Wear OS with 92% code reuse•
(And En) Credential Manager for Wear OS•
(And En) Large Scale Changes with AI – Migrating millions of lines of Java to Kotlin at Uber•
(Crs Ru) Kotlin Multiplatform в большом проекте•
(Crs En) How to Deep Link Into iOS & Android With Compose Multiplatform•
(Crs En) Kotlin Multiplatform's Cross Platform Brilliance at Norway's 377-Year-Old National Postal Service•
(Crs En) Scale your Kotlin Multiplatform projects using dependency injection•
(Dev Ru) Как «думают» LLM: внутренняя механика языковых моделей•
(Dev Ru) Как AI научился рассуждать — Reinforcement learning, reasoning models•
(Dev En) 4 Common Mistakes in Mobile System Design Interviews•
(Dev En) Data Analysis for finance in Kotlin•
(Dev En) Professional Cloud Architect Certification Course – Pass the Exam•
(Dev En) Computer Vision with Arduino Tutorial•
(Mrk Ru) iOS подписки на TV пультах. Окупаемость 3 месяца?Прошлогодние видео:
•
(iOS Ru) Стратегия автотестирования для iOS приложений•
(iOS Ru) 5 вопросов для iOS разработчика•
(iOS Ru) Борьба с утечками памяти: от задачи до победы•
(And Ru) 5 уроков из опыта реализации pixel-perfect тестирования дизайн-системы в Android•
(And Ru) Gradle-сборка. Измеряем самое важное•
(And Ru) Шифруем файлы в Android•
(Dev Ru) Как писать чистый код — угадываем что ввел юзер и дизайним с нуля Clean Code ApproachPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
Levitan - дизайн-сиcтема для iOS от
Levitan - это набор инструментов от
Levitan на GitHub: https://github.com/hhru/Levitan
Платформа: iOS
⭐️: 35
HH.ruLevitan - это набор инструментов от
HH.ru для разработки пользовательских интерфейсов, позволяющий удобно и декларативно проектировать приложения с использованием SwiftUI и UIKit.Levitan на GitHub: https://github.com/hhru/Levitan
Платформа: iOS
⭐️: 35
👍2
Память в Swift
Я занимаюсь iOS-разработкой, и за время работы я прочитал множество статей и документаций. Для того чтобы не теряться в этом потоке информации, я стал делать для себя короткие шпаргалки — они помогали закрепить изученное и готовиться к собеседованиям. В этой статье я решил собрать часть таких заметок в один материал, посвящённый работе с памятью в Swift. Надеюсь, он поможет кому-то освежить знания или узнать что-то новое.
Статья: https://habr.com/ru/articles/942500/
Платформа: iOS
Я занимаюсь iOS-разработкой, и за время работы я прочитал множество статей и документаций. Для того чтобы не теряться в этом потоке информации, я стал делать для себя короткие шпаргалки — они помогали закрепить изученное и готовиться к собеседованиям. В этой статье я решил собрать часть таких заметок в один материал, посвящённый работе с памятью в Swift. Надеюсь, он поможет кому-то освежить знания или узнать что-то новое.
Статья: https://habr.com/ru/articles/942500/
Платформа: iOS
👍1
С нуля до APK: Android-приложение для озвучки новостей из Telegram с помощью ИИ
В конце июня этого года я возвращался с дачи, слушая радио в машине. Новости по радио выходят раз в час, и их разнообразие оставляет желать лучшего. Тогда я подумал: было бы здорово, если бы было приложение, которое автоматически собирало новости из Telegram-каналов и озвучивало их голосом на русском языке. Вернувшись домой, я поискал готовое решение, но ничего подходящего в интернете не нашёл. Решил спросить у ИИ.
Статья: https://habr.com/ru/articles/942488/
Платформа: Android
В конце июня этого года я возвращался с дачи, слушая радио в машине. Новости по радио выходят раз в час, и их разнообразие оставляет желать лучшего. Тогда я подумал: было бы здорово, если бы было приложение, которое автоматически собирало новости из Telegram-каналов и озвучивало их голосом на русском языке. Вернувшись домой, я поискал готовое решение, но ничего подходящего в интернете не нашёл. Решил спросить у ИИ.
Статья: https://habr.com/ru/articles/942488/
Платформа: Android
👍1😭1
Как замедлить программу и почему это может быть полезно
Большинство исследований производительности языков программирования задают вариации одного и того же вопроса: как ускорить конкретную программу? Иногда мы ищем способы использовать меньше памяти. Это означает, что многие исследования сосредоточены исключительно на уменьшении объёма ресурсов, необходимых для достижения какой-либо вычислительной цели.
Так зачем же нам тогда замедлять программы? Замедление программ может быть полезно для выявления условий гонки, моделирования ускорения и оценки точности профилировщиков.
Статья: https://apptractor.ru/info/articles/kak-zamedlit-programmu-i-pochemu-eto-mozhet-byt-polezno.html
Платформа: разработка
Большинство исследований производительности языков программирования задают вариации одного и того же вопроса: как ускорить конкретную программу? Иногда мы ищем способы использовать меньше памяти. Это означает, что многие исследования сосредоточены исключительно на уменьшении объёма ресурсов, необходимых для достижения какой-либо вычислительной цели.
Так зачем же нам тогда замедлять программы? Замедление программ может быть полезно для выявления условий гонки, моделирования ускорения и оценки точности профилировщиков.
Статья: https://apptractor.ru/info/articles/kak-zamedlit-programmu-i-pochemu-eto-mozhet-byt-polezno.html
Платформа: разработка
👍1
Capsule - скругленные углы для Jetpack Compose
Capsule - это библиотека Jetpack Compose, которая создает скругленные G2-сопряженные (радиус кривизны не имеет скачков) прямоугольники.
Отрисовка кубических кривых Безье на Android выполняется не очень эффективно. Однако библиотека Capsule использует очень эффективный метод расчёта контрольных точек, обеспечивая оптимальную теоретическую производительность.
Capsule на GitHub: https://github.com/Kyant0/Capsule
Платформа: Android
⭐️: 49
Capsule - это библиотека Jetpack Compose, которая создает скругленные G2-сопряженные (радиус кривизны не имеет скачков) прямоугольники.
Отрисовка кубических кривых Безье на Android выполняется не очень эффективно. Однако библиотека Capsule использует очень эффективный метод расчёта контрольных точек, обеспечивая оптимальную теоретическую производительность.
Capsule на GitHub: https://github.com/Kyant0/Capsule
Платформа: Android
⭐️: 49
👍1
Compose Multiplatform простое приложение c MVI
Статья об использовании мультиплатформенного решения на Compose с минимальным количеством сторонних beta библиотек
Статья: https://habr.com/ru/articles/941196/
Платформа: кроссплатформа
Статья об использовании мультиплатформенного решения на Compose с минимальным количеством сторонних beta библиотек
Статья: https://habr.com/ru/articles/941196/
Платформа: кроссплатформа
Хабр
Compose Multiplatform простое приложение c MVI
Статья об использовании мультиплатформенного решения на Compose с минимальным количеством сторонних beta библиотек Gradle Добавление зависимостей для каждой платформы делается в build.gradle.kts...
👍1
Android. Glance Widgets. Начало
Я с разработкой виджетов никогда не пересекался, честно говоря даже забыл о них, но на работе возникла задача - изучить, рассказать и интегрировать виджеты в приложение. После того, как задача была закончена решил поделиться своим опытом. Сталкивался с трудностями, буду рад, если статья поможет их разрешить.
Статья: https://habr.com/ru/articles/942886/
Платформа: Android
Я с разработкой виджетов никогда не пересекался, честно говоря даже забыл о них, но на работе возникла задача - изучить, рассказать и интегрировать виджеты в приложение. После того, как задача была закончена решил поделиться своим опытом. Сталкивался с трудностями, буду рад, если статья поможет их разрешить.
Статья: https://habr.com/ru/articles/942886/
Платформа: Android
Хабр
Android. Glance Widgets. Начало
Привет! Я с разработкой виджетов никогда не пересекался, честно говоря даже забыл о них, но на работе возникла задача - изучить, рассказать и интегрировать виджеты в приложение. После того, как задача...
❤1
Упрощаем NFC: обзор нового SDK для Android разработки
Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.
Статья: https://habr.com/ru/articles/942474/
Платформа: Android
Работа с NFC в Android всегда была непростой задачей. Нативный API требует от разработчика понимания низкоуровневых протоколов и механизмов обработки данных. Новый TAO NFC SDK (Android) призван решить эту проблему, предоставляя высокоуровневую абстракцию, которая значительно упрощает взаимодействие с NFC-метками.
Статья: https://habr.com/ru/articles/942474/
Платформа: Android
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем впечатляющие анимации загрузки с помощью SF Symbols
SF Symbols умеют проигрывать плавные анимации автоматически, позволяя легко настраивать стиль, цвет и даже сложные эффекты с помощью модификаторов (например,
Сегодня для большинства задач на iOS лучше использовать SF Symbols для создания анимаций загрузки — это просто, мощно и крайне гибко. Старые кастомные решения, как показал опыт автора, вполне можно удалить - теперь все делается буквально одной строкой.
Статья: https://danielsaidi.com/blog/2025/07/24/creating-amazing-loading-animations-with-sf-symbols
Мой перевод: https://apptractor.ru/info/articles/sozdanie-potryasayuschih-zagruzochnyh-animatsiy-s-pomoschyu-sf-symbols.html
Платформа: iOS
SF Symbols умеют проигрывать плавные анимации автоматически, позволяя легко настраивать стиль, цвет и даже сложные эффекты с помощью модификаторов (например,
.hideInactiveLayers и .iterative).Сегодня для большинства задач на iOS лучше использовать SF Symbols для создания анимаций загрузки — это просто, мощно и крайне гибко. Старые кастомные решения, как показал опыт автора, вполне можно удалить - теперь все делается буквально одной строкой.
Статья: https://danielsaidi.com/blog/2025/07/24/creating-amazing-loading-animations-with-sf-symbols
Мой перевод: https://apptractor.ru/info/articles/sozdanie-potryasayuschih-zagruzochnyh-animatsiy-s-pomoschyu-sf-symbols.html
Платформа: iOS
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Свертываем таб-бар при скролинге
Статья подробно рассказывает, как реализовать поведение складывающегося таб-бара в SwiftUI для более компактного пользовательского интерфейса при прокрутке контента. Автор предлагает использовать модификаторы поведения, такие как
Статья: https://www.createwithswift.com/making-the-tab-bar-collapse-while-scrolling/
Платформа: iOS
Статья подробно рассказывает, как реализовать поведение складывающегося таб-бара в SwiftUI для более компактного пользовательского интерфейса при прокрутке контента. Автор предлагает использовать модификаторы поведения, такие как
minimize, а также прокси ScrollViewReader для динамического управления отображением таб-бара, чтобы он автоматически скрывался и раскрывался в зависимости от взаимодействия пользователя.Статья: https://www.createwithswift.com/making-the-tab-bar-collapse-while-scrolling/
Платформа: iOS
👍3
Apple Docs MCP - Model Context Protocol Server для документации Apple
Документация Apple для разработчиков скрыта за JavaScript, что делает её невидимой для большинства LLM. Apple Docs MCP дает доступ к официальной документации Apple по языку Swift, фреймворкам, API, SwiftUI, UIKit и видеоматериалам WWDC через Model Context Protocol. Это делает документацию "видимой" и позволяет реализовать, например, поиск документации по iOS, macOS, watchOS, tvOS и visionOS с помощью ИИ-запросов на естественном языке. Получайте мгновенный доступ к примерам кода на Swift/Objective-C, справочникам по API и техническим руководствам прямо в Claude, Cursor или любом другом совместимом с MCP ИИ-помощнике.
Apple Docs MCP на GitHub: https://github.com/kimsungwhee/apple-docs-mcp
Платформа: iOS
⭐️: 377
Документация Apple для разработчиков скрыта за JavaScript, что делает её невидимой для большинства LLM. Apple Docs MCP дает доступ к официальной документации Apple по языку Swift, фреймворкам, API, SwiftUI, UIKit и видеоматериалам WWDC через Model Context Protocol. Это делает документацию "видимой" и позволяет реализовать, например, поиск документации по iOS, macOS, watchOS, tvOS и visionOS с помощью ИИ-запросов на естественном языке. Получайте мгновенный доступ к примерам кода на Swift/Objective-C, справочникам по API и техническим руководствам прямо в Claude, Cursor или любом другом совместимом с MCP ИИ-помощнике.
Apple Docs MCP на GitHub: https://github.com/kimsungwhee/apple-docs-mcp
Платформа: iOS
⭐️: 377
❤2👍1
SIP на iOS с Linphone SDK: Быстрая и надёжная VoIP-интеграция в мобильное приложение
Занимаюсь разработкой под iOS с 2012 года. С SIP ранее не работал, и его интеграция оказалась куда сложнее, чем ожидалось. Ниже делюсь основными трудностями и решениями.
Надеюсь получить конструктивную критику, а также советы по альтернативным подходам к решению описанных проблем.
Итак, задача: в кратчайшие сроки реализовать функциональность приёма звонков и набора номера для вызова на домофон.
Статья: https://habr.com/ru/articles/917206/
Платформа: iOS
Занимаюсь разработкой под iOS с 2012 года. С SIP ранее не работал, и его интеграция оказалась куда сложнее, чем ожидалось. Ниже делюсь основными трудностями и решениями.
Надеюсь получить конструктивную критику, а также советы по альтернативным подходам к решению описанных проблем.
Итак, задача: в кратчайшие сроки реализовать функциональность приёма звонков и набора номера для вызова на домофон.
Статья: https://habr.com/ru/articles/917206/
Платформа: iOS
👍1
Запуск бинарных файлов из data/data на Android 10+ (Обход SELinux)
С Android 10 (Target sdk 29) google ввели новую политику безопасности. Новая политика SELinux звучит просто: «Нельзя исполнять файлы из той директории, в которую можно записывать». Всё это очень хорошо, но многие проекты сломались (В том числе и мой). Termux из google play УМЕЕТ запускать бинарные файлы на target sdk 29+. Я решил поделится, как выполнить бинарный файл из data/data/com.ваш.пакет/files на новых версиях sdk БЕЗ полного клонирования Termux и БЕЗ С/C++ части. Сам метод запуска будет именно на java.
Статья: https://habr.com/ru/articles/943188/
Платформа: Android
С Android 10 (Target sdk 29) google ввели новую политику безопасности. Новая политика SELinux звучит просто: «Нельзя исполнять файлы из той директории, в которую можно записывать». Всё это очень хорошо, но многие проекты сломались (В том числе и мой). Termux из google play УМЕЕТ запускать бинарные файлы на target sdk 29+. Я решил поделится, как выполнить бинарный файл из data/data/com.ваш.пакет/files на новых версиях sdk БЕЗ полного клонирования Termux и БЕЗ С/C++ части. Сам метод запуска будет именно на java.
Статья: https://habr.com/ru/articles/943188/
Платформа: Android
😱1