Как стать автором
Обновить
27.02

Swift *

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

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

CI/CD заказывали? Или простое, но подробное руководство по настройке CI/CD под несколько iOS проектов

Уровень сложностиПростой
Время на прочтение29 мин
Количество просмотров478

Привет, меня зовут Дмитрий, и я iOS разработчик в компании Triada. В этой статье я расскажу, как настроить CI/CD для вашего iOS приложения, и приведу пошаговую инструкцию, как сделать это правильно с первого раза – чтобы не пришлось переделывать.

Мы настроим CI/CD для iOS проекта с репозиторием на GitLab с использованием Fastlane. Сборки будем отправлять в Testflight и в Firebase, если он у вас используется.

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии5

Новости

SwiftUI и MVI

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров751

UIKit впервые появился в iOS 2 и до сих пор остаётся с нами. Со временем мы привыкли к нему и научились с ним работать. Мы нашли различные архитектурные подходы, и MVVM стал самым популярным, на мой взгляд. С выходом SwiftUI, MVVM ещё больше укрепил свои позиции, в то время как другие архитектуры не очень хорошо себя чувствую на SwiftUI.

Однако архитектуры, которые, казалось бы, не могут быть использованы со SwiftUI, возможно адаптировать к SwiftUI, и они даже могут быть удобнее, чем MVVM.

Я хочу рассказать об одной из таких архитектур — MVI

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

Виды логирования в Swift

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров765

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

Цель статьи — сэкономить время начинающих разработчиков, уберечь их от бесконечного потока непонятных сообщений в консоли и от нервов, потраченных на поиск «той самой» строки, которая всё объясняет. Мы разберем виды принтов и напишем свой небольшой логгер, который можно внедрить сразу, параллельно чтению.

Читать далее
Всего голосов 13: ↑13 и ↓0+15
Комментарии4

WWDC 2024. Обсуждаем, что по факту

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


Всем привет! С вами снова я, Анна Жаркова, руководитель группы разработки в ГК Usetech. 10 июня прошел долгожданный Keynote WWDC 2024. Прошел и оставил после себя легкий флер разочарования. Заявлено было много, показано много. Какие-то новинки (например, функция Mirroring для трансляции изображения и звука с iPhone на десктоп) вызвали одобрение аудитории, как полезные и нужные. Другие (например, настройка визуального оформления домашнего экрана, общая тема для иконок и то, как это реализовано) оставили многих в недоумении. Да, много полезного, но из-за того, что ожидания от анонса разошлись с действительностью, это меркнет на общем фоне.

Еще больше недоумения вызвал функционал Apple Intelligence. И даже не то, что какие-то вещи были показаны довольно скомкано. Разочарование вызвало 2 момента: дата выхода инструментария и отсутствие тематических сессий:



Были анонсированы и «умные» тулзы для Xcode, и встроенный ChatGPT. Но как этим пользоваться, как встраивать, как с этим работать, такой информации напрямую нет. Она частично размазана по сессиям по вспомогательным технологиям. Из них и будем черпать знания.

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии0

Истории

Что нового в Swift 6?

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.2K

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

AI: типовые задачи  iOS разработчика

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров817

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

SwiftUI уроки (часть 14)

Время на прочтение15 мин
Количество просмотров755

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

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

SwiftUI уроки (часть 13)

Время на прочтение15 мин
Количество просмотров679

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Стэнфордский курс CS193P “Разработка iOS приложений в SwiftUI” Весна 2023: русскоязычный конспект с адаптацией к iOS 17

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.3K

Если вы хотите получить фундаментальные знания по разработки  iOS приложений с помощью SwiftUI, вам следует пройти стэнфордский курс CS193P. Предложенные в весеннем семестре 2023 года лекции Стэнфордского курса CS193P «Developing  Application for iOS with SwiftUI» («Разработка приложений для iOS с использованием SwiftUI») — это уже 3-я реинкарнация курса CS193P с фреймворком SwiftUI.

В настоящий момент действуют Xcode 15 / iOS 17, которые были представлены на WWDC 2023 уже после завершения курса CS193P, наиболее значимое обновление внесено в механизм реактивного UI в SwiftUI (макрос @Observable против протокола ObservableObject).

В иллюстрированных  русскоязычных конспектах этого курса сделаны пометки, касающиеся изменений в iOS 17. Для большинства Лекций представлена версия с  использование макроса @Observable вместо протокола ObservableObject, в ряде случаев это потребовало нетривиальных решений. 

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Написание тестов для асинхронного кода с помощью XCTest

Время на прочтение6 мин
Количество просмотров578


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии0

SwiftUI на iOS 14: преодолевая баги и улучшая перформанс в 3 раза

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

Привет, меня зовут Никита, я iOS-разработчик в команде Яндекс Диска. В этой статье я расскажу про наш опыт разработки на SwiftUI с минимальным деплоймент таргетом iOS 14.

В статье я собрал топ-6 багов, с которыми можно столкнуться, а еще поделился, что помогает улучшить перформанс SwiftUI и ускорить ваши view в 3 раза.

Читать далее
Всего голосов 27: ↑26 и ↓1+29
Комментарии16

AVPlayer seek(to:… vs seek(…tolerance

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров561

Привет всем! Это моя внеочередная статья, о том что нагорело. У меня за последний год накопилось много интересного (и не очень :) ) материала. Но эту статью хочу написать вне очереди. Не так давно я столкнулся с интересным поведением метода seek(to: CMTime). Об этом и хочу написать.

Но начнем по порядку.

AVPlayer известен нам с iOS 4. Он содержит AVPlayerItem, AVAsset.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

SwiftUI уроки (часть 12)

Время на прочтение10 мин
Количество просмотров510

ссылка на 11-ю часть

Работаем с Form и учимся использовать Picker, Stepper и Toggle

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

Сегодня мы с вами посмотрим на эти самые формы и научимся с ними работать, так как тема это довольно простая - мы заодно поработаем с Picker, Stepper и Toggle чтобы расширить свой кругозор относительно инструментов предоставляемых во фреймворке SUI.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

Конференция HR API 2024
Дата14 – 15 июня
Время10:00 – 18:00
Место
Санкт-ПетербургОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Что нам показывают карты

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

Всем привет! Меня зовут Женя, я работаю iOS разработчиком в каршеринг-сервисе Ситидрайв, где мы с командой стремимся улучшить пользовательский опыт и сделать наше приложение более интуитивно понятным и функциональным. В этой статье я расскажу, как у нас организована работа с картой: как отображаем автомобили и другие объекты, какие проблемы возникали в процессе разработки, и почему мы выбрали формат данных GeoJSON. Также поделюсь особенностями работы с форматом, которые важно знать любому разработчику и расскажу о некоторых его преимуществах.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии6

SwiftUI: наконец-то пора? Опыт разработки на SwiftUI в контексте UIKit приложения

Время на прочтение16 мин
Количество просмотров2.5K

Привет, Хабр! Меня зовут Алексей Непомнящих и я мобильный разработчик «Леруа Мерлен». В этой статье я бы хотел поделиться своим опытом внедрения первой большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.

Читать далее
Всего голосов 9: ↑9 и ↓0+11
Комментарии0

Result builders in Swift

Время на прочтение3 мин
Количество просмотров673

Конструктор результатов можно рассматривать как встроенный предметно-ориентированный язык (DSL) для сбора деталей, которые объединяются в конечный результат. Конструкторы результатов в Swift позволяют создавать результат, используя "блоки сборки", расположенные в ряд друг за другом.

Примеры.

Вот функция, которая возвращает одну строку.

Читать далее
Всего голосов 4: ↑4 и ↓0+5
Комментарии1

SwiftUI уроки (часть 11)

Время на прочтение12 мин
Количество просмотров1.1K

Ссылка на 10-ю часть

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

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии1

SwiftUI уроки (часть 10)

Время на прочтение13 мин
Количество просмотров998

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии1

Оплата аккаунта Apple Developer в 2024 году

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.9K

В этой статье я приведу примеры по оплате аккаунта разработчика Apple которые я сам лично попробовал. Информация приведенная ниже достаточно актуальная и затрагивает период конца 2023 и начала 2024 года.

Читать далее
Всего голосов 8: ↑3 и ↓50
Комментарии0

Android и iOS, Flutter и Kotlin: что обо всём этом расскажут на Mobius

Время на прочтение13 мин
Количество просмотров1.8K

До конференции Mobius остался месяц, мы представляем Хабру её программу. И её вечно непросто поделить на блоки.

Понятно, что доклады «про iOS» и «про Android» интересны разным разработчикам, поэтому хабрапост хочется разделить пополам. Но как правильнее поступить с докладами по Flutter? А про Kotlin, когда есть KMP? А с теми, которые не привязаны к платформе?

В общем, не уделяйте слишком много внимания тому, как всё разделено на части — лучше смотрите, о чём будут сами доклады.

Программа Mobius 2024 Spring
Всего голосов 7: ↑7 и ↓0+10
Комментарии0
1
23 ...