Обновить
5.61

Swift *

Открытый объектно-ориентированный язык

Сначала показывать
Порог рейтинга
Уровень сложности

Логи Xcode — читаем самостоятельно?

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели8.1K

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

Читать далее

Что нового в SwiftUI для iOS 17?

Уровень сложностиСредний
Время на прочтение43 мин
Охват и читатели6.6K

SwiftUI продолжает быстро развиваться, и в этом году мы видим огромное количество улучшений в прокрутке, интересные новые эффекты SF Symbols, продвинутую поддержку шейдеров Metal и многое другое.

Некоторые обновления в этом релизе из числа тех, которые автор предлагал лично. Среди них - добавление шейдеров Metal, улучшение работы Color с Codable, добавление замыкания по завершении для анимаций, которое дает нам возможность анимировать градиенты. Теперь мы ещё можем скруглять углы прямоугольника по своему усмотрению. Только благодаря первой бета-версии автор закрыл как минимум дюжину своих предложений!

Читать далее

Полезные iOS-инструменты для дебаггинга

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели12K

Привет! Меня зовут Альберт, я занимаюсь iOS-разработкой в компании SimbirSoft! Хочу поделиться инструментами для дебаггинга iOS-приложений, которые юзаю лично сам. Любой разработчик наверняка знает, что создание высококачественного приложения требует не только написания кода. Одна из важнейших составляющих достижения успеха в этом деле — эффективная отладка. К счастью, существует множество инструментов, которые помогут быстро и эффективно диагностировать, а также устранять проблемы. В этой статье мы подробно рассмотрим нативные и сторонние инструменты, доступные для отладки iOS-приложений, как использовать эти инструменты для диагностики и устранения распространенных проблем. Если интересно, тогда ныряйте под кат.

Читать далее

Async / Await in Swift

Время на прочтение14 мин
Охват и читатели23K

Apple представила концепцию async/await в Swift 5.5 и анонсировала ее на сессии WWDC21. Сегодня мы увидим async/await в действии и то, как мы можем использовать async/await для написания удобочитаемого асинхронного кода в своем приложении.

Читать далее

SOLID в Swift. Простое объяснение с примерами для начинающих

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели19K

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

Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.

Читать далее

Бинарное дерево поиска в Swift

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели5.5K

Вы когда‑нибудь задумывались, почему результаты поиска файлов появляются так быстро? В этой статье мы рассмотрим удивительную структуру данных, известную как двоичное дерево (бинарное дерево), и узнаем, как именно она позволяет достичь такой быстрой обработки и поиска.

Читать далее

.xcstrings в Xcode 15

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.7K

Один из самых неприятных аспектов iOS‑разработки — это локализация и плюрализация строк. Мало того, что они разбиты на разные файлы: strings и stringsdict, так ещё и работа с этими файлами для начинающего разработчика может оказаться не сильно очевидной. «Что такое %#@⁠VARIABLE@?», «Как добавлять несколько плюралок в одну строку?», «Как использовать плюралки в локализованных строках?», «Как добавлять разные переводы для разных девайсов?» — Все эти вопросы рано или поздно возникают у разработчика. После получения ответов на них каждый задаётся вопросом: «А почему всё так плохо?»

Читать далее

Установка отступов для содержимого или индикаторов прокрутки в ScrollView

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели1.8K

По умолчанию компонент ScrollView в SwiftUI позволяет своему содержимому заполнять все доступное пространство, а индикаторы прокрутки аккуратно располагаются на краю экрана. Однако с помощью модификатора contentMargins() можно установить отступы для содержимого или полос прокрутки - насколько угодно большие и по любым краям.

Читать далее

Отображение контента в ScrollView с конца

Уровень сложностиСредний
Время на прочтение1 мин
Охват и читатели993

В SwiftUI компонент ScrollView автоматически начинает прокрутку сверху. Однако если вы хотите создать интерфейс, аналогичный приложению "Сообщения" от Apple, вы можете настроить ScrollView так, чтобы прокрутка начиналась снизу. Для этого используется модификатор scrollPosition() с начальной привязкой к нижней части (.bottom).

Читать далее

Отображение контента за пределами ScrollView

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели1.2K

Компонент ScrollView в SwiftUI автоматически обрезает свое содержимое, чтобы элементы прокрутки всегда оставались полностью внутри области контейнера. Однако использую модификатор scrollClipDisabled(), стандартное поведение можно изменить, отключив обрезку контента.

Читать далее

Привязка ScrollView к страницам и дочерним представлениям

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели1.5K

В SwiftUI компонент ScrollView по умолчанию двигается плавно, но с использованием модификаторов scrollTargetLayout() и scrollTargetBehavior() мы можем сделать так, чтобы он автоматически "привязывался" к определенным дочерним представлениям или целым страницам.

Читать далее

Макросы в Swift

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.7K

Всем привет! Меня зовут Никита Тархов, я iOS‑разработчик студии CleverPumpkin. Сегодня поговорим про макросы: что это такое, зачем нужны и где они применяются.

Читать далее

Оформление и структурирование классов в Swift

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.4K

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

Читать далее

Ближайшие события

Swift 5.9. Что нового?

Время на прочтение28 мин
Охват и читатели8.3K

Хотя Swift 6 уже не за горами, Apple продолжает добавлять новые и улучшенные функции в текущую версию Swift 5.x.

Swift 5.9 - это новый большой релиз, который включает в себя ряд улучшений и новых функций. К ним относятся упрощенные способы работы с операторами if и switch, макросы (то есть код, который может генерировать или трансформировать другой код), некопируемые типы (это новая функция, которая предотвращает копирование объектов определенного типа), кастомные исполнители акторов (что связано с моделью конкурентного программирования в Swift) и многое другое.

В этой статье разберем самые важные изменения этого релиза с примерами кода и пояснениями. Для воспроизведения приведенных в этой статье примеров вам понадобиться последняя версия Xcode 14 или Xcode 15 beta.

Читать далее

Изнутри: Swift макрос — #Preview

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.7K

Макрос #Preview в языке Swift предоставляет удобный способ создания и предварительного просмотра компонентов пользовательского интерфейса. Он позволяет разработчикам быстро и легко создавать превью для своих View, чтобы визуально оценить, как они выглядят и взаимодействуют.

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

Читать далее

Как я создала приложение для IPhone. Без опыта разработки на SWIFT, но с помощью ChatGPT

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели29K

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

Читать далее

Внедряем MapKit Яндекс Карт в iOS приложение

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели12K

Всем привет! Меня зовут Серёжа, и я занимаюсь веб-разработкой и разработкой на iOS вот уже 5 лет. На одном из проектов мне поставили задачу: внедрить Яндекс Карты в приложение. Однако я столкнулся с тем, что в открытом доступе мало нужной и полезной информации об этой теме. Эта статья - мои способы решения задач на Swift с использованием Yandex MapKit. Делюсь с вами своим опытом!

Читать далее

Многопоточность в iOS-разработке

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели35K

Здравствуйте, уважаемые читатели Хабра!

Меня зовут Кирилл, я iOS-разработчик приложений Сбера в Студии Олега Чулакова.

Сегодня я хочу поговорить о важной теме, которая стоит в центре многих дискуссий в сообществе разработчиков, — многопоточности в Swift. Эта тема может казаться сложной и запутанной, но я уверен, что с правильным подходом и набором инструментов она станет более доступной.

В этой статье мы разберемся с основами многопоточности и познакомимся с такими инструментами Swift, как Grand Central Dispatch (GCD), OperationQueues, NSLock. А также существующими низкоуровневыми технологиями, такими как pthread и NSThread. Бонусом я расскажу про async/await. Мы обсудим, как эти инструменты помогают управлять асинхронными и параллельными операциями, и посмотрим на некоторые примеры их использования.

Приятного чтения, и давайте начнем наше путешествие в мир многопоточности Swift!

Читать далее

Немного о перечислениях в Swift

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.8K

Не секрет, что на сегодняшний день Swift обладает одними из самых (возможно самыми) функциональными и гибкими в настройке перечислениями. Каждый Swift-разработчик может подтвердить, что работать с ними довольно приятно и удобно. Однако, мало кто задумывается как это устроено внутри. Может показаться, что за подобную функциональность обязательно придётся заплатить либо производительностью, либо памятью, либо размером билда. На самом деле, чтобы максимально избежать подобных издержек, под капотом в языке имеется шесть разных реализаций перечислений.

Читать далее

Императивный UIKit‍ vs Декларативный SwiftUI

Время на прочтение15 мин
Охват и читатели17K

Для разработки iOS-приложений можно использовать два основных фреймворка: UIKit и SwiftUI. Однако при переходе на SwiftUI многие разработчики сталкиваются с трудностями, ведь парадигмы программирования у двух инструментов сильно отличаются.

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

Читать далее