iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.5K subscribers
695 photos
65 videos
4.07K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Релиз Swift 6.1

👉nonisolated теперь можно применять не только к пропертям и функциям, но и к типам и расширениям.
👉Методы из хедеров ObjC классов теперь можно реализовывать в Swift, используя новое ключевое слово @implementation.
👉Trailing commas теперь поддерживаются не только в коллекциях, но и в кортежах, списках параметров и аргументов, строковых интерполяциях и в других местах.
👉С помощью package traits часть API теперь можно объявлять доступными только для конкретных платформ – например, Embedded или Wasm.
18👍9
Релиз Swiftly 1.0

Swiftly – это CLI-тул, который позволяет удобно менеджерить версии Swift тулчейна. Он может пригодиться, когда вы хотите установить версию Swift, отличную от той, которая шиппится вместе с Xcode, или установить Swift на не-macOS систему.
🔥191👎1
Интеграция SwiftUI с Rust-библиотекой egui

Держите дикую историю про то, как общая структура приложения была реализована на SwiftUI, а вот рендеринг конкретных таблиц, требовательных к перфомансу, на Rust-либе egui.

👉Исходники
👉Видео результата
🔥231👍1
Выпуск Подлодки про Swift

Восемь лет назад мы начинали Подлодку как подкаст про iOS разработку. Со временем проект эволюционировал, мы все больше и больше расширяли список тем. Но когда-то нужно вернуться и к корням – и спустя 400 выпусков мы все-таки записали офигенный подробный эпизод про Swift. Глеб Лукьянец, которого знают все посетители нашего чата, рассказал про историю развития, ключевые фичи и необычные технические концепции в языке. Ну и, конечно же, похоливарили про растущую сложность, запутанный дизайн и макросы!
👍37🔥26💅11
Избегаем Optionals при работе с URL

Санделл вышел из долгой спячки, и сразу же с прекрасной статьей про разные техники работы с URL, которые помогают избежать работы с ним как с Optional типом. Одна из них – макросы, которые позволяют удобно работать с URL, известными в компайл-тайме, а вторая – сравнительно новый API для динамической сборки URL в рантайме.
👍2810
Поддержка Swift в Copilot Code Review

Copilot Code Review – это AI агент от GitHub, который автоматически реаьюит ваш код: ищет баги, проблемы с перфомансом, и даже предлагает фиксы. Так вот, он вышел из Beta, и вместе с этим анонсировали поддержку Swift. Затаскивайте в ваши проекты и расскажите, как работает!
19👍2
Продвинутая работа с превью в Xcode

👉Макрос @Previewable позволяет избежать создания дополнительнвх SwiftUI структур, нужных только для работы превью. Благодаря ему можно и создать превью, и задать для него стейт в одну строчку.
👉Протокол PreviewModifier помогает с созданием переиспользуемых наборов данных, которые можно использовать в разных превью.
👍14👎71
Подборка семплов TextRenderer

TextRenderer – новый протокол в SwiftUI, с помощью которого можно реализовывать кучу классных эффектов с текстом. По ссылке – подборка семплов как на чистом Swift, так и с использованием Metal.
9💅8
В чем сложность сделать калькулятор

Для многих из нас калькулятор был чуть ли не первым приложением, которое мы написали еще на Basic или Pascal. Казалось бы, в чем сложность, когда все математические операции уже определены. Так вот, держите историю про то, что математика – это сложно, и почему калькулятор на Android работает корректнее, чем на iOS.
🔥93💅2
Как банки обходят блокировку в App Store

Большой разбор от Surf способов, какими банки появляются в App Store, несмотря на запреты. И если в самой идее выдавать себя на ревью за другое приложение нет ничего нового, самое интересное в деталях:

👉Код обфусцируется, а все имена переменных и функий, связанных с финансами, переименовываются
👉Чтобы пройти проверки permissions, нужно придумывать правдоподобные кейсы использования нужных вам API
👉Приложение публикуется только в одной стране, и первое время недоступно в других, чтобы избежать подозрительного взрывного роста инсталлов
👎40👍2814🔥1💅1
Бесплатные OpenAI модели в Cursor и Windsurf

Если у вас пока так и не добрались руки попробовать новую волну AI code editor'ов, то эта неделя идеально подходит. OpenAI выпустил сразу несколько новых моделей, хорошо заточенных под разработку, а Cursor и Windsurf дали к ним бесплатный доступ.
👎11🔥9👍21
Что нового в SwiftWasm

Поддержка WebAssembly в Swift движется очень быстро. Начиная со Swift 6.1 для сборки Wasm больше не нужен кастомный пропатченный тулчейн, достаточно официального! Короче говоря, если вы еще не пробовали собирать веб-приложения на Swift, сейчас самое время попробовать.
🔥441👎1
Про цифровую гигиену

Так, ну не только же посты про iOS разработку выкладывать. Держите замечательный гайд по базовой цифровой гигиене от Андрея Карпатого – про то, как минимальными усилиями существенно поднять уровень своей безопасности и приватности.
👍11💅6
Коллекция полезных макросов

Два года назад я уже делился этой ссылкой, но с тех пор каталог существенно пополнился. Из интересного:

👉CloakedString – обфускация строк
👉MemoizMacro – мемоизация функций
👉SwiftNet – сетевые запросы со встроенным пиннингом, коллбэками и кучей других фичей
👍105👎2💅1
Переезд на Bazel и ускорение сборок в 3 раза

Еще одна история переезда на Bazel с приятным улучшением перфоманса сборок как на CI, так и на девелоперских машинах. В статье проходятся по всем аспектам миграции:

👉Обеспечение feature parity с Xcode через rules_xcodeproj
👉Сложности с code coverage, наборами рулов, и увеличенным размером бинаря
👉Пошаговый план переезда
🔥4
Видео try! Swift Tokyo

В открытый доступ выложили все видео недавно прошедшей конференции try! Swift Tokyo. Вот несколько интересных:

👉Graph Art with Charts API
👉Special Effects with SwiftUI Text
👉Understanding HDR
👍151
Как работать с Measurements

Для того, чтобы удобно работать с различными единицами измерений, в Swift есть специальный тип Measurements. В нем хорошо вообще все – можно удобно конвертировать различные величины друг в друга, тип измерения меняется автоматически в зависимости от выбранной локализации, а NumberFormatter умеет корректно форматировать название измерения.
1🔥25👍125👎1
Любовь и ненависть к Objective-C

I learned Objective-C that summer from a cowboy-themed book series titled The Big Nerd Ranch. The first time I wrote code on a big screen and saw it light up pixels on the small screen in my hand, I fell hard for Objective-C. It made me feel the intoxicating power of unlimited self-expression and let me believe I could create whatever I might imagine. I had stumbled across a truly universal language and loved everything about it—until I didn’t.


Абсолютно внезапно на Wired опубликовали классное ностальгическое эссе про Objective-C с отсылками к Лейбницу. Новой информации вы отсюда не узнаете, но скупую слезу, как и я, смахнете!
19👎1
Пишем MCP сервер на Swift

Про Model-Context-Protocol, о котором в интернете говорят все чаще и чаще, я уже рассказывал на канале. Держите простой туториал по тому, как написать свой первый MCP сервер на Swift и подключить его к VS Code.
1👍18👎1
VS Code плагин для iOS разработки

Раз мы заговорили про VS Code, то смотрите какой плагин я нашел – ребята пытаются воспроизвести большую часть фичей Xcode. Что плагин уже умеет:

👉Автокомплит Swift кода
👉Собирать и запускать приложения
👉Форматировать код
👉Управлять симуляторами и девайсами
👉Запускать дебаггер и тесты
🔥445👍2👎2