Swift Tips
3.27K subscribers
463 photos
16 videos
2 files
441 links
Ежедневные советы, подсказки, лайфхаки и статьи по iOS и Swift.

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

Большая статья от Сергея Гнатюка на тему использования старых технологий в iOS-разработке, таких как Objective-C и являются ли такие технологии легаси.

🟢Статистика использования языков
🟢Историческая справка
🟢Сильные и слабые стороны
🟢Совместимость
🟢Миграция
🟢Рекомендуемые материалы для расширения кругозора
🟢Заключение

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥8🤡83👍2
The perfect iOS networking layer

Несколько больших статей на тему создания модульного, расширяемого и тестируемого сетевого слоя в iOS.

Первая часть про проектирование API-клиента(запросы, кейсы использования, авторизация, логгирование), вторая часть – модульные и интеграционные тесты.

• Part 1
• Part 2
5👍103🔥3🤮2
Faster iOS Networking with Shared Dictionary Compression

И ещё одна статья в догонку про Networking, а именно про то, как с помощью Shared Dictionary Compression ускорить сетевое взаимодействие.

Правда этот способ несколько специфичный, т.к. требует определенных сетевых соглашений клиента с бэком – может подойти не всем.

Читать (En)
🔥4👍3🤔2
Swift async / await на примерах

В статье подробно рассматриваются ключевые слова async/await, их принцип работы и что означает "неблокирующее ожидание".

🟢Что такое swift async/await
🟢Пример – Async/await. Http запрос
🟢Пример – Async computed property. Загрузка изображения
🟢Пример – Async let. Одновременная загрузка двух изображений
🟢Пример – AsyncSequence. Отображение процента загрузки изображения
🟢Пример – AsyncStream. Перенос логики загрузки изображения
🟢Итоги
🟢Полезные ссылки

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍95🔥4
Forwarded from Mobile Native ️️
Тактильный отклик в мобильных приложениях: что это такое, когда использовать и зачем?

Довольно полезная и интересная статья, в которой рассказывается про тактильную обратную связь, что это такое, как и для чего она применяется. И всё это с примерами российских приложений, где это уже уместно используется 👍

👉 Что такое тактильная обратная связь?
👉 Разница между тактильной обратной связью и виброоткликом
👉 Чем полезен тактильный отклик
👉 Когда использовать тактильный отклик
👉 Советы по внедрению тактильного отклика
👉 Примеры в приложениях
👉 Самое главное
👉 Заключение

Тактильная обратная связь (или haptic feedback) — использование сложных вибрационных паттернов и виброволн для передачи информации пользователю. Если говорить проще и понятнее:

Тактильный отклик — это способ, с помощью которого устройства могут «говорить» с нами с помощью вибраций.


Читать (Ru)
👍7🔥42💩2
Prevent screenshot capture of sensitive SwiftUI views

Пошаговый гайд с примерами кода, как запретить создание скриншотов в SwiftUI для экранов с конфиденциальной инфой.

Читать (En)
🔥52👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Implement blurring when multitasking in SwiftUI

Статья с примером реализации вот такого блюра на SwiftUI, при переходе в многозадачный или фоновый режим.

Читать (En)
6🔥94👍2
App Intents: новые возможности для разработчиков в iOS 18

Большая статья про App Intents – что это такое и как их использовать для создания сложных сценариев, которые расширят возможности вашего приложения.

🟢Что такое App Intents
🟢Как создать AppIntent? (Intent)
🟢Пример Intent
🟢Пример AppEntity
🟢Что такое Shortcuts
🟢Shortcuts как составляющая часть фреймворка AppIntents
🟢Shortcuts как приложение
🟢Гайдлайн от Apple по созданию App Intents
🟢Открытие приложения при работе с App Intents
🟢Практика
🟢Новые фишки AppIntents, которые могут быть полезны
🟢Обновления для разработчиков
🟢UnionValue
🟢Generated titles
🟢Framework improvements
🟢Вывод

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍75🔥4
Task и structured concurrency в Swift

В этой статье подробно рассматривается сущность под названием Task и показывается на примерах, как с ней работать.

А также затрагивается structured concurrency: что это такое, как это понятие связано с Task и почему механизмы языка async/await structured, но не concurrent.

🟢Task
🟢Structured concurrency
🟢Task hierarchy
🟢Task cancellation
🟢Итоги
🟢Полезные ссылки

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4👍2
Understanding actors in Swift

В статье рассказывается как работают акторы в Swift и как их использовать для предотвращения data races при работе с concurrency.

🟢How do Swift actors prevent data races?
🟢Defining an actor
🟢Using async/await to access data from an actor
🟢Actor isolation
🟢Actor's non-isolated declarations
🟢Handling thread safety with Sendable types
🟢Actor reentrancy

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍32
This media is not supported in your browser
VIEW IN TELEGRAM
Creating view transitions in SwiftUI

Статья про анимации переходов между view в SwiftUI, с детальным разбором и примерами кода различных эффектов.

Читать (En)
👍4🔥32
Разбираем iOS-приложение: код, сборка, статические и динамические библиотеки, компиляция, запуск

Достаточно крутая и большая статья про низкоуровневые штуки iOS-приложения: как приложение устроено под капотом, какие этапы проходит перед тем, как оказаться на устройстве пользователя, что такое Executable binary и что происходит внутри препроцессора.

Читать (Ru)
8🔥114👍4
Forwarded from Mobile Native ️️
Об анатомии крэшей на iOS «по-взрослому»

Большая статья, в которой рассказывается, как устроены крэши в iOS, откуда они берутся и как с ними взаимодействовать.

Читать (Ru)
79🔥6👍2
Detecting faces in images with the Vision framework

Пример реализации распознавания лиц на изображениях с помощью фреймворка Vision.

Читать (En)
3👍3🔥3
Swift TaskGroup на примерах

В этой статье подробно рассматривается сущность под названием TaskGroup, как с ней работать и чем она отличается от Task и async let.

На примере сравниваются аналогичные реализации с и без TaskGroup и разбираются некоторые (не для всех очевидные) моменты при работе с данной сущностью.

🟢Structured concurrency
🟢Сетапим окружение для примера
🟢Реализуем загрузку N изображений (без TaskGroup)
🟢Загрузка N изображений через TaskGroup
🟢Нюансы при работе с TaskGroup
🟢Итоги
🟢Полезные ссылки

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍74🔥1
Дебаг на максимум: секретные настройки Xcode, которые должен знать каждый разработчик

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

🟢Что такое CPU и GPU и с чем их едят
🟢Blended Layers — cмешанные слои
🟢Copied Images: избавляемся от скопированных изображений
🟢Выравниваем изображения Misaligned Images
🟢Внеэкранная отрисовка Offscreen Rendering
🟢Тени
🟢Маски
🟢Visual Effects

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7🔥7💩1
Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика

Небольшая статья про организацию асинхронной работы в iOS-приложениях.

Разбираются подходы от старой доброй GCD до современной магии Swift Concurrency и показывается, как они помогают ускорить приложение без лишнего хаоса в коде.

Читать (Ru)
6🔥5🥱5👍2
Как собрать и внедрить высоконагруженный модуль. Опыт Звука

iOS-разработчик из Звука делится опытом построения сложного модуля на примере сетевого слоя и рассказывает, какими инструментами и подходами пользовались в процессе работы.

Читать (Ru)
👍10🔥32🤮2