Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Уникальная игра, в которой гармонично сочетаются знакомая механика «три в ряд» и тактические пошаговые сражения!

Магический мир

Мидкорные, Ролевые, Три в ряд

Играть

Топ прошлой недели

  • cristall75 cristall75 6 постов
  • 1506DyDyKa 1506DyDyKa 2 поста
  • Animalrescueed Animalrescueed 35 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
5
user11249120
user11249120
Лига программистов

Apple выпустила Swift SDK для написания Android-приложений⁠⁠

1 месяц назад
Apple выпустила Swift SDK для написания Android-приложений

Apple неожиданно открыла новую страницу в истории Swift.

Компания представила официальный Swift SDK для Android, позволяющий писать нативные Android-приложения на фирменном языке, изначально созданном для iOS и macOS.Как это работает

Новый SDK — результат многомесячной работы Swift Android Workgroup, открытого сообщества, куда может присоединиться любой разработчик. С его помощью можно:

  • собирать нативные Android-приложения на Swift;

  • переносить существующие Swift-пакеты — более 25% уже совместимы с Android;

  • интегрировать Swift-код с Java через проект swift-java, автоматически генерирующий безопасные биндинги между языками.

Apple опубликовала подробное руководство «Getting Started» и примеры кода, демонстрирующие полный цикл разработки Android-приложений на Swift.

Что это значит для экосистемы?

Релиз открывает дорогу к кроссплатформенным приложениям без использования Flutter, Kotlin Multiplatform или React Native.

Теперь компании смогут писать бизнес-логику один раз на Swift и использовать ее и в iOS-, и в Android-версиях.
Эксперты отмечают, что шаг Apple может снизить барьеры между мобильными экосистемами и ускорить развитие open-source сообщества Swift.

Что дальше?

По словам участников проекта, впереди — создание полноценного Android-Toolchain, улучшение совместимости со средами разработки и официальное внедрение CI-сборок.

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

Больше интересного в моем телеграмм канале EasyProgers - https://t.me/easyprogers

Показать полностью
[моё] Swift Android iPhone Apple Программа Тестирование Python Программирование Приложение
3
sefimenko
sefimenko
Лига Яблок

SwiftUI for Masterminds 5th Edition (iOS 18) Обзор книги по программированию⁠⁠

4 месяца назад
<a href="https://pikabu.ru/story/swiftui_for_masterminds_5th_edition_ios_18_obzor_knigi_po_programmirovaniyu_13008296?u=https%3A%2F%2Fbooken.ru%2Famazon_buy%2F%3Futm_source%3Dpikabu%26book_link%3Dhttps%3A%2F%2Fwww.amazon.com%2Fdp%2FB0DHV475S5&t=SwiftUI%20for%20Masterminds%205th%20Edition&h=bca3486d8d47c863b85f5fe32f118c75603bf21d" title="https://booken.ru/amazon_buy/?utm_source=pikabu&book_link=https://www.amazon.com/dp/B0DHV475S5" target="_blank" rel="nofollow noopener">SwiftUI for Masterminds 5th Edition</a>. J.D Gauchat. 2024

SwiftUI for Masterminds 5th Edition. J.D Gauchat. 2024

Научиться разрабатывать профессиональные приложения для iPhone, iPad и компьютеров Mac может любой желающий. Всё, что вам нужно, — это информация, представленная в понятном и доступном формате. Если это то, что вы ищете, то эта книга для вас. SwiftUI for Masterminds охватывает как фундаментальные, так и углублённые концепции: от программирования и языка Swift до хранения баз данных, обмена данными, графики, пользовательского интерфейса и всего, что вам нужно знать для разработки приложений для устройств Apple. Каждая тема подкреплена практическими пошаговыми примерами, что делает новейшие технологии доступными каждому.

Независимо от того, являетесь ли вы новичком или опытным разработчиком, SwiftUI for Masterminds поможет вам освоить SwiftUI и разрабатывать профессиональные приложения для устройств Apple. К концу этой книги вы приобретёте глубокое понимание программирования, языка Swift, SwiftUI и всех технологий, предоставляемых Apple для создания инновационных приложений и потрясающих пользовательских интерфейсов.

Узнайте, насколько простой и эффективной может быть разработка приложений. С SwiftUI for Masterminds у вас будет все необходимое для превращения ваших идей в полнофункциональные приложения!

Книга «SwiftUI for Masterminds 5th Edition» доступна как на русском, так и на английском языках.

Показать полностью 1
[моё] Что почитать? Обзор книг iOS Программирование Swift Чтение Книги Литература Apple
0
1
tproger.official
tproger.official
Типичный программист

Легкое недопонимание(⁠⁠

1 год назад
Легкое недопонимание(
Показать полностью 1
IT юмор Программирование IT Программист Swift Мемы Тейлор Свифт
17
VSKurs
VSKurs

ТОП-15 лучших курсов Swift: обучение онлайн с нуля для начинающих, платные + бесплатные⁠⁠

1 год назад

В этой статье сравниваем ТОП-15 лучших обучающих онлайн-курсов Swift программирования (подходят для начинающих с нуля и продвинутых специалистов) + рассматриваем бесплатные курсы.

Swift — это мощный язык программирования, созданный Apple. Он обеспечивает безопасность типов, современный синтаксис и высокую производительность. Используется для разработки приложений для iOS, macOS, watchOS и tvOS. Поддерживает как объектно-ориентированное, так и функциональное программирование, предлагая удобные инструменты для работы со строками, коллекциями и асинхронными задачами.

1. Курс «Мобильный разработчик» [Skillbox] - 1085 отзывов

Информация о курсе: стоимость — 4 911 ₽ / мес. в рассрочку на 34 месяца, длительность — 7 месяцев

Особенности: Для новичков - не требуется предварительный опыт и навыки в IT. Эксперты будут предоставлять обратную связь по вашим практическим заданиям. Центр карьеры поможет с трудоустройством. Доступ к курсу и чату в Telegram остается навсегда.

Вы научитесь создавать мобильные приложения с нуля, выполняя реальные задачи и добавляя проекты в своё портфолио. Это позволит вам работать мобильным разработчиком в компании или на фрилансе.

Чему вы научитесь:

  • Программировать на востребованном языке
    Освоите Kotlin для Android или Swift для iOS, изучая как базовые возможности, так и продвинутые концепции языка.

  • Создавать мобильные приложения
    Научитесь верстать экраны, размещать кнопки и изображения, а также программировать логику приложений. Сможете публиковать свои проекты в Google Play или App Store.

  • Верстать интерфейсы приложений
    Освоите создание как простых элементов, так и нестандартных кнопок, экранов, анимаций и переходов, используя Figma для дизайна интерфейсов.

  • Тестировать приложения
    Узнаете, как использовать эмуляторы и симуляторы для проверки кода и тестирования приложений в различных условиях.

  • Использовать актуальные инструменты разработки
    Научитесь работать с Android SDK или iOS SDK, создавая динамичные приложения с доступом к камере и местоположению.

  • Применять актуальные навыки в работе
    Сразу после курса сможете начать карьеру Android или iOS-разработчика в современной компании.

Содержание программы обучения:

  • Kotlin
    Изучите Kotlin, приоритетный язык для разработки Android-приложений, а также принципы ООП, асинхронного и реактивного программирования.

  • Android-разработчик. Уровень 1
    Освоите основы Android-разработки: верстку экранов, анимацию интерфейсов, программирование логики, работу с данными и сетью. Создадите более 7 мини-проектов, включая квиз, галерею, новостную ленту и карту достопримечательностей.

  • Android-разработчик. Уровень 2
    Изучите продвинутые техники разработки: изменение интерфейсов, оптимизация производительности, паттерны проектирования и реактивное программирование.

  • Трудоустройство с помощью Центра карьеры Skillbox
    Подготовитесь к реальной практике, создадите резюме и портфолио, подготовитесь к собеседованию. Карьерный консультант поможет найти вакансии и организовать интервью.

  • iOS-разработчик.

Дополнительные курсы:

  • Figma
    Освоите популярный инструмент для создания интерфейсов.

  • Тестирование
    Научитесь писать проверочные тесты и находить баги.

  • Карьера и развитие для программиста
    Узнаете, как расти в профессии и развиваться как программист.

Подробнее о курсе Swift →

2. Курс «iOS-разработчик с нуля» [Нетология] - 426 отзывов

Информация о курсе: стоимость — 125 400 ₽ или рассрочка на 36 месяцев - 3 666 ₽ / мес., длительность — 11 месяцев

Особенности: Вы создадите 5 полноценных проектов для портфолио и сможете начать стажировку по специальности уже через 6 месяцев обучения. Центр развития карьеры Нетологии будет поддерживать вас на всех этапах трудоустройства: поможет составить резюме и портфолио, найти интересные вакансии и подготовиться к собеседованию. По окончании курса вы получите диплом о профессиональной переподготовке.

Научитесь создавать мобильные приложения для устройств Apple на языке Swift 5. Изучите два самых популярных фреймворка для создания пользовательского интерфейса: UIKit и SwiftUI.

На курсе вы научитесь:

  • Разрабатывать мобильные приложения для Apple с нуля на языке Swift 5

  • Верстать графические интерфейсы с использованием UIKit и SwiftUI

  • Настраивать интеграции с бэкендом приложения

  • Адаптировать мобильные приложения для различных платформ и операционных систем

  • Тестировать мобильные приложения

  • Реализовывать авторизацию пользователей через логин и пароль, а также через Touch ID и Face ID.

Программа курса:

  • Основы Swift

  • Расширенные возможности Swift

  • Git — система контроля версий

  • Создание интерфейса приложения

  • Промышленная разработка

  • Асинхронная разработка и многопоточность

  • Работа с сетью и хранение данных

  • Продвинутая iOS-разработка

  • Тестирование iOS-приложений

  • Фреймворк SwiftUI

  • Разработка для iPad, Apple TV и Apple Watch

  • Карьера в iOS-разработке.

Бонусные модули:

  • Английский язык для начинающих разработчиков

  • Основы графического дизайна

  • Мобильная аналитика для программистов

  • Логические операторы и алгоритмы.

Подробнее о курсе Swift →

3. Курс «iOS-разработчик» [GeekBrains] - 1374 отзыва

Информация о курсе: стоимость — 129 900 ₽ или рассрочка - от 3 609 ₽ / мес., длительность — 9 месяцев

Особенности: 170 часов практики на реальных проектах. Помощь в трудоустройстве. Получение диплома о профессиональной переподготовке.

Научитесь полной разработке мобильных приложений для устройств Apple: от создания интерфейса до работы с базами данных и публикации приложения в App Store.

Программа курса:

  • Введение в программирование

  • Основы контроля версий

  • Знакомство с языками программирования

  • Введение в веб-технологии

  • Алгоритмы и структуры данных

  • Основы баз данных

  • Углубленное изучение контроля версий (Git)

  • Основы языка Swift

  • Разработка приложений на Swift

  • Objective-C для iOS-разработчиков

  • Операционные системы и виртуализация (Linux)

  • Подготовка дипломной работы

  • Защита дипломного проекта

  • Стратегия поиска работы

  • Как и где искать вакансии

  • Подготовка резюме

  • Подготовка к собеседованию.

Подробнее о курсе Swift →

4. Курс «iOS-разработчик» [SkillFactory] - 312 отзывов

Информация о курсе: стоимость — от 4 690 руб. / мес. в рассрочку на 36 месяцев, длительность — 13 месяцев

Особенности: Вы создадите 5 приложений для своего портфолио. Центр карьеры поможет вам подготовиться к трудоустройству: предоставит много практики, реальные проекты для портфолио, помощь с составлением резюме и возможность познакомиться с потенциальными работодателями. По окончании курса вы получите сертификат и диплом о профессиональной переподготовке.

Программа онлайн-курса:

  • Введение в курс и погружение в IT

  • Изучение Swift

  • Создание интерфейсов и архитектур приложения

  • Работа с данными и их хранение

  • Многопоточность

  • Сетевое взаимодействие

  • UX/UI-дизайн для мобильного разработчика

  • Дополнительные фреймворки

  • Тестирование

  • Сборка и подготовка к публикации приложения

  • Дипломная работа

  • Objective-C.

Получаемые навыки:

  • Разработка приложений на Swift

  • Применение принципов объектно-ориентированного программирования

  • Ведение контроля версий в Git

  • Создание интерактивных, эстетически приятных и понятных интерфейсов с использованием UIKit, WebKit и Safari Services

  • Хранение данных и работа с ними, использование Core Data и Realm

  • Организация многопоточности с помощью Grand Central Dispatch и Operation

  • Обеспечение взаимодействия приложений с внешними сервисами и серверами

  • Тестирование приложений с использованием XCTest и технологии Test Driven Development

  • Оптимизация работы ПО с помощью Xcode Instruments

  • Адаптация приложений для различных устройств Apple

  • Публикация и поддержка проектов в App Store.

Подробнее о курсе Swift →

5. Курс «iOS Developer. Professional» [OTUS] - 303 отзыва

Информация о курсе: стоимость — 82 800 ₽ или рассрочка - от 8 280 ₽ / мес., длительность — 5 месяцев

Особенности: Обучение основано на практических кейсах из реальной разработки приложений в production. Вы выполните проектную работу, которая позволит закрепить полученные знания. Вам окажут помощь в оформлении резюме, портфолио и сопроводительного письма. Ваше резюме будет размещено в базе OTUS, что позволит получать приглашения на собеседования от партнёров. По окончании курса вы получите сертификат.

После обучения вы сможете на профессиональном уровне:

  • Проектировать сложные UI-компоненты и оптимизировать их производительность

  • Разрабатывать клиент-серверные приложения и обеспечивать их работу в оффлайн-режиме

  • Писать код, который можно тестировать с помощью unit-тестов, и успевать создавать сами тесты.

Программа курса:

  • SwiftUI и основы Combine

  • Современная архитектура мобильных приложений

  • Foundation без сторонних фреймворков и библиотека Swift 5 Standard Library

  • Многозадачность

  • CoreML и Vision, нейронные сети и машинное обучение

  • Сетевое взаимодействие и хранение данных

  • Создание приложений для Apple Watch, TV и Mac

  • Мультиплатформенная разработка: перенос на Android, Vulkan/Metal

  • Организация разработки

  • Проектная работа.

Подробнее о курсе Swift →

6. Курс «Swift. Основы программирования» [Специалист] - 45 отзывов

Информация о курсе: стоимость — нет информации, длительность —  24 ак. ч. + 12 ак. ч.

Изучите основы программирования на примере нового и популярного языка Swift от Apple.

Вы научитесь:

  • Работать с кортежами

  • Обращаться с опционалами

  • Применять конструкцию switch в Swift

  • Использовать оператор guard

  • Манипулировать массивами, словарями и наборами

  • Работать с замыканиями.

Программа курса:

  • Добро пожаловать в мир Swift

  • Основы

  • Базовые операторы и строки

  • Коллекции и управление выполнением кода

  • Функции и замыкания

  • Выполнение итоговой работы.

Подробнее о курсе Swift →

7. Курс «Swift. Объектно - ориентированное программирование» [Специалист] - 45 отзывов

Информация о курсе: стоимость — нет информации, длительность — 32 ак. ч. + 16 ак. ч.

Слушатели ознакомятся с основными концепциями ООП на примере языка Swift. В курсе будут рассмотрены классы и структуры, инкапсуляция, наследование, полиморфизм, инициализация и деинициализация, ARC, дженерики, расширения, протоколы и обработка ошибок.

Программа курса:

  • Классы, структуры, перечисления

  • Свойства, методы и индексаторы

  • Наследование, инициализация и деинициализация

  • Автоматический подсчёт ссылок, опциональное связывание, приведение типов, вложенные типы

  • Обработка ошибок

  • Расширения, протоколы, дженерики, управление доступом, продвинутые операторы

  • Выполнение итоговой работы.

Подробнее о курсе Swift →

8. Курс «iOS разработчик» [Яндекс.Практикум] - 71 отзыв

Информация о курсе: стоимость — 143 000 ₽, длительность — 10 месяцев

Программа курса:

  • Введение в iOS-разработку и основы языка Swift

  • Основы вёрстки, сетевого взаимодействия и хранения данных

  • Навигация, работа с таблицами, авторизация и основы многопоточности

  • Коллекции, базы данных и архитектура приложений

  • Продуктовая и командная разработка

  • Командный итоговый проект

  • Подготовка к трудоустройству.

Подробнее о курсе Swift →

9. Курс «Разработка iOS приложений, для детей» [CODDY] - 29 отзывов

Информация о курсе: стоимость — нет информации, длительность — 6 месяцев

В рамках курса дети изучат язык программирования Swift — современный объектно-ориентированный язык, оптимизированный для создания приложений для мобильных устройств. Они изучат основы разработки приложений для платформы iOS (устройства iPhone и iPad) и познакомятся с различными фреймворками, которые являются неотъемлемой частью современных iOS-приложений.

Уникальный курс Стэнфордского университета был адаптирован специалистами CODDY для детей от 14 лет.

За 6 месяцев курса дети:

  • Познакомятся с основами языка Swift

  • Напишут игры «Concentration» (Найди пару) и «Set» (Сет)

  • Разберутся в создании грамотной архитектуры приложений

  • Научатся использовать элементы интерфейса iOS

  • Освоят работу с мультитачем и жестами

  • Познакомятся с iCloud и файловой системой

  • Узнают, как делать уведомления

  • Опробуют возможности гироскопа и камеры.

Подробнее о курсе Swift →

10. Курс «iOS разработчик» [TeachMeSkills] - 25 отзывов

Информация о курсе: стоимость — 3 060 BYN (84 939 руб.), длительность — 6 месяцев

Твой результат по окончании курса:

  • Освоишь язык программирования Swift с нуля и объектно-ориентированное программирование (ООП)

  • Научишься проектировать и анимировать интерфейсы

  • Научишься работать с сетью и хранить данные

  • Разработаешь и опубликуешь приложение в App Store

  • Узнаешь способы монетизации мобильных приложений

  • Станешь востребованным iOS-разработчиком.

Подробнее о курсе Swift →

11. Курс «macOS программирование на Swift в Xcode» [ЧОУ ДПО «Институт прикладной автоматизации и программирования»] - 22 отзыва

Информация о курсе: стоимость — нет информации, длительность — 30 ак. ч.

В этом курсе мы спроектируем, разработаем и опубликуем в App Store полностью функциональное macOS-приложение "Конвертер валют". Приложение будет загружать курсы валют с сайта Центробанка, парсить их, отображать в удобном виде и конвертировать валюты с учетом текущего курса.

Также в ходе курса мы создадим приложение-таймер, изучим основы языка Swift и научимся программировать основные элементы управления для macOS-приложений.

Мы пройдем весь цикл разработки macOS-приложения: от создания проекта до его публикации в App Store.

По завершении курса вы приобретете навыки, необходимые для самостоятельной разработки macOS-приложений, их публикации в App Store и монетизации.

Приложения, созданные в ходе курса, можно будет использовать в портфолио при трудоустройстве, а также выставить на продажу в App Store и зарабатывать на этом.

Подробнее о курсе Swift →

12. Курс «Структуры данных и алгоритмы в Swift» [Свифт Лаб]

Информация о курсе: стоимость — 6 990 ₽, длительность — 24 видеоурока

В этом курсе вы узнаете:

  • как реализовывать структуры данных,

  • когда и почему следует использовать определённые структуры данных или алгоритмы.

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

Эти знания станут отличной основой для создания более сложных и специализированных приложений. Научитесь реализовывать структуры данных и алгоритмы в Swift! Курс охватывает широкий спектр тем: от базовых структур данных до сложных алгоритмов поиска путей.

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

Подробнее о курсе Swift →

Бесплатные курсы и уроки Swift

Курс «Разработка IOS-приложений на Swift» [GeekBrains]

2 урока о разработке IOS-приложений на Swift.

Подробнее о курсе Swift →

Курс «Введение в Swift» [Хекслет]

Уроки курса:

  • Основы Swift
    Знакомство с языком программирования Swift

  • TypeAlias и Tuple в Swift
    Изучение понятий TypeAlias и Tuple в языке Swift

  • Optional в Swift
    Понимание концепции Optional в языке Swift

  • Операторы и диапазоны в Swift
    Изучение операторов языка Swift

  • Работа со строками в Swift
    Начало работы со строками в языке Swift

  • Массивы в Swift
    Изучение работы с массивами в языке Swift

  • Словари в Swift
    Изучение типа данных Dictionary в языке Swift

  • Ветвление в Swift
    Изучение операторов ветвления в языке Swift

  • Функции в Swift
    Создание и использование функций в языке Swift

  • Параметры в Swift
    Изучение использования переменного количества параметров в языке Swift

  • И другие.

Подробнее о курсе Swift →

Курс «Swift» [Академия IT]

Уроки курса:

  • Введение

  • Типы данных и коллекции

  • Опциональные типы

  • Циклы

  • Условный оператор if

  • Условный оператор switch case

  • Функции

  • Блоки

  • Классы и их конструкторы.

Подробнее о курсе Swift →

Зачем учить Swift?

Swift – это мощный и удобный язык программирования, разработанный Apple. Давайте рассмотрим причины, по которым его стоит учить:

1. Платформы Apple

Swift предназначен для разработки приложений для iOS, macOS, watchOS и tvOS. Если вам интересно создавать приложения для iPhone, iPad, Apple Watch или Mac, знание Swift – это просто необходимый навык.

2. Современный и безопасный

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

3. Удобство и простота

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

4. Высокая производительность

Swift разработан с учетом производительности. Он компилирует код в машинный язык, что делает приложения быстрыми и эффективными. В некоторых случаях приложения на Swift могут работать быстрее, чем написанные на Objective-C.

5. Открытый исходный код

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

6. Потенциал для карьеры

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

7. Поддержка и экосистема

Swift получает обширную поддержку от Apple, что означает, что язык будет развиваться и улучшаться. Интеграция с такими инструментами, как Xcode, делает разработку еще более удобной.

8. Инновации

Apple активно внедряет инновации в свои разработки, и знание Swift позволяет оставаться на гребне волны технологического прогресса.

Чем хорош Swift?

Вот несколько причин, почему Swift заслуживает внимания:

1. Безопасность

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

2. Скорость и Производительность

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

3. Интерфейс с Objective-C

Swift имеет возможность взаимодействовать с Objective-C, что позволяет использовать существующий код и библиотеки в новых Swift-приложениях.

4. Современный и Удобный Синтаксис

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

  • Инверсия типов

  • Дополнения и расширения

  • Управление памятью с помощью Automatic Reference Counting (ARC)

5. Кросс-платформенность

Хотя Swift первоначально был предназначен для экосистемы Apple, он стал кроссплатформенным языком, и теперь его можно использовать для разработки серверных приложений, а также приложения для популярных платформ Linux и Windows.

6. Поддержка и Сообщество

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

7. Игры на Swift

С использованием фреймворка SpriteKit и Metal, Swift — отличный выбор для разработки игр на устройствах Apple.

8. Интеграция с Xcode

Swift прекрасно интегрируется с Xcode, что делает процесс разработки более приятным и удобным. Интеграция с инструментами, такими как Interface Builder и Storyboards, позволяет создавать пользовательские интерфейсы более интуитивно.

Что можно сделать на языке Swift?

На языке Swift можно разработать множество различных приложений и программ. Вот некоторые из основных возможностей:

1. Разработка iOS и iPadOS приложений

Swift используется в основном для разработки мобильных приложений для iPhone и iPad. Это включает в себя создание приложений для:

  • Социальных сетей (например, Instagram, Facebook)

  • Игры (простые как Flappy Bird и сложные как PUBG)

  • Управления задачами (например, Todoist)

  • Электронной коммерции (например, Amazon, eBay)

2. Разработка macOS приложений

Swift также поддерживает создание приложений для компьютеров Mac:

  • Текстовые редакторы (например, Bear)

  • Графические редакторы (например, Affinity Photo)

  • Утилиты и инструменты для выполнения заданий (например, Alfred)

3. Разработка серверных приложений

С помощью Swift также можно разрабатывать серверные приложения. Есть несколько фреймворков, таких как:

  • Vapor

  • Kitura

4. Разработка для watchOS и tvOS

Swift используется для создания приложений для Apple Watch и Apple TV.

5. Разработка системного программного обеспечения

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

6. Язык сценариев и командных файлов

Swift можно использовать в качестве языкового сценария для создания скриптов и командных файлов для автоматизации задач на macOS.

Сколько времени нужно, чтобы изучить Swift?

Изучение нового языка программирования, такого как Swift, может сильно варьироваться в зависимости от вашего предшествующего опыта, целеустремленности и доступного времени для занятий. Давайте разделим этот процесс на несколько ключевых этапов:

  1. Основы и синтаксис:

    • Время: 2–4 недели

    • Описание: выучить базовый синтаксис Swift, такое как переменные, циклы, функции и условные конструкции. Если у вас уже есть опыт программирования на другом языке, то этот этап может занять меньше времени.

  2. Продвинутые концепции:

    • Время: 1–2 месяца

    • Описание: понимание более сложных аспектов языка, таких как функциональное программирование, работа с коллекциями, использование классов и структур, и обработка ошибок.

  3. Создание проектов и упражнений:

    • Время: 2–4 месяца

    • Описание: после того как вы освоите основы и продвинутые концепции, начните работать над реальными проектами. Это могут быть малые приложения, учебные проекты или участие в код-ритуалах (кодинговых сессиях).

  4. Изучение экосистемы:

    • Время: 2–3 месяца

    • Описание: освоение экосистемы Swift, включая Xcode, интерфейсные компоненты (UIKit/SwiftUI), взаимодействие с API и т. д.

  5. Продолжение обучения и профессиональное развитие:

    • Время: постоянно

    • Описание: программирование – это непрерывный процесс обучения. Новые версии Swift, инструменты и лучшие практики появляются со временем, и чтобы быть профессионалом, необходимо регулярно обновлять свои знания.

Показать полностью
Удаленная работа Фриланс Обучение Дистанционное обучение Курсы Онлайн-курсы Курсы повышения квалификации Образование Развитие Карьера Учеба Работа Профессия Онлайн-школа Онлайн Полезное Бесплатное обучение Программирование Курсы программирования Swift Блоги компаний Длиннопост
3
andrey.zarembo
andrey.zarembo
Серия Дневник разработчика

Навигация в SwiftUI / 4 min⁠⁠

2 года назад

В этой статье вы прочитаете:

  • Как открывается попап / модальное окно

  • Как открыть другой экран на примере галереи

  • Как вернуться назад

  • Как открыть экран, связанный с объектом - на примере просмотра фото

Примеры изображений и кода из этой статьи доступны на GitHub

Для примеров я использую NavigationStack, доступный в iOS 16+.

Как открывается попап / модальное окно

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

Для отображения будет использоваться единый флаг AccessLevel. Этот флаг меняется в разных частях приложения через Binding. В случае его обновления сработает обновление состояния основного View приложения и будет отображен блокирующий экранчик проверки возраста.

Код примера

Как открыть другой экран на примере галереи

Галерея - это экран, который не зависит от конкретного объекта, это просто экран в стеке. Поэтому для его отображения будет использоваться NavigationPath. Если грубо, то это последовательность элементов, которые определяют состояние NavigationStack. Один элемент - один экран.

Я добавлю enum который будет определять необходимый экран. Для примера в нем будет один элемент - gallery, но такой подход позволяет добавить любое количество необходимых экранов, а associated value в enum позволят добавить данные или настройки для экрана. Данные о необходимом для открытии экране придут в модификатор navigationDestination с указанным enum.

Код примера

Теперь для отображения экрана галереи необходимо в path через метод append добавить значение gallery.

Код примера

Как вернуться назад

Чтобы вернуться назад необходимо вызывать метод dismiss у глобального объекта presentationMode, доступного по аналогичному ключу. Я повесил обработчик на левую кнопку верхней панели на экранах галереи и просмотра фото.

Код примера

Как открыть экран, связанный с объектом - на примере просмотра фото

Экран просмотра фото - это экран, связанный с объектом - фотографией. Этому экрану обязательно надо передать изображение, которое он будет отображать. Самое подходящее место для передачи информации о фотографии - это сетка галереи GalleryGrid, которая обрабатывала выбор фото. Но протаскивать туда ссылку на path будет очень неудобно.

Но этого можно не делать, если использовать NavigationLink. Этот объект существует в двух основных вариантах:

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

  2. В параметрах Оформление и объект для навигации - это то, что я буду использовать для перехода из галереи в экран фотографии

Я добавил в GalleryGrid, созданной в статье про галерею, режим выбора и когда он выключен, галерея работает как переход на просмотр фото. NavigationLink в оverlay с Сolor.clear в качестве оформления будет работать как невидимая кнопка для перехода. NavigationLink отправит объект image в ближайший по иерархии NavigationStack.

Код примера

В основном коде добавляется обработчик этих объектов через модификатор navigationDestination, который будет обрабатывать объекты MediaItem

Код примера

Я добавил .navigationBarHidden(true), потому что в приложении используются собственные панели и не требуется системная панель с кнопкой назад

Вот как это работает

Перейти к видео

Заключение

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

Все работающие примеры есть в проекте на Github, их можно скачать и запустить.

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

Показать полностью 6 1
[моё] IT Дневник Научпоп Swift Программирование Длиннопост Видео Без звука
0
4
andrey.zarembo
andrey.zarembo
Серия Дневник разработчика

Swift Combine - Часть 2 / 4 min⁠⁠

2 года назад

Это вторая статья о работе со Swift Combine, в ней я расскажу про математические операции, поиск совпадений, операции с элементами по индексам, выбор и объединение потоков. Ссылка на первую статью

В этой статье вы прочитаете:

  • Операции

  • Math
    Matching
    Sequence
    Select
    Collecting & Republishing

Примеры кода из этой статьи доступны на GitHub

Операции и преобразования

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

У некоторых операций есть try... вариант, который позволяет вернуть ошибку, но я их дополнительно не описывал.

Math

  • .count - подсчитывает количество объекто в возвращает число

  • .max - возращает самый большой объект. Он должен соответствовать Comparable. В примере просто сравниваются числа

  • .max(by ) - возвращает самый большой объект, но сравнение выполняется в блоке. В примере числа красных объектов умножаются на 10

  • .min - возращает самый маленький объект. Он должен соответствовать Comparable. В примере просто сравниваются числа

  • .min(by ) - возвращает самый маленький объект, но сравнение выполняется в блоке. В примере числа красных объектов умножаются на 10

Matching

  • .contains - возвращает bool, есть ли объект в потоке. Он должен соответствовать Equitable. В примерах 1 и 2 ищется синий треугольник

  • .contains(where: ) - возвращает bool, есть ли объект в потоке, но сравнение выполняется в блоке. В примере 3 ищется любой треугольник

  • .allSatisfy - возвращает bool, если все объекты соответствует условию в блоке. В примере ищутся звездочки

Sequence

  • .drop(while:) - пропускает все элементы, пока они соответствую условию в блоке. Как только пришел другой объект, ничего больше отбрасываться не будет. В примере 1 и 2 условие - треугольник. Пока они в начале - отбрасываются, а после звезды уже остаются. Позволяет отфильтровать стартовые данные, заголовки и др

  • .drop(untilOutputFrom:) - пропускает все элементы потока, пока другой поток не выдаст сигнал. Например игнорировать таймер, пока не пришел флаг начала анимации

  • .dropFirst - отбрасывает первый элемент в потоке

  • .dropFirst(n) - отбрасывает первые N элементов в потоке

  • .append(...) - добавляет к завершившемуся потоку набор данных в конец. В примере добавляются треугольник, звезда и звездочка

  • .append( pub ) - добавляет к завершившемуся потоку данные из другого потока. В примере красная звездочка игнорируется, т.к. первый поток на тот момент не завершился, а остальные элементы добавляются в конец.

  • .prepend(...) - добавляет в начало потока набор данных. В примере добавляются треугольник, звезда и звездочка

  • .prepend( pub ) - добавляет в начало данные из завершившегося потока

  • .prefix(n) - возвращает первые n элементов потока

  • .prefix(untilOutputFrom:) - возвращает элементы потока, пока второй поток не выдаст сигнал

  • .prefix(while: n) - возвращает элементы потока, пока они соответствуют условиям. После нарушения условия выдача останавливается

Select

  • .first - возвращает первый элемент потока

  • .first(where: ) - возвращает первый элемент потока, соответствующий условию в блоке

  • .last - возвращает последний элемент завершившегося потока

  • .last(where: ) - возвращает последний элемент завершившегося потока, соответствующий условию в блоке

  • .output(at:) - возвращает элемент с определенным индексом из потока

  • .output(in:) - возвращает элементы с индексами из диапазона

Collecting & Republishing

  • .combineLatest( pub ) { a,b } - комбинирует элемент последнего сигнала потока с последним элементом другого потока. В примере сначала приходят красная звезда в потоке 1 и оранжевая единица в потоке 2, получается их пара. Затем в потоке 1 приходит синяя звезда и она комбинируется с оранжевой единицей в потоке 2. Фиолетовая двойка в потоке 2 приходит в тот же временной слот, но все-таки после синей звезды. И там по очереди Поток 1, Поток 2 приходят и сочетаются с последним сигналом другого потока

  • .combineLatest( pub ) { tuple } - у метода есть другой вариант, который возвращает не два параметра, а один tuple

  • .combineLatest ABC и ABCD - выполняет такие же операции, но сочетая 3 и 4 потока

  • .merge - склеивает несколько поток в один по мере поступления данных

  • .zip - собирает потоки в пары / тройки / четверки в порядке их следования в потоках. Сначала все первые элементы, потом все вторые и т.д. Поэтому на одинаковых данных zip дает 3 пары элементов, а combineLatest - 5

Заключение

В этой статье кратко рассмотрены операции групп Math, Matching, Sequence, Select, Collecting и Republishing с визуализацией. Все визуализации получены в приложении-песочнице.

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

Все работающие примеры preview есть в проекте на Github, их можно скачать и запустить.

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

Показать полностью 4
[моё] IT Дневник Научпоп Swift Программирование Длиннопост
1
1
andrey.zarembo
andrey.zarembo
Серия Дневник разработчика

Отображение фото / 5 min⁠⁠

2 года назад

Из этой статьи вы узнаете как создать компонент отображения фотографий для просмотра, редактирования и обрезки.

В этой статье вы прочитаете:

  • Как отображать фотографии в разных режимах

  • Какие есть сложности в работе с просмотром фото в SwiftUI

  • Как реализовать просмотр фото на UIKit и через Prepresentable интегрировать его в SwiftUI

Примеры изображений и кода из этой статьи доступны на GitHub

Отображение фотографий в разных режимах

В приложении фотография отображается в трех режимах:

Просмотр фото - для отображения готового изображения. Оно уже обрезано, наклеены наклейки и применен фильтр.

Редактор фото - отображается исходное изображение, которое обрезано и к нему применен фильтр. Наклейки отображаются поверх в виде самостоятельных View, которые можно перемещать. Про наклейки будет отдельный пост.

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

Во всех трех режимах изображение можно масштабировать двумя пальцами или слайдером и двигать. Режим аналогичен системному приложению "Фото".

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

Какие есть сложности в работе с просмотром фото в SwiftUI

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

Основные проблемы:

  1. ScrollView в SwiftUI не умеет из коробки работать с Zoom. Его можно эмулировать через ScaleEffect и MagnificationGesture(). Однако смещение будет сбиваться, т.к. жест масштабирования не возвращает свои стартовые точки

  2. Аналогичная проблема будет с вращением. От жеста можно получить угол поворота, но не центр

  3. Тяжело развести жесты обрезки и скролла. Если привязать жест к "ручке" изменения размера, то при резком перемещении он будет "отваливаться" и перемещение будет сбрасываться. И я не смог привязать жест к контейнеру и фильтровать его работу в зависимости от того, где был начат жест.

Я решил, что эти экраны мне будет легче создать на базе UIKit и добавить в SwiftUI как готовый компонент. Возможно в будущем, когда будет больше опыта и подходящих API, я смогу реализовать все элементы на SwiftUI.

Результат опытов со SwiftUI можно посмотреть в Github

Просмотр фото на UIKit и обертка в Representative

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

Код готового компонента можно найти на Github

Как будет устроен компонент:

  • Scroll View - будет выполнять Zoom и Scroll

  • Container View - будет делать обрезку фото в режиме редактирования и обеспечивать зону для вращения фото в режиме обрезки и поворота. Внутри ScrollView, является ViewForZooming

  • Image View - будет отображать изображение, обрезанное или оригинальное. Центром привязано к Container View. В режиме редактирования смещается так, чтобы видимая в Container View часть совпадала с CropZoneView. В режиме редактирования и обрезки поворачивается на заданный угол.

  • CropZoneView - виртуальная View для отладки. В режиме обрезки рамка обрезки совпадает с CropZoneView, но отрисовывается в глобальных координатах, чтобы ручки изменения размера были одного размера независимо от масштаба.

Какие функции будет реализовывать компонент:

Скролл с отступами и центрированием

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

Для этого необходимо управлять параметром ContentOffset

Код примера выше

Расположение фото фото и поворот

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

Код примера выше

Обрезка фото

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

Сохранение данных об обрезке и повороте фотографии

Обрезанная и повернутая фотография получается из оригинальной с помощью серии операций:

  1. Сдвиг центра - сохраняется как Crop Center

  2. Новый размер - сохраняется как Crop Size

  3. Поворот - В приложении для детей есть ползунок с диапазоном поворота -45...45 градусов и кнопка вращения на 90 градусов. Поэтому хранятся два значения, малый угол и квадрант нуля

Все размеры хранятся в виде относительных значений. За 1 берется диагональ изображения. Сдвиг центра отсчитывается от центра изображения.

Использование Representable

Чтобы SwiftUI работал с UIKit не вдаваясь в детали, создается UIViewRepresentable или UIViewControllerReplresentable.

У меня ViewController, поэтому дальше будет про него, но для UIVIew работает точно так же. Его код можно найти на GitHub

Этот прокси объект отвечает за то, чтобы создать View или ViewController, положить его в правильное место иерархии View и обработать передачу состояния в обе стороны.

View создается в методе makeUIViewController. Необходимо вернуть настроенный ViewController

У этого объекта создаются свойства SwiftUI: @State, @Bindable и др. Изменение эти свойств приводит к вызову метода updateUIViewController, который позволяет обновить свойства у UIKit ViewController.

Для обновления данных в обратную сторону создается объект, который называется Coordinator. В нем можно разместить все Binding переменные и передать сам объект во ViewController, чтобы обновлять значения.

При изменений значений внутри ViewController, необходимо новые значения сохранить в wrappedValue Binding координатора. Тогда SwiftUI пробросит их всем подпищикам изменений

Заключение

В этой статье я рассказал о том, как решил не мучаться себя и вместо чистого SwiftUI с костылями использовал UIKit через Representable.

Все работающие примеры есть в проекте на Github, их можно скачать и запустить.

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

Показать полностью 7
[моё] IT Дневник Научпоп Swift Программирование Длиннопост
0
1
andrey.zarembo
andrey.zarembo
Серия Дневник разработчика

Swift Combine - Часть 1 / 5 min⁠⁠

2 года назад

Это первая статья о работе со Swift Combine. Из неё вы узнаете о реактивном программировании и операциях преобразования, фильтрации и свертки сигналов.

В этой статье вы прочитаете:

  • Что такое Combine и реактивное программирование

  • Операции: Mapping, Filtering, Reducing

Примеры кода из этой статьи доступны на GitHub

Что такое Combine и реактивное программирование

Swift Combine - это интегрированная в язык Swift реализация реактивного программирования.

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

Пусть для простоты будут следующие операции:

  1. Получение ввода от пользователя, фильтрация 3х символов

  2. Формирование сетевого запроса для сервера и отправка запроса

  3. Расшифровка ответа

  4. Вывод результатов, сохраняя данные в переменную

В объектно-ориентированном императивном подходе на базе MVC у ViewController будет примерно так(Написал из головы):

В случае с реактивным программированием, это будет выглядеть примерно так:

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

В целом плюсы реактивного подхода:

  1. Однозначность обработки положительных и отрицательных исходов

  2. Фильтрация событий по времени. В примере из всех вводов пользователя за 0.3 секунды будет взят последний

  3. Возможность собирать несколько потоков и разделять на несколько потоков. Например, можно отправить запрос к кэшу на диске и сети и взять тот, что вернется быстрее без ошибки

  4. Удобная связка со SwiftUI и Async благодаря тому, что Combine - часть языка, а не внешняя библиотека. Большая часть системных операций и UI также готова к работе с Combine

Источники данных и потребители

Эту тему я рассмотрю подробнее в будущей статье, но кратко опишу.

В Combine источники данных - это Publisher и дочерние типы. У основных системных вызовов, например у сетевых инструментов, SwiftUI и др. есть ответы и события в формате Publisher.

Результат работы можно назначить в свойство через метод assign или обработать как callback в методе sink. Они возвращают объект Cancellable, который надо сохрнить в переменной напрямую или через метод store, иначе память освободится и обработчик не будет работать.

Песочница для реактивных операций

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

Песочница доступа в Github со всеми примерами, включая будущие статьи

Операции и преобразования

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

У некоторых операций есть try... вариант, который позволяет вернуть ошибку, но я их дополнительно не описывал.

Mapping

Код примеров

  • .map - преобразование данных, количество на входе равно количеству на выходе. Можно вернуть объект того же типа или поменять тип. Аналогично методу map массива. В примере звезды заменяются треугольниками.

  • .mapError - преобразование ошибок, ошибка на входе - ошибка на выходе. Позволяет свести все ошибки к одному типу для обработки в конце. Обработка в блоке. В примере ошибка меняется на зеленую ошибку.

  • .replaceNil - замена nil на фиксированный объект. В примере nil заменяется оранжевой звездой

  • .scan - похоже на map, но результат передается как второй параметр в блок обработки. На первый шаг подается первый аргумент вызова scan. В примере подается объект-образец, в цвет которого будут покрашены все элементы

  • .setFailureType - позволяет поменять тип ошибки для синхронизации типов. Never поменять на свой тип. В примере в коде сначала ошибка приводится к Never с помощью Catch, а затем обратно к DemoError с помощью setFailureType.

  • .map Keypath - аналогично map, но можно передать 1 keypath, чтобы получить на выходе значение. Если передать 2 или 3 keypath, будет tuple. В примере 1 keypath .color используется для создания результатов, а в примере 2 .color и .icon используются для создания копий в результатах

Filtering

Код примеров

  • .filter - аналогично методу над массивом, возвращает только подходящие элементы. В примере не пропускает треугольники

  • .compactMap - аналгично map, но nil пропускается. В примере для сравнения map и compactMap на тех же данных

  • .removeDuplicates - удаляет одинаковые, идущие подряд элементы. Для этого они должны соответствовать протоколу Equitable. В примере синий и синяя звезда - разные.

  • .removeDuplicates(by: ) - удаляет одинаковые, идущие подряд элементы, определяя "одинаковость" в блоке. В примере одинаковость определяется оп цвету, В примере синий и синяя звезда - одно и то же.

  • .replaceEmpty - если поток закончился и ничего не вернул, то можно задать какое-то значение. В примере 1 возвращается оранжевый, а во втором были данные - возвращаются они

  • .replaceError - возвращает определенные данные, если была ошибка. В отличие от catch нет возможности обработать ошибку, она заменяется одним значением на входе

Reducing

Код примеров

  • .collect - собирает объекты в массив. В примере три цветных объекта становится одним массивом

  • .collect(n) - собирает объекты в массив по несколько штук. В примере 6 объектов собираются в две кучки по три. В примере два в кучки 4 и 2

  • .collect(.byTime ) - собирает объекты по несколько штук, пришедших в указанный интервал

  • .collect(.byTimeOrCount ) - также собирает объекты по несколько штук за указанный интервал, но не больше указанного количества

  • .ignoreOutput - гинорирует то, что было в выдаче. Вернет только сигнал окончания потока или ошибку

  • .reduce - работет как scan, но на выходе будет только 1 объект, последний. В примере суммируются числа на объектах

Заключение

В этой статье кратко рассказано что такое Swift Combine и основные операции преобразования, фильтрации и свертки сигналов с визуализацией. Все визуализации получены в песочнице.

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

Все работающие примеры preview есть в проекте на Github, их можно скачать и запустить.

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

Показать полностью 6
[моё] IT Дневник Научпоп Swift Программирование Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии