Skip to content

Releases: surfstudio/iOS-Utils

Правки проекта, AttributedString updates

29 Sep 12:50
beda2c3
Compare
Choose a tag to compare
  • Добавлен параметр paragraphSpacing в AttributedString
  • Правки проекта, добавлен Example проект
  • Удалена утилита OTPField
  • Повышена минимальная iOS версия до 11ой

Закрыт issue

MapRoutingService и правки для StringAttributes

02 Jun 10:05
Compare
Choose a tag to compare

В новой версии появилась утилита MapRoutingService, которая позволяет получить список приложений для работы с навигацией, установленных на устройстве пользователя, а также отобразить точку/построить маршрут до заданной точки в одном из них. (ссылка на PR)

Но самая важная правка в StringAttributes. Изменения коснулись атрибута lineHeight, отвечающего за высоту строки:

  • раньше необходимо было задачть два параметра - font и lineHeight из фигмы, на основе которых задавалось расстояние между строками (lineSpacing)
  • теперь достаточно только одного - lineHeight из той же фигмы, на основе которого будет задаваться
    • либо lineHeightMultiple как соотношение paragraph.lineHeightMultiple = lineHeight / font.lineHeight, если среди других атрибутов строки будет передан font
    • либо minimumLineHeight и maximumLineHeight, если font среди других атрибутов передаваться не будет

Ссылка на PR.

Обратите внимание!

Поясню проблемы при миграции на примере. У нас есть текст, кегль шрифта например 16, системная font.lineHeight его при этом равняется 18, а нам нужно чтобы она была 20. Мы передавали атрибут .lineHeight(20, font). Теперь достаточно только .lineHeight(20), с условием что атрибут .font(...) будет передан отдельно, что обычно и бывает. Проблема:

  • при старом подходе, когда атрибут задавал межстрочное расстояние, высота одной строки всегда равнялась 18. Двух - 38 (20+18), трех 58... то есть lineHeight * (кол-во строк - 1) + font.lineHeight. Но фигма работает по другому, она тупо умножает lineHeight на кол-во строк
  • новый подход будет работать так, как работают размеры в фигме - кол-во строк умножить на параметр атрибута lineHeight

В силу чего ваш дизайн может поехать, простите) Варианта два:

  • при миграции явно указывать lineSpacing, чтобы остаться со старым вариантом layout-а
  • перейти на новый подход, отладить и жить дальше в шоколаде, зная что высоты текстовых контейнеров у вас будут один-в-один как фигме)

Спасибо всем причастным! @paradi2e, @Alelenka, @gmngg, @tranina-olesya, @Ikeret, @chausovSurfStudio и @gregoryvit 🎉

Обновление UIDevice

21 Dec 21:59
Compare
Choose a tag to compare

Сборка с обновлениями для утилиты UIDevice. В сборку вошли

Фактически, переходим на собственную поддержку и развитие не поддерживаемой более библиотеки Device

Спасибо за проделанную работу @kombatkos и за проведенное code-review @Alelenka 🎉

Поддержка SPM и baseLine в StringBuilder

12 Apr 09:01
d209af0
Compare
Choose a tag to compare

Load View with Bundle #77

Добавлена возможность установить Bundle вне функции в методах загрузки View.

SPM support added #72

  • Добавлена поддержка SPM, но только для iOS и для всех утилит сразу (то есть можно подключить все утилиты сразу через SPM, по отдельности пока нет возможности)
  • Для CI добавлена проверка корректности поддержки SPM

Add baseLine offset and add method .add(attribute) #75

  • В StringAttribute добавлен параметр baselineOffset
  • В StringBuilder добавлена функция .add в для добавления NSAttributedString

❤️ Спасибо @Vadim4016 @Alelenka @KorolevSoftware

Very Big Release

16 Nov 16:15
Compare
Choose a tag to compare

Новое

Mail Util

  • добавил утилиту, которая умеет открывать форму для отсылки email сообщений. В случае, если не сможет открыть email форму внутри приложения MFMailComposeViewController - открывает стандартную почту
  • добавил документацию (описал пример интеграции)
  • повысил версию до 10.1.0

SecurityService + CryptoBox

  • Добавлен SecurityService, который умеет шифровать/дешифровать данные по ключу, а так же содержит keychain сервис
  • Содержит полную реализацию для подключения шифрования пином

BeanPageControl

  • Добавлен page control с перетекающими индикаторами-бобами

TouchableControl

Позволяет принимать на вход различные UI элементы и, при нажатии на этот контрол,
анимировать их, иммтируя как бы нажатие на кнопку. То есть, по сути является аналагом кнопки с возможностью кастомизировать анимацию
нажатия(затемнение или изменение цвета только некоторых элементов)

CustomSwitch

Гибко кастомизируемая реализация свитча

LoadingView

Набор классов и протоколов для удобного отображения загрузочных состояний с шиммерами

MoneyModel

Структура для работы с деньгами

Обновления

UIImageExtensions

  • добавлены методы badgedImage и drawInitials, для рисования бейджа и инициалов на картинке соответственно

StringBuilder

  • депрекейтнул старые методы
  • добавил новый метод API и переосмыслил вставку разделителей между частями строки
    • разделитель теперь относится к части строки (чтобы избежать бага описанного выше)
    • разделитель можно повторять несколько раз

Багфикс

#48

Bundler, Pods, UIDevice, LayoutHelper, UIStyle

27 Jan 06:17
4691bf5
Compare
Choose a tag to compare

Добавили в проект Bundler, настроил и проверил что проект собирается
Добавили зависимостью swiftLint, а то он вроде был, но он не прогонялся когда билдишь, а люди по всей видимости забывали это делать.
Добавил extension на UIDevice, он нужен для след. утилиты. Там набор методов, которые позволяют определить текущий девайс.
Добавил утилиту LayoutHelper.
Добавил класс UIStyle

Спасибо @fixique за гигантский объем работы!

SkeletonView bugfix

25 Dec 05:52
efb9eae
Compare
Choose a tag to compare

Каждый раз когда появлялся footer запускалась анимация, а старая не удалялось.
Как оказалось каждый раз вызывался draw, при вызове которого добавлялся новый слой градиента и не удалялся старый.
Проблема решена удалением старого слоя градиента перед добавлением нового.

LineBreakMode

03 Dec 10:49
ea39728
Compare
Choose a tag to compare

Теперь в StringAttributes есть возможность задать line break mode.

Спасибо @chausovSurfStudio

GeolocationService и обновление StringAttributes

26 Nov 17:08
53676a3
Compare
Choose a tag to compare

Новая утилита GeolocationService - сервис для определения геопозиции пользователя.
Атрибут crossOut в StringAttributes - теперь вы можете вычеркнуть что-нибудь.

Спрятали JailBreakDetector и добавили удобную кнопку

05 Nov 14:01
a092006
Compare
Choose a tag to compare

Теперь во время реверс-инженеринга найти код, отвечающий за определение JailBreak'а будет сложнее.
Переименовали JailbreakDetect в BrightSide

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

Спасибо @fixique @chausovSurfStudio !