Swift Concurrency и CoreBluetooth: как построить современный BLE-сервис
Автор статьи рассказывает про подводные камни, с которыми столкнулись при совмещении structured concurrency и callback-ориентированного API, как их обойти и на что стоит обратить внимание, если вы тоже решите «прикрутить» современные async/await к старому API.
И всё это на довольно нетипичном кейсе – управление дверьми машины каршеринга через Bluetooth, на случай отсутствия интернет соединения.
Читать (Ru)
Автор статьи рассказывает про подводные камни, с которыми столкнулись при совмещении structured concurrency и callback-ориентированного API, как их обойти и на что стоит обратить внимание, если вы тоже решите «прикрутить» современные async/await к старому API.
И всё это на довольно нетипичном кейсе – управление дверьми машины каршеринга через Bluetooth, на случай отсутствия интернет соединения.
Читать (Ru)
❤9🔥5👍3
Swift на Android: создаём библиотеку
В Swift 6 появилась возможность работать сс минимальной болью вызывать его из Android среды (Java, Kotlin) c помощью JNI*.
Ловите подробную гайд-статью от @imike3049, как это всё можно завести.
Читать (Ru)
В Swift 6 появилась возможность работать с
Android NDK. Это значит, что мы можем писать код на Swift`е и в последствии, Java Native Interface (JNI)– это мост который позволяет нативному коду обращаться кJava Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI.
Ловите подробную гайд-статью от @imike3049, как это всё можно завести.
Читать (Ru)
8❤7👍3🔥3
Новые подходы в Swift для тестирования: разбор технологии Swift Testing
Статья с разбором нового фреймворка для юнит-тестирования от Apple, представленного на WWDC 24 – Swift Testing.
🟢 Немного о Swift Testing
🟢 Expectation
🟢 withKnownIssue
🟢 Кастомизация тестов
🟢 Параметризованные тесты
🟢 Возможности миграции с XCTest к Swift Testing
Читать (Ru)
Статья с разбором нового фреймворка для юнит-тестирования от Apple, представленного на WWDC 24 – Swift Testing.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3❤2
Миграция на SPM: что мы выиграли и что потеряли
Разработчик из Core-команды Туту рассказывает про опыт миграции с CocoaPods на SPM, проблемы с которыми можно столкнуться в процессе и на что стоит обратить внимание.
Читать (Ru)
Разработчик из Core-команды Туту рассказывает про опыт миграции с CocoaPods на SPM, проблемы с которыми можно столкнуться в процессе и на что стоит обратить внимание.
Читать (Ru)
4🔥8❤4👍4
Как Swift Runtime влияет на производительность iOS-приложений
Большая статья, в которой рассказывается про механизмы приведения типов и создания generic-типов внутри Swift Runtime и разбирается метод
Читать (Ru)
Большая статья, в которой рассказывается про механизмы приведения типов и создания generic-типов внутри Swift Runtime и разбирается метод
swift_conformsToProtocolMaybeInstantiateSuperclasses, ĸоторый является узĸим местом в производительности приложения, ĸогда и почему он вызывается и ĸаĸие стратегии использовать для смягчения негативного воздействия.Читать (Ru)
❤4👍4🔥3
Компьютерное зрение + ARKit = AR-навигация внутри зданий
Крутой материал – ребята из 2ГИС запилили реалтайм навигацию внутри зданий, с помощью AR через камеру.
В статье рассказывают, как подошли к задаче с точки зрения компьютерного зрения, какие грабли собрали, как ускоряли локализацию и как боролись с погрешностями ARKit.
Читать (Ru)
Крутой материал – ребята из 2ГИС запилили реалтайм навигацию внутри зданий, с помощью AR через камеру.
В статье рассказывают, как подошли к задаче с точки зрения компьютерного зрения, какие грабли собрали, как ускоряли локализацию и как боролись с погрешностями ARKit.
Читать (Ru)
🔥6👍3❤1
Xcode: ключевые инструменты для ручного тестирования мобильных приложений
Автор статьи делится опытом тестирования мобильных приложений в Xcode для обнаружения критических багов в iOS-приложениях на этапе разработки.
👉 Симулятор устройств и управление конфигурациями
👉 Работа с логами и анализ крашей
👉 Инспектирование верстки
👉 Мокирование сетевых запросов
P.S. Материал может быть полезным для QA
Читать (En)
Автор статьи делится опытом тестирования мобильных приложений в Xcode для обнаружения критических багов в iOS-приложениях на этапе разработки.
👉 Симулятор устройств и управление конфигурациями
👉 Работа с логами и анализ крашей
👉 Инспектирование верстки
👉 Мокирование сетевых запросов
P.S. Материал может быть полезным для QA
Читать (En)
👍5🔥4❤3
Combine – швейцарский нож iOS-разработчика. Или нет?
Большая статья с обзором Combine: как устроен фреймворк, какие сущности лежат в основе и примеры использования.
Читать (Ru)
Большая статья с обзором Combine: как устроен фреймворк, какие сущности лежат в основе и примеры использования.
Небольшая сводка: Combine – фреймворк для работы с асинхронными событиями в декларативном стиле. Он помогает разработчикам управлять потоками данных, избавляя от множества колбэков, ручного управления очередями и других сложностей, связанных с асинхронностью.
Читать (Ru)
👍8🔥4❤2🕊2
This media is not supported in your browser
VIEW IN TELEGRAM
IntelligenceGlow – легковесная SwiftUI-библиотека, которая добавляет эффект светящейся обводки в стиле Apple Intelligence к любому элементу InsettableShape.
Библиотека на GitHub → IntelligenceGlow
Библиотека на GitHub → IntelligenceGlow
❤6👍6🔥5
Thread-Safe Classes: GCD vs Actors
Небольшая статья про многопоточку, а именно про то, как организовать потокобезопасные операции чтения/записи разными способами, чтобы избежать распространённых проблем по типу race condition. А в конце статьи, сводная таблица с сравнением подходов.
Читать (En)
Небольшая статья про многопоточку, а именно про то, как организовать потокобезопасные операции чтения/записи разными способами, чтобы избежать распространённых проблем по типу race condition. А в конце статьи, сводная таблица с сравнением подходов.
Читать (En)
🔥5👍3❤2
Навигация на SwiftUI: чего не хватает и как исправить
Разработчик из CleverPumpkin рассказывает с какими SwiftUI ограничениями столкнулись в части навигации на проекте, какие обходные решения применяли и разбирает в каких ситуациях какие инструменты использовать для контролируемой навигации.
Читать (Ru)
Разработчик из CleverPumpkin рассказывает с какими SwiftUI ограничениями столкнулись в части навигации на проекте, какие обходные решения применяли и разбирает в каких ситуациях какие инструменты использовать для контролируемой навигации.
Читать (Ru)
❤5🔥4👍1
Creative Coding: Randomness and Noise
Интересная статья, в которой рассказывается как можно преобразить UI проекта, с помощью необычных анимаций.
Читать (En)
Интересная статья, в которой рассказывается как можно преобразить UI проекта, с помощью необычных анимаций.
Читать (En)
👍2🔥2❤1
Stanford CS193P 2025 - Developing Apps for iOS
Вышел обновленный курс Стэнфордского университета CS193P по основам разработки приложений для iOS. Уже опубликовано 12 лекций, в скором времени ожидается ещё 4.
🟢 Getting Started with SwiftUI
🟢 More SwiftUI Basics
🟢 Model and UI / Swift Type System
🟢 Building CodeBreaker's Model
🟢 Layout / Data Flow
🟢 Data Flow Demonstration
🟢 Generics and Views / Animation
🟢 Animation Demonstration
🟢 Elapsed Time / Protocols
🟢 List and Navigation
🟢 iPad / Sheets
🟢 CodeBreaker Editor
Читать (En) | Смотреть (En)
Вышел обновленный курс Стэнфордского университета CS193P по основам разработки приложений для iOS. Уже опубликовано 12 лекций, в скором времени ожидается ещё 4.
Читать (En) | Смотреть (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Маленький экран — серьёзный вызов!
В VK мобильные разработчики создают опыт, который помещается в карман, но работает на миллионах устройств. Узнайте об их подходах к сложным задачам и ключевых результатах. По ссылке — ролики и даже вакансии!
В VK мобильные разработчики создают опыт, который помещается в карман, но работает на миллионах устройств. Узнайте об их подходах к сложным задачам и ключевых результатах. По ссылке — ролики и даже вакансии!
👍2🔥2👏1🕊1