Surf iOS
В этом репозитории собраны все наши библиотеки, утилиты, инструменты, лучшие практики и форки сторонних библиотек которые мы используем в своей повседневной работе.
Содержание
Лучшие практики
Инициализация проектов
- Xcode-Project-Templates – набор шаблонов для упрощения процесса создания проекта. Позволяет генерировать необходимые папки, файлы и так далее.
Кодстайл
- Swift Code Style - указания по оформлению кода на Swift.
- Obj-C Code Style - указания по оформлению кода на Obj-C
Архитектура
- Surf MVP – наш стандарт разработки UI-слоя приложений
- Surf MVP+Coordinators – надстройка над SurfMVP призванная упростить навигацию внутри приложения.
Кодогенерация
- Generamba templates – содержит набор шаблонов для генерации кода (шаблон ViewController, шаблон Presenter и т.д.) для Generamba
Инструменты
- TargetsCheck - скрипт для проверки консистентности проекта, содержащего несколько Targets
Полезные материалы
Open Source
Здесь находятся описание и ссылки на наши Pod-библиотеки с открытым исходным кодом.
Любую из этих библиотек можно установить к себе в проект с помощью CocoaPods
Утилиты
Содержит набор небольших утилит.
Все утилиты находятся в одном репозитории, но разбиты по разным subspecs
Утилитой может быть форматер телефонных номеров или обертка над NSAttributedString
Для получения более подробной информации iOS Utils
Библиотеки
Эта секция содержит короткое описание и ссылки на репозитории библиотек которые мы активно разрабатываем, поддерживаем и используем в своих проектах.
| Название | Описание | Автор | Статус |
|---|---|---|---|
| CoreEvents | C#-подобные события | LastSprint | |
| NodeKit | Позволяет быстро и удобно работать с сетевыми запросами | LastSprint | |
| RDDM | Для удобной работы с UI коллекциями | LastSprint | |
| TextFieldsCatalog | Коллекция богатых и хорошо кастомизируемых текстовых полей | chausovSurfStudio | |
| MaskInterpreter | Интерпритатор масок для пользовательского ввода | LastSprint | |
| OTPTextField | Библиотека для реализации OTP поля ввода | Fixique | |
| SurfGen | Утилита для генерации моделей для NodeKit | JohnReeze |
Forks
| Название | Почему ответвились |
|---|---|
| Generamba | Для работы с Bundler |
| WSTagsField | Исправили краш и поддержка |
| Popover | Исправили баг с расчетом размеров Popover'а |
| PluggableApplicationDelegate | Поддерживаем |
| SwiftTheme | Добавили alpha-канал к представлению цвета в hex |
| MWPhotoBrowser | Багфиксинг и поддержка |
| TLYShyNavBar | Поддержка |
| ICViewPager | Доработка и поддержка |
| NSObject+Rx | Добавили совместимость с RxSwift ~> 3.1.0 |
| RxGesture | Понизили deployment target до iOS 8.0 |
| OpalImagePicker | Доработка и поддержка |
Правила работы с репозиторием
Репозиторий создан с целью агрегирования всех собственных библиотек, утилит, инструментов, форков сторонних библиотек и различных практик которые мы используем в своей работе.
Для внесения изменений необходимо быть членом iOS команды Surf
Более детально правила описаны здесь