Вышел Swift 6.1
Swift 6.1, выпущенный 31 марта 2025 года, представляет собой значительное обновление языка программирования Swift, направленное на повышение производительности, улучшение диагностики и расширение возможностей управления параллелизмом.
Анонс: https://www.swift.org/blog/swift-6.1-released/
Платформа: iOS
Swift 6.1, выпущенный 31 марта 2025 года, представляет собой значительное обновление языка программирования Swift, направленное на повышение производительности, улучшение диагностики и расширение возможностей управления параллелизмом.
Анонс: https://www.swift.org/blog/swift-6.1-released/
Платформа: iOS
Swift.org
Swift 6.1 Released
Swift 6.1 is now available!
This media is not supported in your browser
VIEW IN TELEGRAM
Как я создал UI-конструктор с помощью Compose Multiplatform
Алекс Стил на Compose Multiplatform создал визуальный конструктор, который экспортирует код Compose, «как будто бы написанный человеком». В этой статье о некоторых моментах его разработки и особенностях работы с Kotlin и Compose Multiplatform для десктопов.
Статья: https://apptractor.ru/info/articles/paper-compose-multiplatform.html
Платформа: кроссплатформа
Алекс Стил на Compose Multiplatform создал визуальный конструктор, который экспортирует код Compose, «как будто бы написанный человеком». В этой статье о некоторых моментах его разработки и особенностях работы с Kotlin и Compose Multiplatform для десктопов.
Статья: https://apptractor.ru/info/articles/paper-compose-multiplatform.html
Платформа: кроссплатформа
🔥1
DDKitSwift - универсальный фреймворк, который объединяет различные инструменты отладки посредством структуры плагинов. Встроенные инструменты:
• Логирование
• Тест сетевого подключения
• Сетевой пинг
• Определение FPS
• Просмотр файлов в песочнице
• Управление данными UserDefault
• Перехват и просмотр сетевых запросов
DDKitSwift на GitHub: https://github.com/DamonHu/DDKitSwift
Платформа: iOS
⭐️: 20
• Логирование
• Тест сетевого подключения
• Сетевой пинг
• Определение FPS
• Просмотр файлов в песочнице
• Управление данными UserDefault
• Перехват и просмотр сетевых запросов
DDKitSwift на GitHub: https://github.com/DamonHu/DDKitSwift
Платформа: iOS
⭐️: 20
👍2
SwiftUI: Пишем простое фитнес-приложение с использованием HealthKit
В этой статье я предлагаю вместе создать простое приложение для тренировок, которое позволит вам ознакомиться с основами этого удивительного фреймворка. Мы будем разрабатывать приложение для watchOS, так как именно эта платформа, на мой взгляд, наилучшим образом раскрывает потенциал HealthKit.
Статья: https://habr.com/ru/companies/otus/articles/898762/
Платформа: iOS
В этой статье я предлагаю вместе создать простое приложение для тренировок, которое позволит вам ознакомиться с основами этого удивительного фреймворка. Мы будем разрабатывать приложение для watchOS, так как именно эта платформа, на мой взгляд, наилучшим образом раскрывает потенциал HealthKit.
Статья: https://habr.com/ru/companies/otus/articles/898762/
Платформа: iOS
👍1
Compose и YouTube: готовое к проду воспроизведение YouTube с помощью Jetpack Compose
В статье автор Анатолий Фролов делится опытом интеграции воспроизведения YouTube-видео в приложение на основе Jetpack Compose. Стремясь предоставить пользователям возможность просмотра трейлеров и превью фильмов непосредственно в приложении, автор сталкивается с отсутствием официального API для такой интеграции в Compose. В качестве решения он использует AndroidView и библиотеку YouTube Player. Предложенный подход обеспечивает плавное и бесшовное воспроизведение YouTube-видео в приложениях на Jetpack Compose, улучшая пользовательский опыт и удовлетворяя запросы аудитории на встроенный видеоконтент.
Статья: https://proandroiddev.com/compose-meets-youtube-production-ready-youtube-playback-with-jetpack-compose-9e55013b411a
Платформа: Android
В статье автор Анатолий Фролов делится опытом интеграции воспроизведения YouTube-видео в приложение на основе Jetpack Compose. Стремясь предоставить пользователям возможность просмотра трейлеров и превью фильмов непосредственно в приложении, автор сталкивается с отсутствием официального API для такой интеграции в Compose. В качестве решения он использует AndroidView и библиотеку YouTube Player. Предложенный подход обеспечивает плавное и бесшовное воспроизведение YouTube-видео в приложениях на Jetpack Compose, улучшая пользовательский опыт и удовлетворяя запросы аудитории на встроенный видеоконтент.
Статья: https://proandroiddev.com/compose-meets-youtube-production-ready-youtube-playback-with-jetpack-compose-9e55013b411a
Платформа: Android
👍2❤1
Быстро и гибко: интеграция Rust
Автор делится опытом интеграции библиотеки пользовательского интерфейса
Выбор пал на
Для интеграции
В качестве примера автор рассматривает создание простого окна чата, где переключение активных диалогов происходит на стороне Swift. Он подробно описывает процесс настройки проекта, включая создание статической библиотеки на Rust, настройку
Автор предупреждает, что описанный подход является экспериментальным и может потребовать значительных усилий для реализации, но при этом открывает новые возможности для повышения производительности приложений.
Статья: https://medium.com/@djalex566/fast-fluid-integrating-rust-egui-into-swiftui-30a218c502c1
Платформа: iOS
👏: 117
egui в SwiftUIАвтор делится опытом интеграции библиотеки пользовательского интерфейса
egui, написанной на Rust, в приложение на SwiftUI. Столкнувшись с низкой производительностью стандартного компонента Table в SwiftUI и ограничениями NSTableView, автор решил исследовать альтернативные решения для улучшения производительности своего приложения.Выбор пал на
egui — библиотеку, использующую подход immediate mode для построения интерфейса, что позволяет перерисовывать UI каждый кадр без сохранения состояния между обновлениями. Это обеспечивает высокую скорость и отзывчивость интерфейса.Для интеграции
egui в SwiftUI автор предложил следующую архитектуру: основная структура приложения остается на SwiftUI, а egui используется для реализации производительно критичных компонентов. Связь между Swift и Rust осуществляется с помощью библиотеки swift-bridge, которая упрощает взаимодействие между этими языками.В качестве примера автор рассматривает создание простого окна чата, где переключение активных диалогов происходит на стороне Swift. Он подробно описывает процесс настройки проекта, включая создание статической библиотеки на Rust, настройку
swift-bridge и реализацию рендерера с использованием wgpu для обработки графики.Автор предупреждает, что описанный подход является экспериментальным и может потребовать значительных усилий для реализации, но при этом открывает новые возможности для повышения производительности приложений.
Статья: https://medium.com/@djalex566/fast-fluid-integrating-rust-egui-into-swiftui-30a218c502c1
Платформа: iOS
👏: 117
👍2
Полное руководство по созданию многоцветных тематических и адаптивных иконок для Android-приложений
Для обеспечения единообразия иконок приложений, отображаемых на главном экране лаунчером, были введены адаптивные и тематические значки. В этой статье мы рассмотрим процесс разработки многоцветных и градиентных иконок. Узнаем, как создавать адаптивные и тематические иконки для Android-приложений. В этом руководстве содержатся советы по дизайну, этапы реализации и передовые методы дизайна современных иконок для Android.
Статья: https://apptractor.ru/info/articles/app-icons-android.html
Платформа: Android
Для обеспечения единообразия иконок приложений, отображаемых на главном экране лаунчером, были введены адаптивные и тематические значки. В этой статье мы рассмотрим процесс разработки многоцветных и градиентных иконок. Узнаем, как создавать адаптивные и тематические иконки для Android-приложений. В этом руководстве содержатся советы по дизайну, этапы реализации и передовые методы дизайна современных иконок для Android.
Статья: https://apptractor.ru/info/articles/app-icons-android.html
Платформа: Android
Kyoku - это приложение для потоковой передачи музыки, подобное Spotify или Apple Music. Оно использует протокол HLS для потоковой передачи музыки и в нем есть более 70 тысяч песен. В клиенте Jetpack Compose, WorkManager, Hilt, Media3, OkHttp, Room, Coil, на сервере Ktor, MySQL, JWT и Jedis.
Kyoku на GitHub: https://github.com/POULASTAAdAS/Kyoku
Платформа: Android
⭐️: 10
Kyoku на GitHub: https://github.com/POULASTAAdAS/Kyoku
Платформа: Android
⭐️: 10
Воспроизведение и редактирование видео с AVFoundation. Часть 2. Ассеты продвинутые
Перед вами вторая статья из цикла про воспроизведение и редактирование медиа с помощью AVFoundation. В предыдущей статье рассказали, что такое простой ассет. Сегодня разбирают тему сложных ассетов. А ещё знакомят с идеями, которые могут лежать в основе любого видеопроигрывателя или видеоредактора.
Статья: https://habr.com/ru/articles/899304/
Платформа: iOS
Перед вами вторая статья из цикла про воспроизведение и редактирование медиа с помощью AVFoundation. В предыдущей статье рассказали, что такое простой ассет. Сегодня разбирают тему сложных ассетов. А ещё знакомят с идеями, которые могут лежать в основе любого видеопроигрывателя или видеоредактора.
Статья: https://habr.com/ru/articles/899304/
Платформа: iOS
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
6 шагов, чтобы сделать Slide to unlock кнопку в Jetpack Compose
Статья предоставляет детальное руководство по созданию интерактивной кнопки с использованием Jetpack Compose, включая кодовые примеры и объяснения каждого шага.
Статья: https://proandroiddev.com/6-steps-to-make-a-slide-to-unlock-button-in-jetpack-compose-ee9398cecf5f
Платформа: Android
👏: 22
Статья предоставляет детальное руководство по созданию интерактивной кнопки с использованием Jetpack Compose, включая кодовые примеры и объяснения каждого шага.
Статья: https://proandroiddev.com/6-steps-to-make-a-slide-to-unlock-button-in-jetpack-compose-ee9398cecf5f
Платформа: Android
👏: 22
❤1
Дизассемблируем Apple Exclaves
Apple Exclaves — это новая технология аппаратной и программной изоляции, предназначенная для выполнения чувствительных задач в отдельной, защищённой среде, физически и логически изолированной от основной операционной системы и приложений.
В статье автор делится результатами анализа новой архитектуры безопасности Apple. В ходе исследования он выявил несколько ключевых аспектов и анализ предоставляет ценную информацию о внутреннем устройстве Exclaves, подчеркивая стремление Apple к усилению изоляции и безопасности критически важных компонентов системы.
Статья: https://randomaugustine.medium.com/disassembling-apple-exclaves-7979bb987f86
Платформа: iOS
👏: 67
Apple Exclaves — это новая технология аппаратной и программной изоляции, предназначенная для выполнения чувствительных задач в отдельной, защищённой среде, физически и логически изолированной от основной операционной системы и приложений.
В статье автор делится результатами анализа новой архитектуры безопасности Apple. В ходе исследования он выявил несколько ключевых аспектов и анализ предоставляет ценную информацию о внутреннем устройстве Exclaves, подчеркивая стремление Apple к усилению изоляции и безопасности критически важных компонентов системы.
Статья: https://randomaugustine.medium.com/disassembling-apple-exclaves-7979bb987f86
Платформа: iOS
👏: 67
👍1
Создание и публикация SDK для Android: простое пошаговое руководство, которое действительно работает
Разработка и публикация собственного Android SDK может показаться сложной задачей, но благодаря подробному руководству этот процесс становится понятным и доступным. В своей статье автор делится практическими шагами по созданию и распространению SDK.
Ключевые этапы, рассмотренные в статье:
1. Настройка проекта и модуля библиотеки:
2. Разработка логики SDK и публичного API:
3. Публикация SDK с использованием GitHub и JitPack:
4. Интеграция SDK в реальное приложение на основе Jetpack Compose:
Это руководство особенно полезно для разработчиков, желающих создать собственные библиотеки и поделиться ими с сообществом. Оно охватывает все аспекты — от начальной настройки до публикации и интеграции, предоставляя ясные инструкции и примеры кода.
Статья: https://apptractor.ru/android-sdk-step-by-step
Платформа: Android
👏: 131
Разработка и публикация собственного Android SDK может показаться сложной задачей, но благодаря подробному руководству этот процесс становится понятным и доступным. В своей статье автор делится практическими шагами по созданию и распространению SDK.
Ключевые этапы, рассмотренные в статье:
1. Настройка проекта и модуля библиотеки:
2. Разработка логики SDK и публичного API:
3. Публикация SDK с использованием GitHub и JitPack:
4. Интеграция SDK в реальное приложение на основе Jetpack Compose:
Это руководство особенно полезно для разработчиков, желающих создать собственные библиотеки и поделиться ими с сообществом. Оно охватывает все аспекты — от начальной настройки до публикации и интеграции, предоставляя ясные инструкции и примеры кода.
Статья: https://apptractor.ru/android-sdk-step-by-step
Платформа: Android
👏: 131
❤1
Расширяем Text в SwiftUI с помощью динамической стилизации содержимого
В этой статье мы рассмотрим, как расширить SwiftUI
Статья: https://apptractor.ru/info/articles/text-swiftui-stil.html
Платформа: iOS
В этой статье мы рассмотрим, как расширить SwiftUI
Text с помощью кастомизации любых частей его содержимого, как отдельных слов, так и более длинных сегментов.Статья: https://apptractor.ru/info/articles/text-swiftui-stil.html
Платформа: iOS
👍1
Лучшие приложения с открытым исходным на Kotlin
Обсуждение на Reddit - знаете ли вы хорошие приложения с открытым исходным кодом, написанные на Kotlin, сложные и нормально структурированные?
• Bitwarden Android — менеджер паролей
• Now in Android — официальное учебное приложение Google для изучающих Android-разработку
• Atomic — Periodic Table — периодическая таблица химических элементов, пет-преокт одного из участников
• Telegram — исходники мессенджера
• Tachiyomi/Mihon — открытый ридер манги для Android (код сложен и не очень хорошо структурирован)
• KotlinConf — приложение самой большой конференции по Kotlin (сделано на Kotlin Multiplatform и Compose Multiplatform)
• Home Assistant Companion for Android — приложение Google для домашней автоматизации
• Rijksmuseum — мультимодульное мультиплатформенное приложение на Kotlin и Compose, которое предлагает захватывающий способ изучения художественной коллекции Рейксмузея в Амстердаме
• Premier League — полнофункциональное приложение с открытым исходным кодом на KMP, содержащее результаты матчей английской футбольной лиги, пет-преокт одного из участников
• Pokedex Compose — приложение про покемонов, которое демонстрирует современную разработку для Android с использованием Compose, Hilt, Coroutines, Flow, Jetpack и Material Design на основе MVVM-архитектуры
Статья: https://apptractor.ru/info/github/luchshie-prilozheniya-s-otkrytym-ishodnym-na-kotlin.html
Платформа: Android
Обсуждение на Reddit - знаете ли вы хорошие приложения с открытым исходным кодом, написанные на Kotlin, сложные и нормально структурированные?
• Bitwarden Android — менеджер паролей
• Now in Android — официальное учебное приложение Google для изучающих Android-разработку
• Atomic — Periodic Table — периодическая таблица химических элементов, пет-преокт одного из участников
• Telegram — исходники мессенджера
• Tachiyomi/Mihon — открытый ридер манги для Android (код сложен и не очень хорошо структурирован)
• KotlinConf — приложение самой большой конференции по Kotlin (сделано на Kotlin Multiplatform и Compose Multiplatform)
• Home Assistant Companion for Android — приложение Google для домашней автоматизации
• Rijksmuseum — мультимодульное мультиплатформенное приложение на Kotlin и Compose, которое предлагает захватывающий способ изучения художественной коллекции Рейксмузея в Амстердаме
• Premier League — полнофункциональное приложение с открытым исходным кодом на KMP, содержащее результаты матчей английской футбольной лиги, пет-преокт одного из участников
• Pokedex Compose — приложение про покемонов, которое демонстрирует современную разработку для Android с использованием Compose, Hilt, Coroutines, Flow, Jetpack и Material Design на основе MVVM-архитектуры
Статья: https://apptractor.ru/info/github/luchshie-prilozheniya-s-otkrytym-ishodnym-na-kotlin.html
Платформа: Android
👍1
•
(iOS Ru) Нервное смузи из Swift Package Registry•
(iOS Ru) Альтернативы XCUITest, или Как и зачем разработчику писать автотесты•
(iOS En) Set Up a Local Test Server with Swift in Under 5 Minutes + iOS app SwiftUI•
(iOS En) Expandable Header with Hero Effect - Slack Header Animation | SwiftUI •
(iOS En) SwiftUI - Scratch to Reveal animation•
(iOS En) What's new in Swift 6.1?•
(iOS En) SwiftUI Micro-interactions - Slide To Confirm•
(iOS En) Xcode 16.3 is Available Today (What's New?)•
(And Ru) Modo в действии: быстрая и гибкая навигация для Jetpack Compose•
(And Ru) Как сделать своп движка звонков в легаси-коде и не выгореть•
(And Ru) Backup в Android, или Как сэкономить бизнесу миллионы•
(And En) Linting on the Side of Caution: Safety & Security - Android Developers Backstage•
(And En) Google Play PolicyBytes - April 2025 policy updates•
(And En) Kotlin 2.1.20 - Atomics, UUIDs, and more! - TypeAlias Show•
(Crs Ru) Это вам не игрушки: портирование кроссплатформенной С++ игры на iOS•
(Crs Ru) Accessibility Flutter-приложений, или Как увеличить трафик на 20•
(Crs En) Lynx Tutorial – JS Framework for Cross Platform Development•
(Crs En) Hot Reload For Flutter Web is Finally in Beta•
(Dev En) Top 5 Mobile System Design Concepts Explained•
(Dev En) Freelancing as Mobile Dev vs. Full-time Job - Which Path Is Best For YOU?•
(Dev En) Introducing Agent Development Kit•
(Dev En) Train Your Own LLM – TutorialЧто было год назад:
•
(And Ru) Экзоскелет для ExoPlayer•
(Crs Ru) Как мы сделали ставку на KMP•
(Crs Ru) Зачем мне Kotlin в iOS-разработке? Я только Swift выучил!•
(Dev Ru) Как дизайнить доступность для скринридера•
(Dev Ru) Проблемы маленьких приложений при увеличении нагрузки по данным•
(Dev Ru) Как выжать все соки из Jenkins•
(Dev Ru) Убиваем Lottie? Тащим Rive?•
(Dev Ru) Вся правда про удаленку•
(Dev Ru) Зачем нужен Zig, и чем он отличается от других языковPlease open Telegram to view this post
VIEW IN TELEGRAM
Telegram
AppFiles - Mobile Development
Библиотеки, обучающие статьи, курсы и видео для (мобильных) разработчиков. Если есть вопросы - пишите @lbogolubov.
StorySDK - это платформа для создания и добавления историй в мобильные приложения (с веб-конструктором).
Интегрировав StorySDK вы сможете сделать онбординг, отображение групп историй с помощью виджета, изменять настройки, например, включение полноэкранного режима, показ/скрытие заголовка, установка продолжительности каждой истории и цвета прогресса.
Сам сервис бесплатен до 1000 MAU, дальше нужно будет платить.
StorySDK на GitHub: https://github.com/StorySDK/story-ios-sdk
Платформа: iOS
⭐️: 34
Интегрировав StorySDK вы сможете сделать онбординг, отображение групп историй с помощью виджета, изменять настройки, например, включение полноэкранного режима, показ/скрытие заголовка, установка продолжительности каждой истории и цвета прогресса.
Сам сервис бесплатен до 1000 MAU, дальше нужно будет платить.
StorySDK на GitHub: https://github.com/StorySDK/story-ios-sdk
Платформа: iOS
⭐️: 34
👍1
Демоприложения: как жить, когда у вас 90+ application-модулей
В предыдущей статье основной акцент был на сокращении времени сборки и синхронизации кода с Android Studio. Но так уж выходит, что, решая одну проблему, мы порождаем другие. Если раньше был один единственный application module, к которому подключались все остальные модули для сборки в конечный артефакт(apk, aab), то сейчас таких модулей стало приблизительно на 90 больше.
Меня зовут Роман Заремба и я расскажу, как мы ушли от кода интеграции в application-модулях, пересмотрели базовые решения, придумали подход collector + initializer, перешли на библиотеку App Startup, избавились от нее и стали использовать стандартный Java ServiceLoader.
Статья: https://habr.com/ru/companies/tbank/articles/899714/
Платформа: Android
В предыдущей статье основной акцент был на сокращении времени сборки и синхронизации кода с Android Studio. Но так уж выходит, что, решая одну проблему, мы порождаем другие. Если раньше был один единственный application module, к которому подключались все остальные модули для сборки в конечный артефакт(apk, aab), то сейчас таких модулей стало приблизительно на 90 больше.
Меня зовут Роман Заремба и я расскажу, как мы ушли от кода интеграции в application-модулях, пересмотрели базовые решения, придумали подход collector + initializer, перешли на библиотеку App Startup, избавились от нее и стали использовать стандартный Java ServiceLoader.
Статья: https://habr.com/ru/companies/tbank/articles/899714/
Платформа: Android
👍1
SwiftUI: Реализация разделенного координатора совместно с DeepLink (Universal link)
Навигация при помощи текстовой строки внутри приложения может и не быть самым удобным способом для разработчика, но когда строковое значение приходит из вне приложения — это едва ли не самый надежный вариант переместить пользователя внутрь вложенной системы иерархии экранов. Вместе с тем, довольно часты ситуации, когда вместе с путем навигации передаются еще и параметры, с которыми экран должен быть отображен. Если схема координатора задана через перечисление, то возникает неоднозначность — либо координатор не может быть развернут исходя из названий элементов перечисления, либо, конкретные координаторы будут унаследованы от типа String, но параметры не могут быть переданы как ассоциированные значения.
Использование концепции MVVM порождает еще один философский вопрос: может ли один и тот же экран с одной и той же viewmodel иметь различные типы входных параметров. Конечно, для идеологии чистого кода — ответ однозначен. Но ведь если нет нужды в создании нового вида или новой view model, то подавляющее количество разработчиков предпочтет переиспользовать один и тот же экран и для отображения десериализированного объекта, и для сериализированных параметров, передаваемых строкой в пути навигации.
Статья: https://habr.com/ru/articles/899764/
Платформа: iOS
Навигация при помощи текстовой строки внутри приложения может и не быть самым удобным способом для разработчика, но когда строковое значение приходит из вне приложения — это едва ли не самый надежный вариант переместить пользователя внутрь вложенной системы иерархии экранов. Вместе с тем, довольно часты ситуации, когда вместе с путем навигации передаются еще и параметры, с которыми экран должен быть отображен. Если схема координатора задана через перечисление, то возникает неоднозначность — либо координатор не может быть развернут исходя из названий элементов перечисления, либо, конкретные координаторы будут унаследованы от типа String, но параметры не могут быть переданы как ассоциированные значения.
Использование концепции MVVM порождает еще один философский вопрос: может ли один и тот же экран с одной и той же viewmodel иметь различные типы входных параметров. Конечно, для идеологии чистого кода — ответ однозначен. Но ведь если нет нужды в создании нового вида или новой view model, то подавляющее количество разработчиков предпочтет переиспользовать один и тот же экран и для отображения десериализированного объекта, и для сериализированных параметров, передаваемых строкой в пути навигации.
Статья: https://habr.com/ru/articles/899764/
Платформа: iOS
👍1
Интегрируем TimelineView в SwiftUI-приложение
Статья: https://apptractor.ru/info/articles/timelineview-swiftui.html
Платформа: iOS
TimelineView — это мощное контейнерное представление в SwiftUI, предназначенное для создания динамических интерфейсов, изменяющихся во времени. В отличие от традиционных представлений, которые обновляются только при изменении состояния, TimelineView позволяет обновлять информацию по определенному расписанию, что делает его идеальным для плавной, непрерывной анимации и создания интерактивных элементов, реагирующих на течение времени.Статья: https://apptractor.ru/info/articles/timelineview-swiftui.html
Платформа: iOS
👍1
WriteBuddy - помощник для ведения заметок на Compose. Есть два режима. Режим Sticky - это функция, позволяющая пользователям размещать на экране различные клейкие элементы, такие как стикеры, изображения и текстовые поля, и управлять ими. Пользователи могут добавлять наклейки, перемещать их, изменять их размер и свойства. Режим ToolMode предоставляет новые функциональные возможности благодаря сенсорному взаимодействию с пользователем. Тут пользователи могут писать на экране рукой или клеить ленты.
WriteBuddy на GitHub: https://github.com/henni99/WriteBuddy
Платформа: Android
⭐️: 93
WriteBuddy на GitHub: https://github.com/henni99/WriteBuddy
Платформа: Android
⭐️: 93