По традиции пишу еще одну статью которую хотел бы найти сам. Ведь не так давно я решил пополнить свою копилку навыков разработкой мобильных приложений. Серверная разработка есть, разработка веб интерфейсов тоже, пора покорять мобильные телефоны.
Когда торжественно говорят Мобильная разработка, мне на ум приходит вот такой сегмент технологий: из кроссплатформенных Flutter на Dart, React Native на JavaScript; а из платформно-зависимых Swift под iOS и Kotlin для Android. Полистал я значит документации, почитал статьи для сравнения и решил, что раз уж я являюсь счастливым пользователем MacOS то грех будет не научиться писать на Swift с использованием SwiftUI.
Программирование лучше всего изучать в бою – на практике, попутно обращаясь к большому объему справочной информации. Эта статья содержит справочную информацию которая облегчит вам разработку на SwiftUI, чтобы вы сразу бежали в бой.
С чего начинать, куда двигаться?
Писать графические интерфейсы удобно вокруг какой-то готовой системы. А где взять систему? Благо я когда-то давно сохранил репозиторий с публичными API поэтому у меня сложностей с поиском не возникло. Там их на любой вкус и цвет, даже разделение по категориям есть.
Совет: Удобнее создавать продукт когда вы являетесь частью его целевой аудитории –поэтому выбирайте проект под свои нужны и интересы. Так вы будете лучше понимать, что хочет увидеть пользователь.
Я например, совсем недавно захотел научиться готовить новые блюда поэтому выбрал базу данных с кулинарными рецептами. Вы можете выбрать любой другой API интерфейс, он и станет вашим источником вдохновения. Выбираем жертву и изучаем запросы.
Данный подход, с разработкой интерфейса вокруг системы без знания самой технологии на которой вы разрабатываете, буквально кидает вас на путь Анти самурая, где у вас как раз таки есть цель, но путь придется строить по ходу дела. Поэтому я прекрасно понимаю если это вызывает у вас сомнения или негодования.
Однако, в начале статьи я пообещал снабдить ресурсами всех, а это значит – всех без исключения. Так что если вам больше по душе поэтапное изучение, то я подыскал решение и для вас.
У компании Apple есть свой бесплатный туториал длительностью всего в четыре с половиной часа в ходе которых вам покажут и расскажут про основы SwiftUI на примере разработки приложения для сохранения мест – ориентиров на карте. Настоятельно рекомендую хотя бы пробежаться по нему всем заинтересованным людям. Здесь у вас будет и цель, и путь, и все что вам нужно.
Оглашаем меню элементов
Когда вы планируете какой-либо функционал, в том числе и графический интерфейс, нужно за ранее знать какая его часть вам уже доступна из библиотеки, чтобы не изобретать велосипед и подбирать правильные элементы под свои нужды. Тем более всегда быстрее будет воспользоваться готовыми решениями. В противном случае изучение технологии будет не таким эффективным.
В изучении всего меню элементов мне помогло одно приложение которое я нашел занимаясь отладкой очередной ошибки в своем проекте. Называется оно Interactful и позволяет вам как в ресторане листать меню элементов и даже предустановленных иконок. Понравился элемент? Нажимайте на кнопку Code и смотрите как перенести его в свой проект. Благо элементов доступных из коробки огромное множество и вы точно найдете что-то интересное и новое.
Совет: Посмотрите и изучите все элементы перед проектированием системы своего пет-проекта. Так вы сможете создать что-то использующее максимум от фреймворка и библиотеки.
Однако, есть одна оговорка. Данный подход удобен при разработке проекта, цель которого – изучение технологии. В будущем ваша разработка вполне может быть направлена на полную самостоятельность кодовой базы, где вам как раз придется меньше полагаться на функционал фреймворков и больше писать своего кода.
Причины выбора такого подхода это обширная тема для отдельной статьи. Если вкратце, так поступают при работе над большими проектами из-за того, что во фреймворках исходный код находится в открытом доступе, и в нем активно находят уязвимости, которые могут быть использованы для нанесения вреда бизнесу вашего клиента.
Инструменты доступные из коробки
Пусть в Swift использование пакетного менеджера не возведено в такую абсолютную популярность как например PyPi в Python или Npm в Node.js, использование готовых библиотек не стоит исключать.
Почти для каждого языка программирования можно найти свои репозитории с названием "awesome-{язык программирования}", которые содержат множество полезных библиотек, модулей, и даже ссылки на обучающие книги и видео для него.
Исключением не стал и герой этой статьи, язык программирования – Swift. Его awesome репозиторий содержит готовый код для кэширования, логирования, аудио, работы с файлами, http запросами... и даже книги с видео. Желаю приятного ознакомления.
Подводим итоги
В веб разработке с опытом приходит осознание, что основные концепции везде одинаковые. Будут отличия в архитектуре, синтаксисе, что-то где-то будет удобнее, где-то что-то будет надежнее. Главное не упускать из виду преимущества инструментов и знать их полный потенциал.
А на этом статья подошла к концу. Работу с Xcode я уже объяснять не стану, там все довольно интуитивно. Тем более статья рассчитана на более опытную аудиторию, которая сможет быстро сориентироваться в новых условиях. Однако, если вам интересно, я могу адаптировать ее и под начинающих объясняя все концепции шаг за шагом.
Статья называется "Собери сам" потому, что тут много источников из которых, при должной сноровке, можно буквально копируя код собрать свое приложение.
А за прекрасные иллюстрации родом из моей головы стоит поблагодарить сервис для генерации картинок который воплотил все мои задумки. Благодаря нему статья чуть стала красочнее.