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

По всем вопросам: @artemiygreg
Найти проект: @ios_job
Download Telegram
Async await in Swift explained with code examples

Отличная статья с объяснением на различных примерах использование async/await в Swift.

🟢What is async?
🟢What is await?
🟢What is structured concurrency?
🟢Async methods call in a function that does not support concurrency
🟢Adopting async-await in an existing project
🟢Convert Function to Async
🟢Add Async Alternative
🟢Migrating to Swift 6
🟢Solving errors
🟢Will async await be the end of the Result enum?

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥3
iOS 18 and iPadOS 18 UI kit for Figma

Apple выкатила UI kit iOS 18 в Figma.

New for iOS 18 and iPadOS 18:

🟢Color variables for all system colors with light, dark and dark elevated values
🟢Mode for switching between light, dark, and tinted app icons
🟢Updated app icon artwork
🟢Examples page for most system components and experiences
🟢New iPadOS floating tab bar
🟢Improved organization of instance properties for faster customization
🟢New Control Center and Lock Screen components with customizable controls
🟢See Change Log for full details.

Смотреть 🌐
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍3
Принципы SOLID на примере iOS-разработки

Давненько не было материалов по SOLID, вот держите. Детальный туториал с примерами под iOS, что это такое и зачем нужны.

SOLID — это акроним из первых букв пяти основных принципов проектирования в объектно-ориентированном программировании.

🟢Single Responsibility (SRP) — принцип единственной ответственности
🟢Open-Closed (OCP) — принцип открытости-закрытости
🟢Liskov Substitution (LSP) — принцип подстановки Барбары Лисков
🟢Interface Segregation (ISP) — принцип разделения интерфейсов
🟢Dependency Inversion (DIP) — принцип инверсии зависимостей

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🤡3🔥1
Макросы — напишут код за вас, но есть нюанс…

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

👉 Коротко про макросы
👉 Отличие макросов от property wrapper
👉 Как работают макросы
👉 Роли макросов
👉 Зачем нужны макросы
👉 Где используются макросы
👉 SwiftSyntax
👉 Как SwiftSyntax связан с макросами?
👉 Где еще используется SwiftSyntax?
👉 Библиотеки
👉 ActorMacro
👉 Полное синтаксическое дерево SmallTestClass
👉 Тестирование
👉 Скорость билда проекта с макросами

Читать (Ru)
👍7🔥65🤡1
Адаптируем VoiceOver для людей

Разработчик из 2ГИС рассказывает, как адаптировали приложение под VoiceOver.

👉 Что такое VoiceOver
👉 VoiceOver, версия 1.0
👉 VoiceOver, версия 2.0
👉 Snapshot-тестирование
👉 Escape
👉 Динамический расчёт accessibility
👉 Укрупнение элементов
👉 Сториз
👉 Нюансы, которые о которых неплохо знать

VoiceOver — функция, доступная на всех устройствах Apple, таких как iPhone, iPad, Mac, Apple Watch, TV и VisionPro. Она озвучивает элементы интерфейса, позволяя незрячим пользователям управлять устройством с помощью жестов.

Читать (Ru)
👍4🔥43🥰1
На WWDC 2024 Apple представила — виджеты в Control Center для iOS 18. Это новшество позволяет разработчикам добавлять собственные виджеты в новое место в приложении: Control Center, Home Screen.

В статье разбираются новые виджеты, кастомная вёрстка и взаимодействие с сетью.

Читать (Ru)
👍5🔥41
Forwarded from Mobile Native ️️
Зарплаты IT-специалистов в первой половине 2024: +8% по всей России

Хабр выкатили динамику зарплат за первую половину 2024 года. Если коротко, то всё хорошо, зп растёт практически во всех языках программирования.

Самый ощутимый рост был у разработчиков в Kotlin (+16%), до 290 000 ₽, C (+14%) до 180 000 ₽, также на 11% выросли зарплаты в Swift и Elixir.

Зарплаты снизились только у программистов Objective-С — на 10%, до 342 000 ₽ и Ruby — на 11%, до 250 000 ₽.

Сравнить статистику можно с прошлым периодом, за второе полугодие 2023 года.

Читать (Ru)
💩93👍3🔥1
Расширяем возможности мобильного приложения на WebView. Опыт Ozon Банк

В статье рассказывается про выбор подхода, как к этому пришли и как обошли возникшие проблемы. Так же рассматриваются плюсы и минусы использования своего решения и в конце предложка с несколькими идеями дальнейшего развития выбранного пути.

Что ж они извращаются с этим WebView. Вроде и ресурсы должны быть, почему бы не запилить нормальный BDUI 🤔

Читать (Ru)
🔥5🤮5💩3👍2🤔1
Изучаем новые структуры данных для iOS разработчика

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

👉 Deque
👉 Heap (Priority Queue)
👉 OrderedSet
👉 OrderedDictionary

Читать (Ru)
👍114🔥1
Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

Ещё одна статья про макросы в Swift 5.9, в которой рассказывается как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется.

В статье рассматриваются макросы на примере добавления метода copy для всех моделей UI-компонентов.

Читать (Ru)
😁6👍54
Скрытая (на виду) сила KeyPath'ов

KeyPath'ы — важные строительные блоки современных API. Знание их особенностей и аспектов их использования позволит вам создавать удобные, приятные и простые API, которые при этом не допускают возможности ошибиться.

В статье как раз и рассказывается про то, как с их помощью проектировать лучшие API.

Читать (Ru)
👍43👎2🔥2🤔2
Typed throws in Swift explained with code examples

Небольшой, но полезный материал с примерами про типизированные ошибки в Swift.

Читать (En)
👍5🔥32
What’s new in SwiftUI for iOS 18

Основное изменение во View – атрибут @MainActor перенесен из тела в сам протокол, это означает, что свойство body вместе со всеми другими свойствами и методами, которые мы создаем, запускается на главном акторе.

Так же появился новый API для цветов и градиентов, ну и дополнительные улучшения в разных компонентах👇

• Custom text effects and animations
• Create zoom animations between views
• Access user contacts with ContactAccessButton
• Create new colors by blending two other SwiftUI colors
• Create a mesh gradient
• Control the size of presented views
• Detect when the size or position of a view changes
• Read the size and position of a scrollview
• Scroll to exact locations inside a scrollview
• Detect whether a scrollview is currently moving or is idle
• Position and style subviews from a different view
• @State inside SwiftUI previews using @Previewable

Читать (En)
🔥5👍42
Удобная навигация в SwiftUI для iOS 16 и выше

Статья с примером реализации наиболее удобной(по мнению автора) навигации на NavigationStack, в концепции старого доброго MVVM.

Читать (Ru)
👍6🔥32👎1
Forwarded from Mobile Native ️️
Как публиковать библиотеку в Maven Central Portal в 2024 году

Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна. Большинство существующих туториалов в интернете описывают как раз опыт публикации через OSSRH на Maven Central из-за чего после марта 2024 года эти инструкции стали не актуальны для публикации проектов новых авторов.

Не пошаговая инструкция, а руководство к действию, как опубликовать библиотеку в Maven Central Portal в 2024 году.

Читать (Ru)
🔥3👍21🤡1
Подсветка элементов онбординга. Spotlight onboarding / Highlight element. SwiftUI iOS15+

Крутая статья от разработчика из Ozon, про то, как сделать кастомный онбординг с подсветкой элементов на SwiftUI для iOS15+.

👉 Определение подхода
👉 Реализация
👉 Технические особенности
👉 Заключение

Читать (Ru)
🔥7👍43
Отрицание, гнев, торг: как дизайну и разработке найти общий язык

Дизайнер из Ozon провела анонимный опрос в командах: что радует и что раздражает разработчиков в макетах дизайнеров — и наоборот.

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

Статья будет полезна не только дизайнерам, но и разработчикам, QA-инженерам, продактам и всем, кто заинтересован в качестве конечного решения на проде.

Читать (Ru)
🔥6👍42😁1
Forwarded from Mobile Native ️️
😁41🔥4💩4👍2👏1