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

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
Swift Tutorials: Learn Swift with Easy-to-Follow Code Examples

Большая подборка статей, туториалов и примеров ресурса SwiftLee для изучения Swift, с разбивкой по соответствующим разделам.

Learning Swift using tutorials and code examples

🟢Enum explained in-depth with code examples in Swift
🟢JSON Parsing in Swift explained with code examples
🟢Optionals in Swift explained: 5 things you should know
🟢Extensions in Swift: How and when to use them
🟢Try Catch Throw: Error Handling in Swift with Code Examples
🟢Struct vs classes in Swift: The differences explained
🟢How to use for loop, for each, while, and repeat in Swift (in-depth)
🟢Guard statements in Swift explained with code examples

Learn Swift by going beyond the basics

🟢Generics in Swift explained with code examples
🟢Existential any in Swift explained with code examples
🟢Some keyword in Swift: Opaque types explained with code examples
🟢Weak self and unowned self explained in Swift
🟢Property Wrappers in Swift explained with code examples

Swift Code Examples covering concurrency and async/await

🟢How to Use URLSession with Async/Await for Network Requests in Swift
🟢Async await in Swift explained with code examples
🟢Tasks in Swift explained with code examples
🟢Thread dispatching and Actors: understanding execution
🟢Sendable and @Sendable closures explained with code examples

Swift tutorials for testing code

🟢Swift Testing: Validate your code using expressive APIs
🟢Using the #expect macro for Swift Testing
🟢Using the #require macro for Swift Testing

Debugging issues along the way

🟢EXC_BAD_ACCESS crash error: Understanding and solving it
🟢Race condition vs. Data Race: the differences explained
🟢Thread Sanitizer explained: Data Races in Swift

How about Swift Tutorials for creating a user interface using SwiftUI?

🟢SwiftUI Button: Custom Styles, Variants, and Best Practices
🟢Debugging SwiftUI views: what caused that change?
🟢View Composition using ViewModifiers in SwiftUI
🟢@Observable Macro performance increase over ObservableObject
🟢SF Symbol: How to for Swift & SwiftUI

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥4
Exploring Tab View Styles in SwiftUI

Статья с подробным разбором стилей у TabView в SwiftUI.

С помощью модификатора tabViewStyle() можно настраивать нестандартное поведения для табов.

Читать (En)
🔥32👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Собственный Segmented Control на SwiftUI. Часть 1. Смешиваем цвета

Продолжаем неделю UI-ыми штуками. Ещё одна полезная статья от Dodo Engineering, про реализацию вот такого кастомного Segmented Control на SwiftUI со смешиванием цветов.

Читать (Ru)
🔥53👍1
Swift Performance Optimization Techniques

Статья c несложными примерами оптимизации Swift-кода.

🟢Use Value Types
🟢Use Lazy Loading
🟢Use Caching
🟢Use Parallel Processing
🟢Optimize Loops
🟢Use Efficient Data Structures

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍43
Как мы сделали on-device-распознавание номеров телефонов для ИТ-Пикника

Крутая статья от ребят из Т-Банка, в которой они рассказывают, как в суперсжатые сроки реализовали распознавание номеров телефонов on-device на iOS для стенда ИТ-Пикника 2024.

Читать (Ru)
2🔥2👍1
Вызов защищенного API из iOS-приложения на Swift

Пошаговое руководство по использованию OAuth 2.0 при доступе к защищенным API из iOS‑приложения на Swift с Auth0.

Читать (Ru)
🔥32👍2👎1
Путь к стабильности: как мы снизили потребление оперативной памяти в iOS-приложении

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

Читать (Ru)
👍5🔥31
Creating a SwiftUI text view with tappable links

Гайд по реализации кликабельных ссылок в SwiftUI на основе Markdown.

Читать (En)
🔥84👍4
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI matched geometry effect in a custom segmented control

В дополнении к этому посту, ещё одна статья с примером реализации кастомного SegmentedControl, с анимацией выделенного элеменета через matchedGeometryEffect().

Читать (En)
🔥42👍2
Потоки под капотом: как работают многопоточность и синхронизация

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

🟢Конкурентность VS параллелизм
🟢Программа
🟢Процесс
🟢Поток
🟢Задача
🟢Kernel threads vs green threads
🟢Потоки на уровне операционной системы
🟢Кооперативная многозадачность
🟢Принудительная многозадачность
🟢Планировщики
🟢Инструменты многопоточности и многозадачность
🟢Закон Амдалла
🟢Полезные в практике свойства потока
🟢Выводы

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥127👍7
Convenient Navigation in SwiftUI for iOS 16 and Above

Пример реализации удобной навигации в связке NavigationStack + MVVM для iOS 16 и выше.

Перевод от AppTractor → Удобная навигация в SwiftUI для iOS 16 и выше

P.S. В комментах к оригинальной статье автору указали на некоторые проблемы такой реализации, так что не забывайте заглядывать в комменты.

Читать (En)
👍74🔥4💩3❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Creating a reusable action menu component in SwiftUI

Гайд по реализации переиспользуемого 'Action Menu' компонента по свайпу на SwiftUI.

🟢Creating a custom view for the action menu
🟢Refactoring ActionMenu for reuse
🟢Creating a view modifier
🟢Styling the action labels
🟢Dismissing the sheet

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
Глоссарий Swift Concurrency

Справочник основных терминов Swift Concurrency, с краткой информацией по каждому(что это такое и для чего используется).

Читать (En)
6🔥4👍3
All You Need to Know for iOS App Localization

Подробная статья про локализацию iOS-приложений с примерами, советами и лучшими практиками.

🟢String vs. LocalizedStringKey
🟢Providing Context
🟢Pluralization
🟢Formatting Data
🟢Localizing User Interface
🟢Styling Text Without Breaking Localization

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥3
Sheet с автоматическим подсчётом высоты и поддержкой iOS 15

Гайд по реализации нативного Sheet`а, который автоматически подсчитывает свою высоту в зависимости от контента (SwiftUI View), с поддержкой iOS 15.

Читать (Ru)
🔥124👍4
Обновления в Swift Concurrency: что нас ждёт в Swift 6

Большая статья с разбором основных изменений в Swift 6: обзор пропозалов, как теперь работает concurrency-модель, заметки важного/интересного по мнению автора, playground с тестами для каждого пропозала.

ConcurrencyPlayground – в проекте по каждому пропозалу вы можете найти тесты, которые проверяют его функциональность, и сравнить поведение кода для Swift 5 и Swift 6.

Читать (Ru)
👍11🔥65
Structured concurrency в Swift

Собрал все ссылки на посты из цикла про инструменты structured concurrency, async/await, task и TaskGroup.

🟢Swift async/await. Чем он лучше GCD?
🟢Swift async/await на примерах
🟢Task и structured concurrency в swift
🟢Swift TaskGroup на примера
🟢Executors, Actors и их связь с потоками
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥3
Swift 6: What’s New and How to Migrate

Подробная статья с разбором ключевых изменений в Swift 6 и инструкцией по миграции.

🟢In this article
🟢The idea behind Swift 6
🟢The goals of Swift 6
🟢What’s new in Swift 6?
🟢Incrementally migrating your Xcode Projects and packages to Swift 6
🟢Frequently Asked Questions (FAQ) related to Swift 6

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4👍1
О iOS дизайн системе за 5 мин

Автор статьи делится опытом разбиения монолита на отдельные SPM пакеты и создания дизайн-системы.

Читать (Ru)
🔥6👍32💩1
Drawing maps with Swift Charts

С помощью Swift Charts можно рисовать не только графики, но и различные другие штуки.

В статье как раз показан один из таких кейсов – интерактивные карты с регионами.

Читать (En)
🔥92👍2