Как создать что-то с помощью Swift Playgrounds

1656639730 kak sozdat chto to s pomoshhyu swift playgrounds

автор Харшита Арора

pP0wO39qmyRfGKPsdevuHLzZUZqZ6aAbp8uu

Буквально несколько дней назад я закончил подавать заявку на получение стипендии WWDC 2018 года. Было очень весело создавать Alice in codeLand. Это был мой первый год, когда я подал заявку на получение стипендии WWDC и я надеюсь попасть!

Alice in codeLand – это три в одном. Это хакерский/симулятор кодирования, который выглядит как терминал Mac OS, с которым можно играть в автономном режиме. Это также смешная история о хакере по имени Алиса, который пытался получить несанкционированный доступ к порталу Apple WWDC после того, как сломал toothtube.com (платформу для обмена видео с отзывами о зубной пасте) и macaroonsarethebest.com (социальную платформу для таких любителей макарун, как я). . И, наконец, это техническая демонстрация SQL-инъекций (техника взлома), чтобы люди узнали об информационной безопасности и пошаговом процессе SQL-инъекций после того, как выяснили, является ли веб-сайт уязвимым или нет.

Начиная с 2017 года Apple ставит перед претендентами на стипендию задачу создать интерактивный опыт в Swift Playgrounds.

Когда я начинал, я был очень растерян. Я никогда раньше ничего не делал в Playgrounds, потому что всегда работал с проектами Xcode (которые позволяют создавать настоящие программы для iOS). Я использовал только Playgrounds, когда начал изучать Swift для изучения и кодирования основных концепций программирования. Инструкторы на моих онлайн-курсах использовали его, но эти курсы продолжались всего две недели, и я никогда не создавал для них графику или анимацию.

Потому понадобилось немного времени, чтобы ознакомиться с Playgrounds. Оглядываясь назад, я мог бы сэкономить половину времени, если бы знал, где искать правильные ответы и как начать с ними работать.

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

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

Давайте начнем!

Итак, что такое Swift Playgrounds и зачем?

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

Разница между программой для iPad и инструментом Xcode заключается в том, что на iPad созданные вами Playgrounds имеют доступ к таким функциям, как камера, сенсорный экран и т.д. Но при запуске Playground на Xcode вы не можете этого сделать. Подробнее о Swift Playgrounds здесь.

Хотя концепции и примеры в этом сообщении используются Xcode, Playgrounds также можно создавать и запускать в iPad.

Некоторые концепции для изучения

1. Как запускать/играть на игровых площадках и как начать с ними

Вы можете скачать Playgrounds с открытым кодом здесь, здесь и здесь. Чтобы воспроизвести их, щелкните Assistant Editor в Xcode и выберите Live View, если он не выбран автоматически.

Отображение в реальном времени – это место, где отображаются исходные данные или результаты кода. Когда вы создаете объект в своем коде, который нужно отображать в режиме live view, необходимо назначить свойство Live View страницы Playground этому объекту.

5M2s06ZDoVHN2zw6LTYA0SRdIxGEjNdvFsfk
Live View Alice in codeLand

Теперь вот код для назначения свойства Live View страницы Playground объекту UIView. Вы также можете назначить класс или контроллер просмотра.

Для этого вам придется импортировать фреймворк PlaygroundSupport, а также UIKit.

let view = UIView(frame: CGRect(x: 0, y:0, width: 1024, height: 768)
PlaygroundPage.current.live = view 

На панели навигации вы увидите две папки: «Источники» (для всего вспомогательного кода) и «Ресурсы» (для всех ресурсов изображений и аудио).

По моему опыту, перетаскивание файла Swift из библиотеки объектов почему-то не работает в Playgrounds. Вместо этого щелкните папку Sources правой кнопкой мыши и нажмите «New file», чтобы создать новый файл Swift.

2. Как создать представление?

Игровые площадки не имеют раскадровок. Вы можете программно создать представление (UIView) любого размера (макс. 1024 x 768).

Я создал один в примере выше.

3. Что такое PlaygroundSupport?

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

По сути, вам нужно импортировать эту структуру, чтобы иметь возможность назначить свойство live view страницы игровой площадки созданному вами объекту.

4. Создание расширенной документации с разметкой

Swift Playgrounds позволяет создавать красивую документацию (которую легче читать, чем обычные комментарии) с помощью языка разметки.

Основной синтаксис Markup for rich documentation таков:

  1. Используйте «//: stuff» для отдельных комментариев, что, если вы заметили, означает только дополнительный «:» после // (который используется для обычных комментариев).
  2. Используйте “/*: stuff */” для многострочных комментариев.
  3. Добавьте перед строкой хэштег, например «#stuff», чтобы создать заголовок.
  4. Переместите текст в звездочку, например «материалы», чтобы отобразить курсив.
  5. Переместите текст в две звездочки, например «**вещи», чтобы отображать жирный шрифт.

После написания содержимого в синтаксисе он находится в формате необработанной разметки. А для отображения в воспроизведенном формате разметки (настоящая расширенная документация) перейдите к редактору и в разделе «Настройка игровой площадки» выберите «Показать документацию».

n5m6eQHLvKsHGXO4gpaydOKMw5gulHBnyhMH
Пример необработанного формата разметки
BYK47HDw37dl0q4ej6Sx0x6ucbx1rxtX9oE8
Предоставленная документация

Подробнее о Markup читайте здесь.

Начните с создания простой игровой площадки

Ладно, давайте загрязним руки, написав код! Давайте создадим хакерский симулятор вроде hackertyper.com! 😀

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

import PlaygroundSupportimport UIKit
let arrayOfStrings = ["Alices-MacBook-Pro:~ Alice$", "override func viewDidLoad() {", "super.viewDidLoad()", "makeBackgroundGradient()", "addGradientToPortfolio()", "addGradientToTopBar()", "addGradientToTopBar()", "setupPopup()", "addTradeButton.titleLabel?.minimumScaleFactor = 0.5;", "addTradeButton.titleLabel?.minimumScaleFactor = 0.5;"]
var variableThatChanges : Int = 0
let frameOfMainView = CGRect(x: 0, y: 0, width: 1024, height: 768)
class MainViewController: UIViewController, UITextViewDelegate {
override func viewDidLoad() {
let view = UITextView(frame: CGRect(x: 0, y:0, width: 1024, height: 768))
self.view.frame = frameOfMainViewview.backgroundColor = .blackview.textColor = .greenview.font = UIFont(name: "Courier", size: 20)view.isEditable = trueview.delegate = self self.view.addSubview(view)
} 
func textView(_ textView: UITextView,
shouldChangeTextIn range: NSRange,
replacementText text: String) -> Bool {
if variableThatChanges == (arrayOfStrings.count - 1)
{
variableThatChanges = 0
}
let text = textView.text ?? ""
textView.text = text + "\n" + arrayOfStrings[variableThatChanges]
variableThatChanges += 1
return false
}
}
let master = MainViewController()
master.preferredContentSize = frameOfMainView.size
PlaygroundPage.current.liveView = master

Вот код выше. Скопируйте и вставьте его на игровую площадку. Запустите Live View, и вы увидите черный фон. Щелкните где-нибудь на фоне, и вы увидите клавиатуру, которая появится в пользовательском интерфейсе. Нажмите любую клавишу на нем, и он укажет вам код из строк.

Вот вот – вы создали базовый симулятор хакера в менее чем 50 строках кода! Теперь ваша очередь заниматься творчеством из Playgrounds! 😉

Некоторые замечательные ресурсы, которые следует просмотреть, чтобы узнать больше

  1. Документация Apple.
  2. Видео сессии WWDC. Проверьте это, это, это и это в таком порядке.
  3. Подробно об игровых площадках на RWDevCon 2017.
  4. Видео Кейси
  5. Учебник по коду tutsplus
  6. Представление на WWDC 2017 и WWDC 2018. Кроме того, отличные Swift Playgrounds, чтобы проверить и почерпнуть идеи.
  7. Краткая глава из великолепной книги.

Пока все! Следите за мной в Medium или Twitter. Загрузите приложение, которое я создал! Просмотрите отличный стартап, который я советую! 🙂

Добавить комментарий

Ваш адрес email не будет опубликован.