Что такое структурированный параллелизм (Structured Concurrency)
Когда мы говорим о параллелизме Swift (Swift Concurrency), мы также часто упоминаем структурированный параллелизм (Structured Concurrency). Это фундаментальная часть async/await в Swift и она помогает нам понять, как работают последние усовершенствования Swift в области параллелизма.
До async/await мы писали наши асинхронные методы, используя замыкания и Grand Central Dispatch (GCD). Это работало хорошо, но часто приводило к так называемому аду замыканий - отсутствию понимания из-за перетекающих друг в друга связанных замыканий. Структурированный параллелизм упрощает выполнение асинхронного кода, но у нас все еще есть неструктурированные задачи. Поэтому пришло время углубиться в фундаментальный аспект параллелизма Swift.
Статья: https://apptractor.ru/info/articles/chto-takoe-strukturirovannyy-parallelizm-structured-concurrency.html
Платформа: iOS
Когда мы говорим о параллелизме Swift (Swift Concurrency), мы также часто упоминаем структурированный параллелизм (Structured Concurrency). Это фундаментальная часть async/await в Swift и она помогает нам понять, как работают последние усовершенствования Swift в области параллелизма.
До async/await мы писали наши асинхронные методы, используя замыкания и Grand Central Dispatch (GCD). Это работало хорошо, но часто приводило к так называемому аду замыканий - отсутствию понимания из-за перетекающих друг в друга связанных замыканий. Структурированный параллелизм упрощает выполнение асинхронного кода, но у нас все еще есть неструктурированные задачи. Поэтому пришло время углубиться в фундаментальный аспект параллелизма Swift.
Статья: https://apptractor.ru/info/articles/chto-takoe-strukturirovannyy-parallelizm-structured-concurrency.html
Платформа: iOS
Локализация в Jetpack Compose
Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.
С введением языковых предпочтений для каждого приложения (Per-app Language Preference) в Android 13 (API уровня 33) управление языками, специфичными для приложений, стало намного проще.
Статья: https://apptractor.ru/info/articles/lokalizatsiya-v-jetpack-compose.html
Платформа: Android
Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.
С введением языковых предпочтений для каждого приложения (Per-app Language Preference) в Android 13 (API уровня 33) управление языками, специфичными для приложений, стало намного проще.
Статья: https://apptractor.ru/info/articles/lokalizatsiya-v-jetpack-compose.html
Платформа: Android
Compose Permission Manager - легковесная библиотека Android, которая упрощает управление разрешениями в приложениях Jetpack Compose. Эта библиотека предоставляет композабл API для простого запроса, проверки и обработки разрешений приложений. Она поддерживает настраиваемые диалоги обоснований и настроек, проверку разрешений в манифесте и потоки разрешений с учетом жизненного цикла.
Compose Permission Manager на GitHub: https://github.com/meticha/permissions-compose
Платформа: Android
⭐️: 40
Compose Permission Manager на GitHub: https://github.com/meticha/permissions-compose
Платформа: Android
⭐️: 40
👍1
Как мы ускорили работу с базой данных в Android-приложении
Эта небольшая статья про то, как мы ускорили работу с БД в Android-приложении, исправив очевидные и не слишком ошибки.
Проблемы:
• Обращение к БД в циклах
• Хранение JSON-объектов в БД
Статья: https://habr.com/ru/companies/scanny/articles/883398/
Платформа: Android
Эта небольшая статья про то, как мы ускорили работу с БД в Android-приложении, исправив очевидные и не слишком ошибки.
Проблемы:
• Обращение к БД в циклах
• Хранение JSON-объектов в БД
Статья: https://habr.com/ru/companies/scanny/articles/883398/
Платформа: Android
Как очистить Xcode от мусора и освободить ценное дисковое пространство на вашем Mac
Окончательное и бесповоротное руководство по очистке Mac от мусора Xcode.
Статья: https://apptractor.ru/info/articles/kak-ochistit-xcode.html
Платформа: iOS
Окончательное и бесповоротное руководство по очистке Mac от мусора Xcode.
Статья: https://apptractor.ru/info/articles/kak-ochistit-xcode.html
Платформа: iOS
👍5
Начинаем работу с Imagen 3 в Android-приложении через Vertex AI в Firebase
Imagen 3 — самая передовая модель генерации изображений, теперь доступна через Vertex AI в Firebase, что еще больше упрощает ее интеграцию в ваши приложения для Android.
Разработанная для создания хорошо продуманных композиций с исключительной детализацией, уменьшением артефактов и богатым освещением, Imagen 3 представляет собой значительный скачок вперед в возможностях генерации изображений.
Статья: https://apptractor.ru/info/articles/imagen-3-v-android.html
Платформа: Android
Imagen 3 — самая передовая модель генерации изображений, теперь доступна через Vertex AI в Firebase, что еще больше упрощает ее интеграцию в ваши приложения для Android.
Разработанная для создания хорошо продуманных композиций с исключительной детализацией, уменьшением артефактов и богатым освещением, Imagen 3 представляет собой значительный скачок вперед в возможностях генерации изображений.
Статья: https://apptractor.ru/info/articles/imagen-3-v-android.html
Платформа: Android
VisualDebugger - элегантный и простой способ визуализации данных в исходных файлах. Особенности: поддерживает нескольких систем координат (yUp, yDown), визуальная отладка Mesh структур, визуальная отладка коллекций точек с настраиваемыми стилями, визуальная отладка кривых Безье, поддержка платформ iOS и macOS, гибкая система настройки стилей, детальное отображение и маркировка координатных осей.
VisualDebugger на GitHub: https://github.com/chenyunguiMilook/VisualDebugger
Платформа: iOS
⭐️: 23
VisualDebugger на GitHub: https://github.com/chenyunguiMilook/VisualDebugger
Платформа: iOS
⭐️: 23
🔥1
Руководство по использованию unsafe в Swift
Использование unsafe в Swift открывает дополнительные возможности для оптимизации и взаимодействия с C API, однако требует повышенной внимательности и тщательного контроля за управлением памятью. При грамотном подходе и использовании встроенных механизмов, таких как withUnsafe* и Unmanaged, можно безопасно интегрировать низкоуровневые операции в высокоуровневые приложения. Главное — не злоупотреблять прямыми указателями и ограничивать область их применения, документируя и тестируя каждое изменение.
Статья: https://habr.com/ru/articles/887914/
Платформа: iOS
Использование unsafe в Swift открывает дополнительные возможности для оптимизации и взаимодействия с C API, однако требует повышенной внимательности и тщательного контроля за управлением памятью. При грамотном подходе и использовании встроенных механизмов, таких как withUnsafe* и Unmanaged, можно безопасно интегрировать низкоуровневые операции в высокоуровневые приложения. Главное — не злоупотреблять прямыми указателями и ограничивать область их применения, документируя и тестируя каждое изменение.
Статья: https://habr.com/ru/articles/887914/
Платформа: iOS
Хабр
Руководство по использованию unsafe в Swift
В этой статье мы рассматрим различные подходы для работы с небезопасными операциями в языке программирования Swift. Swift предоставляет несколько способов для работы с указателями и низкоуровневой...
Как iOS-приложение Tinder сократило размер локализаций на 95%
В целом эти усилия привели к уменьшению размера загружаемого файла на 10,7 МБ и уменьшению размера устанавливаемого приложения на 51,3 МБ без какого-либо ущерба для разработчиков или конечных пользователей.
Статья: https://apptractor.ru/info/articles/kak-ios-prilozhenie-tinder-sokratilo-razmer-lokalizatsiy-na-95.html
Платформа: iOS
В целом эти усилия привели к уменьшению размера загружаемого файла на 10,7 МБ и уменьшению размера устанавливаемого приложения на 51,3 МБ без какого-либо ущерба для разработчиков или конечных пользователей.
Статья: https://apptractor.ru/info/articles/kak-ios-prilozhenie-tinder-sokratilo-razmer-lokalizatsiy-na-95.html
Платформа: iOS
Обработка истечения срока действия токена в Ktor: автоматическое обновление токенов для вызовов API
В статье обсуждается проблема истечения срока действия токенов в Ktor-приложениях и способы её автоматического решения. Автор объясняет, как правильно организовать механизм обновления токена, чтобы избежать ошибок при выполнении API-запросов. Рассматривается использование Ktor HttpClient и механизмов плагинов для перехвата ответов сервера с ошибкой аутентификации. Приводится реализация кастомного плагина, который автоматически обновляет токен и повторяет запрос без вмешательства пользователя. В завершение статьи описаны потенциальные проблемы, такие как гонки обновления токена, и предлагаются способы их предотвращения.
Статья: https://proandroiddev.com/handling-token-expiration-in-ktor-automatic-token-refresh-for-api-calls-e79badd379dc
Платформа: Android
В статье обсуждается проблема истечения срока действия токенов в Ktor-приложениях и способы её автоматического решения. Автор объясняет, как правильно организовать механизм обновления токена, чтобы избежать ошибок при выполнении API-запросов. Рассматривается использование Ktor HttpClient и механизмов плагинов для перехвата ответов сервера с ошибкой аутентификации. Приводится реализация кастомного плагина, который автоматически обновляет токен и повторяет запрос без вмешательства пользователя. В завершение статьи описаны потенциальные проблемы, такие как гонки обновления токена, и предлагаются способы их предотвращения.
Статья: https://proandroiddev.com/handling-token-expiration-in-ktor-automatic-token-refresh-for-api-calls-e79badd379dc
Платформа: Android
👍1
Почему в Android нет функции main?
В языках программирования, таких как C и Java, функция
Статья: https://medium.com/@sevbanbuyer/why-is-there-no-main-function-in-android-1198032a5a15
Платформа: Android
В языках программирования, таких как C и Java, функция
main служит точкой входа, с которой начинается выполнение программы. Однако в Android-приложениях отсутствует явная функция main. Это связано с архитектурой Android, где управление жизненным циклом приложения берет на себя операционная система. Вместо функции main, Android использует манифестный файл (AndroidManifest.xml), в котором указывается основная активность (Activity) приложения. Эта активность помечается фильтром намерений (intent-filter) с действиями MAIN и категорией LAUNCHER, что позволяет системе определить, с какой активности начинать выполнение приложения. Таким образом, точка входа в Android-приложении определяется не явной функцией main, а конфигурацией в манифесте, что обеспечивает гибкость и модульность в управлении компонентами приложения.Статья: https://medium.com/@sevbanbuyer/why-is-there-no-main-function-in-android-1198032a5a15
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Симметричные и асимметричные переходы в SwiftUI с помощью модификатора Scroll Transition
В статье рассматривается использование нового модификатора
Статья: https://www.createwithswift.com/symmetrical-and-asymmetrical-transitions-in-swiftui-with-the-scroll-transition-modifier/
Платформа: iOS
В статье рассматривается использование нового модификатора
scrollTransition, представленного в iOS 17, для создания анимаций при появлении и исчезновении представлений в прокручиваемых контейнерах. Этот модификатор позволяет создавать динамичные визуальные эффекты, привлекающие внимание к элементам интерфейса при их входе или выходе из видимой области.Статья: https://www.createwithswift.com/symmetrical-and-asymmetrical-transitions-in-swiftui-with-the-scroll-transition-modifier/
Платформа: iOS
Lynx - новый кроссплатформенный фреймворк
Как любитель кроссплатформенных решений не могу пройти мимо!
Сегодня представили и выложили в open source Lynx - семейство технологий, позволяющих разработчикам использовать имеющиеся у них навыки работы в Интернете для создания по-настоящему нативных пользовательских интерфейсов для мобильных и веб-приложений на основе единой кодовой базы. Разработанный для различных сценариев использования и богатой интерактивности, Lynx обеспечивает яркие и привлекательные пользовательские интерфейсы для таких масштабных приложений, как TikTok (глава проекта - нынешний архитектор ByteDance, бывший React-инженер в компании на M), благодаря быстрому и универсальному движку рендеринга, двухпоточному программированию пользовательского интерфейса, современному инструментарию на основе Rust и многому другому.
Lynx уже готов к продакшену и уже используется огромным количеством компаний. Сегодня выложили в открытый доступ именно ту версию, которую используем в проде, поэтому она начинается с версии 3.x. Она включает в себя даже устаревший код и API, которые намерены изжить, но разработчики верят в открытость исходного кода и помощь сообщества.
Платформа: кроссплатформа
Как любитель кроссплатформенных решений не могу пройти мимо!
Сегодня представили и выложили в open source Lynx - семейство технологий, позволяющих разработчикам использовать имеющиеся у них навыки работы в Интернете для создания по-настоящему нативных пользовательских интерфейсов для мобильных и веб-приложений на основе единой кодовой базы. Разработанный для различных сценариев использования и богатой интерактивности, Lynx обеспечивает яркие и привлекательные пользовательские интерфейсы для таких масштабных приложений, как TikTok (глава проекта - нынешний архитектор ByteDance, бывший React-инженер в компании на M), благодаря быстрому и универсальному движку рендеринга, двухпоточному программированию пользовательского интерфейса, современному инструментарию на основе Rust и многому другому.
Lynx уже готов к продакшену и уже используется огромным количеством компаний. Сегодня выложили в открытый доступ именно ту версию, которую используем в проде, поэтому она начинается с версии 3.x. Она включает в себя даже устаревший код и API, которые намерены изжить, но разработчики верят в открытость исходного кода и помощь сообщества.
Этот релиз - только начало. То, что мы открываем сегодня, - далеко не все. Множество периферии, которой мы гордимся, в том числе дополнительные компоненты пользовательского интерфейса, расширенные встроенные графические возможности, пользовательский рендерер и другие фреймворки, еще впереди.
Платформа: кроссплатформа
🤔2
Firebase SignIn With Email And Password - приложение на Kotlin, которое показывает, как аутентифицировать пользователей с помощью Firebase, используя компоненты архитектуры Android и архитектурный паттерн MVVM. Для создания пользовательского интерфейса используется Jetpack Compose.
Firebase SignIn With Email And Password на GitHub: https://github.com/alexmamo/FirebaseSignInWithEmailAndPassword
Платформа: Android
⭐️: 39
Firebase SignIn With Email And Password на GitHub: https://github.com/alexmamo/FirebaseSignInWithEmailAndPassword
Платформа: Android
⭐️: 39
•
(iOS En) Swift DevRoom at FOSDEM 2025•
(iOS En) Minor Annoyances in Dealing with State•
(iOS En) Building a 3D Watch Face with Metal•
(iOS En) Best practices for safe and easy Core Data integration in a modern Swift app•
(iOS En) Dynamic Floating Sheets Like Family App - Animations - SwiftUI•
(iOS En) SwiftUI App Shortcuts - App Intents - Action Shortcuts•
(And Ru) Как устроена мобильная архитектура. Интервью с тех. лидером юнита «Mobile Architecture» из AvitoTech•
(And En) Compose runtime and performance - Android Developers Backstage•
(And En) Wonderful Widgets - Spotlight Week•
(And En) Is It Worth to Learn Native Android as a Beginner In 2025?•
(And En) 3 Navigation issues that you MUST Avoid!•
(And En) Making Gradients Easy! Chris Sinco shows us how Mesh simplifies gradient design in Compose•
(And En) Port your Android App to the Web•
(Crs Ru) Заезжаем в KMP. Но какой ценой?•
(Crs En) How to Use Native iOS Views (Swift UI) In Compose Multiplatform•
(Crs En) Google Maps vs OpenStreetMap in Flutter•
(Dev Ru) Внедряем Server Driven UI•
(Dev Ru) Нужна ли программисту вышка — в какой ВУЗ пойти учиться•
(Dev Ru) Путь новичка: где набраться опыта и как найти первую работу•
(Dev En) Learn PyTorch in 5 Projects – Tutorial•
(Dsg En) Designing a Storytelling App for KidsЧто было год назад:
•
(iOS Ru) Minimal Widget Product: путь к эффективной и гибкой реализации виджетов•
(iOS Ru) Уроки Swift: UITextField с анимированным плейсхолдером•
(And Ru) Разработка новостного приложения. Часть 3•
(And Ru) Hilt в многомодульный проект — пособие по внедрению зависимостей для новичков•
(Crs Ru) Адаптивная вёрстка во Flutter•
(Crs Ru) Я.Субботник по мобильной разработкеPlease open Telegram to view this post
VIEW IN TELEGRAM
Xcore - это коллекция сотен расширений и компонентов Swift, разработанных для минимизации шаблонного кода и простого выполнения общих задач. Это фреймворк для эффективного создания и масштабирования приложений без ущерба для качества, удобства сопровождения и производительности разработчиков.
Xcore на GitHub: https://github.com/zmian/xcore
Платформа: iOS
⭐️: 128
Xcore на GitHub: https://github.com/zmian/xcore
Платформа: iOS
⭐️: 128
Вход в мобильном приложении с Telegram
Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. В этой статье автор делится примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typenoscript + React, Go и Swift.
Статья: https://habr.com/ru/articles/888308/
Платформа: iOS/разработка
Аутентификация в мобильных приложениях с помощью Telegram Login Widget обделена информацией как официальной документации, так и в интернете. В этой статье автор делится примером реализации входа в iOS приложение c помощью Telegram с блекджеком и граблями. В статье приведены сниппеты кода на Typenoscript + React, Go и Swift.
Статья: https://habr.com/ru/articles/888308/
Платформа: iOS/разработка
👍1
Kelp — IDE-плагин для кастомных дизайн-систем на Jetpack Compose
Я долго работал на Android View, но жизнь безапелляционно мотивировала меня перейти к дизайн-системам на Jetpack Compose. Мне стало не хватать некоторых фич Android Studio, которые были доступны только в Android View.
Статья: https://habr.com/ru/companies/ozontech/articles/847376/
Платформа: Android
Я долго работал на Android View, но жизнь безапелляционно мотивировала меня перейти к дизайн-системам на Jetpack Compose. Мне стало не хватать некоторых фич Android Studio, которые были доступны только в Android View.
Статья: https://habr.com/ru/companies/ozontech/articles/847376/
Платформа: Android
7 мощных возможностей Kotlin, используемых продвинутыми разработчиками
Kotlin содержит множество мощных, но недостаточно используемых возможностей, таких как
Статья: https://apptractor.ru/info/articles/7-moschnyh-vozmozhnostey-kotlin-ispolzuemyh-prodvinutymi-razrabotchikami.html
Платформа: Android
Kotlin содержит множество мощных, но недостаточно используемых возможностей, таких как
runCatching, герметичные интерфейсы, классы значений, buildList/buildMap, Modifier.composed, takeIf/takeUnless и кастомные итераторы. Овладев ими, вы сможете сделать свой код более безопасным, лаконичным и высокопроизводительным.Статья: https://apptractor.ru/info/articles/7-moschnyh-vozmozhnostey-kotlin-ispolzuemyh-prodvinutymi-razrabotchikami.html
Платформа: Android
# Учишь Android месяцами, но найти работу так и не получается?
Часто вижу людей самостоятельно изучающих IT и Android в частности, но теряющихся в большом количестве материалов, не зная как начать и правильно продолжать.
Основная проблема людей, изучающих Android самостоятельно - это непонимание как правильно начать и что на самом деле нужно изучать для трудоустройства.
Для успешного освоения новой it-профессии необходимо иметь четкий план и фокус в обучении. Так чтобы не упускать важные нюансы и детали, о которых спрашивают на собеседованиях
Если хотите ускорить свой путь до первой работы и научиться создавать реальные проекты - подписывайтесь на канал Мерсиянов в IT. Автор уже 8 лет в IT и прошел путь с нуля до ведущего android разработчика.
В закрепе бесплатный план изучения android-разработки с нуля до оффера. Без воды, только то, что реально нужно для трудоустройства.
Подписывайтесь на канал, чтобы узнать как на самом деле устроена android-разработка, а не то, что рассказывают на стандартных курсах.
Часто вижу людей самостоятельно изучающих IT и Android в частности, но теряющихся в большом количестве материалов, не зная как начать и правильно продолжать.
Основная проблема людей, изучающих Android самостоятельно - это непонимание как правильно начать и что на самом деле нужно изучать для трудоустройства.
Для успешного освоения новой it-профессии необходимо иметь четкий план и фокус в обучении. Так чтобы не упускать важные нюансы и детали, о которых спрашивают на собеседованиях
Если хотите ускорить свой путь до первой работы и научиться создавать реальные проекты - подписывайтесь на канал Мерсиянов в IT. Автор уже 8 лет в IT и прошел путь с нуля до ведущего android разработчика.
В закрепе бесплатный план изучения android-разработки с нуля до оффера. Без воды, только то, что реально нужно для трудоустройства.
Подписывайтесь на канал, чтобы узнать как на самом деле устроена android-разработка, а не то, что рассказывают на стандартных курсах.
👍3👎2🤣2❤1
CZAN - это дизайн система, названная в честь Поля Сезанна, знаменитого художника из Франциb, родного города разработчика. Она создана для приложений, использующих Compose Multiplatform, и построена на Material 3, системе дизайна Google с открытым исходным кодом.
CZAN следует методологии Atomic Design, где атомы, молекулы, организмы и шаблоны - это различные уровни дизайна, которые вы можете использовать для создания своего приложения.
CZAN на GitHub: https://github.com/Tweener/czan
Платформа: Android/кроссплатформа
⭐️: 58
CZAN следует методологии Atomic Design, где атомы, молекулы, организмы и шаблоны - это различные уровни дизайна, которые вы можете использовать для создания своего приложения.
CZAN на GitHub: https://github.com/Tweener/czan
Платформа: Android/кроссплатформа
⭐️: 58
😁1