Что дальше
Тетрадь расходов готова. Программа знает свои закладки, хранит чеки, подводит итоги в одном и том же порядке и откладывает неверные строки с причиной. Она небольшая, но в ней работает почти весь курс: перечисление, структура, протокол, массив, словарь, замыкание и ошибки.
Большие программы собирают так же: из тех же типов, функций и коллекций, только их больше. Посмотрим, что вы теперь умеете и куда двигаться дальше.
Что вы теперь умеете
За курс вы научились:
- писать и запускать программу и читать сообщения компилятора;
- хранить значения в константах и переменных, считать, сравнивать, ветвить код и повторять его в циклах;
- выносить код в функции, безопасно открывать опционалы, выбрасывать и ловить ошибки;
- работать со строками, массивами, словарями и множествами и передавать замыкания в
map,filterиreduce; - описывать свои типы перечислениями, структурами и классами, а общие умения — протоколами и обобщённым кодом;
- объяснять, когда ARC освобождает объект, и разрывать цикл сильных ссылок через
weak; - ждать долгую работу через
asyncиawait, не блокируя программу, запускать работы одновременно черезasync letи защищать общие данные актором.
Этого хватает, чтобы читать небольшие программы на Swift и разбирать примеры из документации Apple. Незнакомыми в них чаще окажутся имена из библиотек, чем сам язык.
Приложения: Xcode и SwiftUI
Курс учил сам язык, без экранов и кнопок. Об этом шла речь ещё в первом уроке. Приложения для iPhone, iPad и Mac пишут в Xcode. Вместо одного файла main.swift там проект из многих файлов, а экраны описывают на SwiftUI — библиотеке Apple для интерфейсов.
В SwiftUI вас встретят знакомые вещи:
- экран и каждая его часть — структура, которая соответствует протоколу
View; - что показать на экране, описывает вычисляемое свойство
bodyэтой структуры; - кнопка принимает замыкание — код, который выполнится при нажатии;
- модель данных, вроде
Expense, остаётся обычной структурой, а экран только показывает её.
Поэтому следующий шаг к приложениям — учебные материалы по SwiftUI: у Apple есть бесплатные пошаговые уроки. Язык вы уже знаете, осталось изучить библиотеку.
Здесь картинка с тетрадью заканчивается. Настоящее приложение учёта расходов хранит чеки между запусками и показывает их на экране. Для этого нужны уже не новые конструкции языка, а библиотеки: SwiftUI для экранов и другие библиотеки Apple для хранения данных.
Swift вне устройств Apple
Swift работает и в Linux, и в Windows. На нём пишут серверы — программы, которые отвечают на запросы сайтов и приложений. Для этого есть готовые библиотеки, самая известная из них — Vapor.
Ещё на Swift пишут программы для терминала, такие же, как примеры этого курса. Модель из итогового проекта подойдёт и там: перечисление, структура и функция parse не зависят от того, где запущена программа.
Собеседование
Если вы вошли на сайт и прошли все уроки, кнопка «Завершить курс» внизу этого урока откроет страницу завершения курса. На ней две кнопки:
- «Пройти собеседование по Swift» открывает симулятор собеседований;
- «Дорожная карта Swift» открывает дорожную карту со всеми темами Swift, в том числе теми, которых курс не касался: SwiftUI, UIKit, сеть и хранение данных.
Симулятор открывается и из меню сайта. В симуляторе есть тесты с вариантами ответа, как в этом курсе, и собеседование, где вы отвечаете своими словами, а ответ оценивает ИИ. Вопросы там и о темах курса, и о том, чего курс не касался.
Перед симулятором разомнитесь на вопросах, которые вы уже разбирали в уроках:
- чем
letотличается отvar; - что такое опционал и чем опасен
!; - чем структура отличается от класса;
- чем отличаются
map,filterиreduce; - что такое цикл сильных ссылок и как его разорвать через
weak; - чем
try?отличается отtry!и отdo/catch.
Попробуйте ответить на каждый вслух, как на настоящем собеседовании: коротко, с примером кода.
Главное
- Курс научил языку Swift: значениям и типам, функциям, коллекциям, своим типам, ошибкам, памяти и асинхронному коду.
- Приложения для iPhone и Mac пишут в Xcode, а экраны описывают на SwiftUI: структурами, которые соответствуют протоколу
View. - Swift работает и на серверах, и в программах для Linux и Windows.
- Следующий шаг — симулятор собеседований: он открывается кнопкой «Пройти собеседование по Swift» на странице завершения курса и из меню сайта.