Паттерны проектирования на Swift
Весенняя скидка
Порождающие паттерны
Абстрактная фабрика
Abstract Factory
Позволяет создавать семейства связанных объектов, не привязываясь к конкретным классам создаваемых объектов.
Строитель
Builder
Позволяет создавать сложные объекты пошагово. Строитель даёт возможность использовать один и тот же код строительства для получения разных представлений объектов.
Фабричный метод
Factory Method
Определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
Прототип
Prototype
Позволяет копировать объекты, не вдаваясь в подробности их реализации.
Одиночка
Singleton
Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Структурные паттерны
Адаптер
Adapter
Позволяет объектам с несовместимыми интерфейсами работать вместе.
Мост
Bridge
Разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга.
Компоновщик
Composite
Позволяет сгруппировать объекты в древовидную структуру, а затем работать с ними так, как будто это единичный объект.
Декоратор
Decorator
Позволяет динамически добавлять объектам новую функциональность, оборачивая их в полезные «обёртки».
Фасад
Facade
Предоставляет простой интерфейс к сложной системе классов, библиотеке или фреймворку.
Легковес
Flyweight
Позволяет вместить бóльшее количество объектов в отведённую оперативную память. Легковес экономит память, разделяя общее состояние объектов между собой, вместо хранения одинаковых данных в каждом объекте.
Заместитель
Proxy
Позволяет подставлять вместо реальных объектов специальные объекты-заменители. Эти объекты перехватывают вызовы к оригинальному объекту, позволяя сделать что-то до или после передачи вызова оригиналу.
Поведенческие паттерны
Цепочка обязанностей
Chain of Responsibility
Позволяет передавать запросы последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи.
Команда
Command
Превращает запросы в объекты, позволяя передавать их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций.
Итератор
Iterator
Даёт возможность последовательно обходить элементы составных объектов, не раскрывая их внутреннего представления.
Посредник
Mediator
Позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник.
Снимок
Memento
Позволяет делать снимки состояния объектов, не раскрывая подробностей их реализации. Затем снимки можно использовать, чтобы восстановить прошлое состояние объектов.
Наблюдатель
Observer
Создаёт механизм подписки, позволяющий одним объектам следить и реагировать на события, происходящие в других объектах.
Состояние
State
Позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта.
Стратегия
Strategy
Определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы.
Шаблонный метод
Template Method
Определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы. Паттерн позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры.
Посетитель
Visitor
Позволяет создавать новые операции, не меняя классы объектов, над которыми эти операции могут выполняться.
Войти Связаться
Design Pattern. Разбираем шаблоны iOS-разработки на реальных примерах.
[vc_row][vc_column][vc_column_text]Начните учиться прямо сейчас! Смотрите, как использовать их, чтобы создавать чистый и удобный в поддержке код, а также экономить время, когда нужно быстро изменить определенный функционал.
Design Pattern — это частая тема для разговоров, форумов и даже для 15-минутного перерыва на работе. Вы можете найти много вещей в книгах или интернете об этом, а также множество примеров использования.
Когда я начинал учиться, я понимал, что такое паттерны, но я не понимал, как их применить в моем коде.
Strategy pattern (Поведенческие шаблоны)
Поведенческие шаблоны позволяют выбрать алгоритм во время исполнения программы. Вместо прямой реализации одного алгоритма код получает инструкции о том, что существует семейство алгоритмов, и выбор поведения зависит от контекста.
Мы можем использовать различные алгоритмы во время выполнения программы: другими словами, нам все равно, как выполнена реализация.
Алгоритму нужен объектfly
, который знает, как летаетclass
утка, а также знает, как летает class
ракета. И ему совсем не важно, что используется: взмах крыла или газовый баллон.
protocol Fly { protocol Fly { func fly() } class Duck: Fly { func fly() { print("spread wings") } } class Rocket: Fly { func fly() { print("vrooommm!!") } } let flyableObject: Fly = Rocket() flyableObject. fly()
Решение задачи с помощью стратегии
Для этого проекта нам понадобится опыт работы с viewController
, а также заранее определенная модель поведения (Strategy pattern). Идеальный пример для использования Strategy Pattern — это реализация с помощью viewController
процесса авторизации (Login). Создадим протокол LoginViewController
и определим его действия и зависимости.
Когда мы внедряем LoginViewController
в наш проект, нам не надо думать о пользовательском интерфейсе, сделан ли он с помощью tableView
, использует ли анимацию или методы проверки. Главное, чтобы он знал, как выполнить авторизацию.
protocol LoginViewControllerActions { func loginBtnPressed(user: User) } //swift 3 protocol LoginViewController: UIViewController { let user: User var delegate: LoginViewControllerActions? }
Factory (Фабричный) метод
Factory Method — это паттерн, который используется для создания объектов без указания его точного класса.
Он полезен тогда, когда нужно создать объект во время выполнения программы. Например, если пользователь хочет пиццу с сыром, то будет создан объект CheesePizza()
, а если он хочет пиццу с пепперони, то PepperoniPizza()
.
enum PizzaType { case cheese case pepperoni case greek } class PizzaFactory { func build(type: PizzaType) -> Pizza { switch type { case cheese: return CheesePizza() case pepperoni: return PepperoniPizza() case greek: return GreekPizza() } } }
Решение проблем с помощью Factory
Ранее мы использовали поведенческий (Strategy)
шаблон для авторизации с помощью viewController
. Чтобы получить возможность создавать объекты во время выполнения программы и передавать все зависимости, в которых они нуждаются, мы будем использовать factory
pattern.
Мы должны запушить экземпляр класса LoginViewController
, который можно создать, используя разные подходы, например, с помощью storyboard
, xibx
или программным путем. У нас есть Factory пример, который может быть инжектирован таким образом, что объекты, которые создаются c помощью него, будут менять сам Factory.
protocol LoginViewControllerActions { func loginBtnPressed(user: User) } //swift 3 protocol LoginViewController: UIViewController { let user: User var delegate: LoginViewControllerActions? } protocol LoginViewControllerFactory { func build(delegate: LoginViewControllerActions) -> LoginViewController } class ViewCodedLoginViewControllerFactory: LoginViewControllerFactory { func build(delegate: LoginViewControllerActions) -> LoginViewController { return ViewCodedLoginViewController(delegate: delegate) } } class StoryboardLoginViewControllerFactory: LoginViewControllerFactory { func build(delegate: LoginViewControllerActions) -> LoginViewController { let viewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoginViewController") as LoginViewController viewController.delegate = delegate return viewController } }
С классом Factory
нам просто нужно вызвать метод build
. Нас не интересует, какой Factory
метод будет запрошен: ViewCodedLoginViewControllerFactory
или StoryboardLoginViewControllerFactory
— нам просто нужно выполнить метод build
, который вернет нам LoginViewController
.
let viewController = factory.build(delegate: self) //LoginViewControllerFactory self.presentViewController(viewController, animated: false, completion: nil)
У нас получился один Factory метод, который знает, как собрать ViewController
с помощью storyboard
, xibx
или программным путем.
Декоратор
Декоратор (Decorator) — это структурный шаблон, который позволяет динамически добавлять объектам дополнительное поведение, не влияя на поведение других объектов из этого же класса.
Это мой любимый шаблон. Классический пример — работа кофейни, где при добавлении нового ингредиента к кофе, например, взбитых сливок, необходимо рассчитать новую стоимость и получить описание состава напитка.
protocol Beverage { func cost() -> Double func description() -> String } class Coffee: Beverage { func cost() -> Double { return 0.95 } func description() -> String { return "Coffe" } } class Whip: Beverage { let beverage: Beverage init(beverage: Beverage) { self.beverage = beverage } func cost() -> Double { return 0.45 + self.beverage.cost() } func description() -> String { return self.beverage.description() + ", Whip" } } var darkRoast: Beverage = Coffee() darkRoast = Whip(beverage: darkRoast) darkRoast.description() darkRoast.cost()
Решение проблемы с помощью декоратора
Нам нужны различные версии API для каждого служебного вызова, это можно реализовать различными способами, но мы воспользуемся Decorator pattern для добавления пользовательского заголовка Header
в шаблон Request
. При таком подходе мы будем готовы, если в будущем для API вызова нужно будет добавить новый параметр в заголовок.
public typealias JsonObject = [String : Any] public protocol Request { func request(method: HTTPMethod, data: JsonObject, header: JsonObject?, completion: @escaping (Result) -> Void) } public class MyRequest: Request { public init() { } public func request(method: HTTPMethod, data: JsonObject, header: JsonObject?, completion: @escaping (Result) -> Void) { //do request } } public class MyHeader: Request { let request: Request let header: [String: String] public init(request: Request, apiVersion: APIVersion = .standard){ self.request = request self.header = ["myapikey": "apiKey", "key" : "key", "version" : "\(apiVersion.rawValue)"] } public func request(method: HTTPMethod, data: JsonObject, header: JsonObject?, completion: @escaping (Result) -> Void) { let mutableHeader = self.header + (header ?? [:]) self.request.request(method: method, data: data, header: mutableHeader, completion: completion) } } let v1Request: Request = MyHeader(request: MyRequest(), apiVersion: .v1) let standardRequest: Request = MyHeader(request: MyRequest())
Нам также нужно отфильтровать результаты в запросе. Это можно сделать, создав новый метод или изменив способ работы самого запроса. Мы решили использовать Декоратор, чтобы добавить подобное поведение, так как наш сервис используется в других классах, желательно менять как можно меньше строк кода в предыдущей имплементации.
protocol Service { func fetch(completion: @escaping (Result<[String]>) -> Void) -> Void } class ViewControllerLoader<D> { func load(completion: @escaping (Result<D>) -> Void) { fatalError("load method need to be override on subclasses") } } class ServiceViewControllerLoader: ViewControllerLoader<[String]> { let service: Service init(service: Service) { self. service = service } override func load(completion: @escaping (Result<[String]>) -> Void) { self.service.fetch() { (result) in switch result { case .success(let strings): completion(.success(strings)) case .error(let error): completion(.error(error)) } } } } class ServiceViewControllerLoaderDecorator: ViewControllerLoader<[String]> { let loader: ViewControllerLoader<[String]> init(loader: ViewControllerLoader<[String]>) { self.loader = loader } func filter(data: [String]) { //do filtering } override func load(completion: @escaping (Result<[String]>) -> Void) { self.loader.service.fetch { (result) in switch result { case .success(let strings): let filteredStrings = self.filter(data: strings) completion(.success(filteredStrings)) case .error(let error): completion(.error(error)) } } } }
Адаптер
Адаптер (Adapter) — это структурный шаблон проектирования, который обеспечивает совместную работу классов с несовместимыми интерфейсами. Он часто используется, чтобы заставить работать существующие классы с другими без изменения их исходного кода.
Принцип работы шаблона соответствует своему названию —адаптер. Представьте, что вам нужно, чтобы ваш Nintendo 64, который использует композитный видеовыход, мог работать с вашим новым 4K-телевизором. Для этого вам понадобится Composite-HDMI адаптер.
Решение проблем с помощью адаптера
Нам нужно получить последние четыре цифры модели card
, а также нужна поддержка PKPPaymentPass
. Другими словами, нам нужно создать адаптер, который будет поддерживать интерфейс PKPPaymentPass
совместно с интерфейсом card
.
public struct Card { var lastNumber: String = "" } public struct PassKitCard { let passKitCard: PKPaymentPass? public func toCard() -> Card { return Card(lastNumber: paymentPass.primaryAccountNumberSuffix) } }
Но мы также можем смешать шаблоны, чтобы сделать наш код многоразовым и поддерживаемым, например, добавив поведенческий шаблон Strategy
. На самом деле нам не нужен объект card
, нам нужны только его последние четыре цифры (lastNumbers)
. Так почему бы нам не создать интерфейс, который будет совместим с PKPaymentPass
, Card
и любым другим объектом, который может понадобиться нашему проекту.
public protocol LastNumber { var lastNumber: String { get } } public struct PassKitLastNumber: LastNumber { let passKitCard: PKPaymentPass? public var lastNumber: String { if let paymentPass = self.passKitCard { return paymentPass. primaryAccountNumberSuffix } return "" } } class Card: LastNumber { let card: Card init(card: Card) { self.card = card } var lastNumber: String { return self.card.lastNumbers } }
Заключение
Шаблоны программирования помогают создать чистый и удобный в поддержке код, а также сэкономить время, когда нужно быстро изменить определенный функционал. Поэтому решение некоторых задач становится значительно проще.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_zigzag][/vc_column][/vc_row][vc_row css=».vc_custom_1547303958943{padding-top: 50px !important;}»][vc_column][vc_column_text]
Курсы iOS
На наших онлайн курсах вы освоите азы iOS-разработки и начнёте писать чистый код, соответствующий современным стандартам.
[dt_default_button link=»https://swiftlab.ru/courses/» button_alignment=»default» animation=»fadeIn» size=»big» default_btn_bg_color=»» bg_hover_color=»» text_color=»» text_hover_color=»» icon=»fa fa-chevron-circle-right» icon_align=»left»]ПЕРЕЙТИ К КУРСАМ[/dt_default_button]
[/vc_column_text][/vc_column][/vc_row]
Новости— Swift
Наш бесстрашный и замечательный лидер Талеа Мона-Ласки пообщалась с Джено Шелленбергером из подкаста «Взлом и вход в рекламу» о том, как для нее все началось.
От офисных закусок до Месяца женской истории — загляните на Spotify, чтобы увидеть наши ежемесячные плейлисты.
Если вы творческий человек с 9 до 5, вам нужен дополнительный элемент. Не подработка или что-то с потенциально товарным будущим. Что-то специально для вас. Представляем Side Piece — журнал, созданный Swifties и наполненный работами Swifties.
Наш собственный Лесли Норт, исполнительный вице-президент и руководитель отдела стратегии, поговорил с Digiday, чтобы дать некоторое представление о преимуществах ранней адаптации к новым социальным приложениям, таким как BeReal.
Наша любимая, безумно талантливая и бесконечно потрясающая Марни Бердслей дала офигенное интервью для подкаста «Creatives Offscript». Сделайте себе одолжение и послушайте.
Ознакомьтесь с комментарием нашего директора по стратегии Николь Фурман о маркетинге влияния TikTok для Digiday.
Узнайте, что наш исполнительный вице-президент, глава отдела стратегии Лесли Норт сказала Digiday о последней кампании ESPN и важности правильного понимания вашей аудитории.
Мы рады объявить Неда Макнейладжа нашим новым креативным директором!
Мы невероятно гордимся нашим президентом Талеей Моной-Ласки за то, что она смело выступает за трезвость, психическое здоровье и личный выбор в нашей отрасли. Ознакомьтесь с ее точкой зрения на этот важный разговор с Adweek.
Swift гордится тем, что ценит перспективы всех слоев общества. В этом году наш президент Талеа Мона-Ласки приняла участие в программе наставничества, которая отражает эту ценность.
Борьба с дискриминацией по признаку прически по одной подписи за раз с помощью Dove & the Crown Coalition. Ознакомьтесь с репортажами Ad Age и примите участие!
Наш неумолимый оптимизм, потрясающие новые таланты и смешные акценты — вот то, что редакторы Ad Age выбрали в качестве идеального способа завершить 2021 год!
Срочные новости: мы готовы начать работать с Muscle Milk!
Чему нас учат стрижи-однофамильцы: Объединяйтесь. Сделайте что-нибудь красивое. (Фото Рика Коэна)
Компания She Runs It назвала Swift лучшей компанией для работающих семей.
Наш рекламный ролик Google «Привет, мама» выбран редактором AdAge Creativity
Научитесь летать в нашей новой программе стажировки: Летная школа.
Разожги печь! Blue Apron — наш новый клиент.
Наша работа для Google Made with Code получила награду D&AD Impact.
Learn Swift — дизайн+код
19 разделов — 4 часа видео
Добавить в избранное
Сообщите мне
Изучите Swift — надежный и интуитивно понятный язык программирования, созданный Apple для создания приложений для iOS, Mac, Apple TV и Apple Watch
Преподаватель Мэн То
Приобретение включает доступ к более чем 50 курсам, более 320 обучающим материалам премиум-класса , более 300 часов видео, исходных файлов и сертификатов.
19 тем
Все методы объясняются шаг за шагом в удобном для начинающих формате, чтобы вы могли легко следовать последовательно.
1
Изучение Swift 4
Разработка и кодирование приложения для iOS 11 с нуля
2
Введение в Xcode 9
Создайте свой первый проект Xcode
11:40
3 Введение в 3
Визуальный редактор для редактирование пользовательского интерфейса
5:27
4
Быстрое прототипирование в Xcode
Поток вашего приложения в Xcode
11:30
5
Swift basic 90s the Swift 4 Playground 90s 4
21:32
6
Дизайн в Playground
Дизайн и код пользовательского интерфейса в Swift Playground
19:28
7
Анимация Swift в Playground
03
29:42
8
Дизайн в раскадровке
Реализация собственных дизайнов
15:08
9
Автоматическая компоновка
Автоматическая компоновка, представления стека и классы размеров для адаптации макета в Xcode 9
17:28
10
Адаптация для iPhone X
Проектирование с учетом руководств по макету безопасной зоны
13:46
11
Раскадровка и запуск кода
9000 02 12:3012
Анимация параллакса с использованием прокрутки
Сделайте прокрутку более увлекательной и приятной0003
14
Статические данные и повторно используемые ячейки
Заполнение повторно используемых ячеек данными
8:07
15
3D-анимация с использованием прокрутки 2 17:12
16 170003
18
Строка состояния
Мастеринг элемента, присутствующего практически на каждом экране
12:30
19
Раскадровка на игровой площадке
Углубленный взгляд на раскадровку и иерархию представлений
2 4:03
Шаблоны и исходный код
Загрузить исходные файлы
Загрузить видео и ресурсы, чтобы обращаться к ним и учиться в автономном режиме без перерыва.
Шаблон оформления
Исходный код для всех разделов
Видеофайлы, ePub и субтитры
Просмотреть все загрузки
Что включено?
Все курсы поставляются с загружаемыми файлами, которые помогут вам разрабатывать, кодировать и проходить курс в автономном режиме.
Более 300 часов видео
Субтитры на английском и китайском языках
Исходные файлы, ePub
Пользовательский интерфейс, значки, иллюстрации
Премиум, чат поддержки учиться.
Файлы ePub
Читайте в автономном режиме с помощью Books для iOS, Mac или других приложений, которые могут читать этот формат.
Видеофайлы
Загрузите видео, чтобы посмотреть их позже или в автономном режиме с помощью любого видеоплеера.
Познакомьтесь с инструкторами
Мы все стараемся придерживаться нашего метода пошагового обучения, предоставляя исходные файлы и отдавая приоритет дизайну наших курсов.
Мэн То
Я разрабатываю, программирую и пишу
Мэн То является автором книги «Дизайн+код». Мэн начал свою карьеру в качестве дизайнера-самоучки из Монреаля и, в конце концов, путешествовал по миру в течение 2 лет, поскольку ему было отказано в американской визе. Во время своих путешествий он написал книгу, которую сейчас читают 35 000 человек.
33 курса — 153 часа
Создание красивых приложений с помощью GPT-4 и Midjourney
Дизайн и разработка приложений с использованием GPT-4 и Midjourney с подсказками для SwiftUI, React, CSS, концепций приложений, значков и копирайтинга
3 часа
Создание приложений SwiftUI для iOS 16
Создание анимированных и интерактивных приложений с использованием новых методов iOS 16 с использованием SwiftUI 4 и Xcode 16
5 часов
Создание 3D-сайта без кода с помощью Framer
Разработка и публикация адаптивного сайта с помощью 3D анимация без написания ни строчки кода
3 часа
Создание 3D-сайта с помощью Spline и React
Разработка и кодирование целевой страницы с интерактивным 3D-ресурсом с использованием Spline и CodeSandbox
1 час
Создание анимированного приложения с помощью Rive и SwiftUI
и code an Приложение iOS с анимированными активами Rive, анимацией значков, пользовательскими макетами и взаимодействиями
3 часа
Создание приложения SwiftUI для iOS 15, часть 3
Разработка и кодирование приложения SwiftUI 3 с пользовательскими макетами, анимацией и жестами с использованием Xcode 13, SF Символы 3, Canvas, Concurrency, Searchable и многое другое
4 часа
Создание приложения SwiftUI для iOS 15, часть 2
Разработка и кодирование приложения SwiftUI 3 с пользовательскими макетами, анимацией и жестами с использованием Xcode 13, SF Symbols 3, Canvas, Concurrency, Searchable и многого другого
3 часа
Создание приложения SwiftUI для iOS 15
Разработка и кодирование приложения SwiftUI 3 с пользовательскими макетами, анимацией и жестами с использованием Xcode 13, SF Symbols 3, Canvas, Concurrency, Searchable и многого другого
4 часа
React Livestreams
Узнайте, как мы можем использовать React Hooks для создания веб-приложений с использованием библиотек, инструментов, API и фреймворков
4 часа
Design Founder Livestreams
Путешествие по тому, как мы создавали DesignCode, включая дизайн продукта, управление, аналитику, доход и хорошую дозу обучения на наших успехах и неудачах
2 часа
SwiftUI Advanced Handbook
Обширная серия учебных пособий, охватывающих расширенные темы, связанные со SwiftUI, с основным акцентом на бэкэнд и логику, которые помогут вам развить свои навыки SwiftUI в следующий уровень
4 часа
Руководство по дизайну для iOS
Полное руководство по дизайну для iOS 14 с видео, примерами и файлами дизайна методы разработки
6 часов
Создание веб-приложения с помощью React Hooks
Узнайте, как мы создали новый сайт Design+Code с помощью React Hooks, используя Gatsby, Netlify и передовые методы CSS с помощью Styled Components.
4 часа
Справочник по дизайну пользовательского интерфейса
Полное руководство с лучшими советами и рекомендациями по дизайну пользовательского интерфейса. Бесплатные учебные пособия для изучения дизайна пользовательского интерфейса.
2 часа
Справочник по Figma
Полное руководство по лучшим советам и рекомендациям по Figma
4 часа
SwiftUI для iOS 14
Создаем мультиплатформенное приложение с нуля Мы используем новые методы iOS 14. будем использовать боковую панель и отложенные сетки, чтобы сделать макет адаптивным для iOS, iPadOS, macOS Big Sur, и мы изучим новый эффект согласованной геометрии, чтобы создавать красивые переходы между экранами без сложности. Этот курс подходит для начинающих и преподается шаг за шагом в формате видео.
3 часа
Прямые трансляции SwiftUI
Это подборка прямых трансляций SwiftUI, организованных Мэн. Там он рассказывает и учит, как использовать системы дизайна, типографику, навигацию, дизайн iOS 14, прототипирование, анимацию и передачу разработчика.
19 часов
Прямые трансляции дизайна пользовательского интерфейса
Это подборка прямых трансляций пользовательского интерфейса, организованных Мэн. Там он рассказывает и учит, как использовать системы дизайна, типографику, навигацию, дизайн iOS 14, прототипирование, анимацию и передачу разработчика.
23 часа
Дизайн пользовательского интерфейса для разработчиков
В этом курсе мы узнаем, как использовать дизайн-системы, настраивать контрольные точки, типографику, интервалы, навигацию, правила размера для адаптации к iPad, мобильным и веб-версиям, а также различные методы, которые хорошо переносятся из дизайна в код.
3 часа
Создание приложения с помощью SwiftUI, часть 3
Этот курс предназначен для дизайнеров и разработчиков, увлеченных дизайном и созданием реальных приложений для iOS, iPadOS, macOS, tvOS и watchOS. SwiftUI работает на всех этих платформах. Хотя код не является универсальным, используемые элементы управления и методы могут применяться на всех платформах. Он удобен для начинающих, но также содержит множество дизайнерских приемов и классных рабочих процессов для создания лучших пользовательских интерфейсов и взаимодействий.
4 часа
Создание приложения с помощью SwiftUI, часть 2
Этот курс предназначен для дизайнеров и разработчиков, увлеченных дизайном и созданием реальных приложений для iOS, iPadOS, macOS, tvOS и watchOS. SwiftUI работает на всех этих платформах. Хотя код не является универсальным, используемые элементы управления и методы могут применяться на всех платформах. Он удобен для начинающих, но также содержит множество дизайнерских приемов и классных рабочих процессов для создания лучших пользовательских интерфейсов и взаимодействий.
4 часа
Создайте полноценный сайт в Webflow
Webflow — это инструмент проектирования, с помощью которого можно создавать готовые к использованию приложения без написания кода. Вы можете реализовать адаптивные макеты на основе CSS, создавать сложные взаимодействия и развертывать все в одном инструменте. Webflow также поставляется со встроенной системой управления контентом (CMS) и электронной коммерцией для создания опыта покупки без необходимости использования сторонних инструментов.
3 часа
Расширенное прототипирование в ProtoPie
ProtoPie — это кросс-платформенный инструмент для создания прототипов, который создает прототипы, почти такие же мощные, как созданные с помощью кода, с половиной усилий и без кода. Он идеально подходит для дизайнеров, которые хотят быстро экспериментировать с расширенными взаимодействиями с использованием переменных, условий, датчиков и многого другого.
3 часа
Создание приложения с помощью SwiftUI, часть 1
Этот курс предназначен для дизайнеров и разработчиков, увлеченных дизайном и созданием реальных приложений для iOS, iPadOS, macOS, tvOS и watchOS. SwiftUI работает на всех этих платформах. Хотя код не является универсальным, используемые элементы управления и методы могут применяться на всех платформах. Он удобен для начинающих, но также содержит множество дизайнерских приемов и классных рабочих процессов для создания лучших пользовательских интерфейсов и взаимодействий.
4 часа
React Native для дизайнеров, часть 2
React Native — это популярная платформа Javascript, которая строится на основе React с использованием собственных компонентов для создания реального мобильного приложения, неотличимого от приложения, созданного с помощью Xcode или Android Studio. Основное отличие от нативной разработки заключается в том, что вы можете использовать CSS, горячую перезагрузку, Javascript и другие знакомые методы, которые Интернет развил за последние десятилетия. Самое главное, вы создаете для iOS и Android, используя одну и ту же кодовую базу.
3 часа
React Native для дизайнеров
React Native — это популярная среда Javascript, которая строится на основе React с использованием собственных компонентов для создания реального мобильного приложения, неотличимого от приложения, созданного с помощью Xcode или Android Studio. Основное отличие от нативной разработки заключается в том, что вы можете использовать CSS, горячую перезагрузку, Javascript и другие знакомые методы, которые Интернет развил за последние десятилетия. Самое главное, вы создаете для iOS и Android, используя одну и ту же кодовую базу.
5 часов
Система проектирования в Figma
Узнайте, как использовать и разрабатывать мощную систему проектирования для совместной работы в Figma. Дизайн-системы предоставляют общую библиотеку повторно используемых компонентов и руководств, что позволит вам создавать продукты намного быстрее.
3 часа
React для дизайнеров
Узнайте, как создать современный сайт с помощью React и наиболее эффективных библиотек для размещения вашего сайта/продукта в Интернете. Ознакомьтесь с Grid CSS, анимацией, взаимодействиями, динамическими данными с помощью Contentful и разверните свой сайт с помощью Netlify.
3 часа
Swift Advanced
Изучение Swift — надежный и интуитивно понятный язык программирования, созданный Apple для создания приложений для iOS, Mac, Apple TV и Apple Watch
9 часов
Изучение Swift
Изучение Swift — надежный и интуитивно понятный язык программирования, созданный Apple для создания приложений для iOS, Mac, Apple TV и Apple Watch. 0003
5 часов
Обучение дизайну iOS 11
Изучение цветов, типографики и макета для iOS 8
1 час
Тьяго Мергульхао
Interaction Designer
09 00 ежедневный опыт для Pixel и создание сенсорных экранов 002 3 курсы – 15 часовСоздание подключаемого модуля Sketch
Обзор портала разработчиков Sketch за счет еще более продуктивного рабочего процесса с помощью подключаемого API
2 часа
Swift Advanced
Изучение Swift — надежный и интуитивно понятный язык программирования, созданный Apple для создания приложений для iOS, Mac, Apple TV и Apple Watch для iOS, Mac, Apple TV и Apple Watch.0003
Сертификат
Создать профиль
Получить сертификаты
После прохождения теста мы выдадим вам онлайн-сертификат. Вы можете добавить их в свой профиль после прохождения курсов.
Истории
Как студенты узнали на наших курсах
Посмотрите, что люди узнали и создали, пройдя курсы Design+Code
Привет, MengTo, я запустил свое приложение RunnerGoal для iOS/watchOS, почти полностью построенное с помощью SwiftUI. Спасибо за уроки дизайна и множество элементов управления и анимации, которые я использовал из вашего курса SwiftUI. Мужчина глубоко кланяется.
Bucket теперь доступен в @AppAirport! Благодаря @designcodeio от @MengTo я смог изучить #SwiftUI и создать приложение за 2 месяца.
Мое первое приложение для iOS доступно в AppStore. Я буквально ничего не знал о SwiftUI (все еще немного) и примерно за 4 недели смог воссоздать свое Android-приложение для iOS. Очень рекомендую видео MengTo!
Сделано с использованием SwiftUI и потрясающих курсов Design+Code от @MengTo по SwiftUI и дизайну пользовательского интерфейса!
Даниэль Корпай
Дизайнер в Invision
Новый курс React для дизайнеров от @mengto — это курс моей мечты с тех пор, как я начал изучать интерфейсную разработку в качестве дизайнера! Хотелось бы, чтобы подобный курс существовал в те дни. Все в одном месте для дизайнеров, это просто золото! ✨
Manuel Sainsily
Senior UI/UX Designer в IBM
Будучи старым разработчиком, я купил первую версию design+code в день ее выпуска, и через 1 месяц после.