3 заметки с тегом

tutorial

Как подписать PDF на маке

Представь, что ты получил оффер на 1 миллион долларов. Тебе было сказано подписать его и отправить обратно скан.

Что делают 99% людей: не получают такой оффер скидывают PDF на флэшку, идут в ближайший копировальный центр, распечатывают документ, подписывают его, делают скан, записывают обратно на флэшку, идут домой, закачивают себе на компьютер этот несчастный PDF с подписью и, наконец, отправляют его обратно.

Что делаем мы:

4 мес   tutorial

SwiftGen. Генерируем код для ресурсов

Что такое SwiftFormat?

SwiftGen — это инструмент для генерирования кода для ресурсов. Проще говоря, он генерирует код для наших картинок, цветов, шрифтов, файлов локализации и т. д.
И вот как он работает:

Для чего он нужен?

  1. Помогает избежать опечаток при работе со строками
  2. Делает невозможным использование несуществующих файлов
  3. Автозаполнение
  4. И все это обеспечивается компилятором

Как его установить?

SwiftGen можно установить через CocoaPods, homebrew, mint, так же его можно вручную добавить в проект. Я считаю, что самый оптимальный способ при работе в команде — это установить SwiftGen через CocoaPods.

Для этого просто нужно добавить следующий под в подфайл:

pod 'SwiftGen', '~> 6.0'

Затем, обновляем поды в директории проекта:

pod update

Далее нужно добавить следующее в run script build phase:

$PODS_ROOT/SwiftGen/bin/swiftgen xcassets -t swift4 -o ${SRCROOT}/Resources/Assets/Assets.swift ${SRCROOT}/Resources/Assets/Assets.xcassets // 1
$PODS_ROOT/SwiftGen/bin/swiftgen fonts -t swift4 -o ${SRCROOT}/Resources/Fonts/Fonts.swift ${SRCROOT}/Resources/Fonts // 2
$PODS_ROOT/SwiftGen/bin/swiftgen colors -t swift4 -o ${SRCROOT}/Resources/Colors/Colors.swift ${SRCROOT}/Resources/Colors/Colors.txt // 3
$PODS_ROOT/SwiftGen/bin/swiftgen strings -t structured-swift4 -o ${SRCROOT}/Resources/Localization/Strings.swift ${SRCROOT}/Resources/Localization/ru.lproj/Localizable.strings // 4
  1. Генерирует код для xcassets. Мы тут указываем, что генерируем код в Assets.swift из Assets.xcassets, указывая их пути.
  2. Таким же образом генерирует код для шрифтов.
  3. Таким же образом генерирует код для цветов.
  4. Таким же образом генерирует код для файлов локализации.

Можно так же генерировать код для Core Data, Interface Builder files, JSON and YAML files, Plists и т. д.

Теперь SwiftGen будет генерировать код для нужных нам ресурсов при каждой сборке проекта. Вот каким образом можно использовать добавленные ресурсы:

let beerIcon = Asset.beer.image
let boozeColor = ColorName.booze.color
let helloText = L10n.hello

Заключение

Структуризация ресурсов проекта не менее важно самой архитектуры проекта. SwiftGen дает нам быстрый и актуальный доступ ко всем нашим ресурсам и избавляет нас от отпечаток и использования несуществующих ресурсов.
В посте я показал самый минимум, как быстро можно внедрить SwiftGen в свой проект. Подробнее про то, как можно использовать SwiftGen через терминал, как добавлять свои шаблоны, как генерировать код для CoreData, JSON и прочее, можно узнать на GitHub.

6 мес   tutorial

SwiftFormat. Форматируем код

Что такое SwiftFormat?

SwiftFormat — это инструмент для, не поверишь, форматирования кода.
Вот как он работает:

Для чего он нужен?

Работая в команде, хорошо иметь единый Code Style. И как настоящий тру разработчик, лучше автоматизировать все, что можно автоматизировать. И лучше думать о том, как работает код, нежели о том, как он выглядит.

Как его установить?

Есть несколько способов установить SwiftFormat, я покажу вам пару.

Command-line tool

Открываем терминал и обновляем homebrew:

$ brew update

Устанавливаем SwiftFormat:

$ brew install swiftformat

Далее идем в директорию проекта:

$ cd myProject

И запускаем следующее, чтобы отформатировать все файлы:

$ swiftformat .

Чтобы отформатировать определенный файл, нужно ввести:

$ swiftformat GodClass.swift

Build phase в Xcode

Но запускать его каждый раз вручную как-то не тру. Поэтому мы сделаем так, что при каждом билде проекта, SwiftFormat будет запускаться сам. Для этого так же устанавливаем swiftformat через терминал и добавляем следующее в run script build phase:

if which swiftformat >/dev/null; then
  swiftformat .
else
  echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat"
fi

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

Заключение

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

6 мес   tutorial