Surf-iOS-Developers
Surf-iOS-Developers copied to clipboard
The main iOS repository of the Surf team
Surf iOS
В этом репозитории собраны все наши библиотеки, утилиты, инструменты, лучшие практики и форки сторонних библиотек которые мы используем в своей повседневной работе.
Содержание
- Лучшие практики
- Инициализация проектов
- Кодстайл
- Архитектура
- Кодогенерация
- Инструменты
- Open Source
- Утилиты
- Библиотеки
- Forks
- Правила работы с репозиторием
Лучшие практики
Инициализация проектов
- iOS Project Starter – набор скриптов, который используем для инициализации проектов.
- Xcode-Project-Templates [deprecated] – набор шаблонов для упрощения процесса создания проекта. Позволяет генерировать необходимые папки, файлы и так далее. Сейчас используем в основном Project starter (см. пункт выше).
Кодстайл
- Swift Code Style - указания по оформлению кода на Swift.
- Obj-C Code Style - указания по оформлению кода на Obj-C.
Архитектура
- Surf MVP – наш стандарт разработки UI-слоя приложений
- Surf MVP+Coordinators – надстройка над SurfMVP призванная упростить навигацию внутри приложения.
Кодогенерация
- Generamba templates – содержит набор шаблонов для генерации кода (шаблон ViewController, шаблон Presenter и т.д.) для Generamba
Инструменты
- TargetsCheck - скрипт для проверки консистентности проекта, содержащего несколько Targets
Полезные материалы
- Материалы для стажеров
- Тестовый проект для iOS разработчика
- Проекты для iOS стажеров
Open Source
Здесь находятся описание и ссылки на наши Pod-библиотеки с открытым исходным кодом.
Любую из этих библиотек можно установить к себе в проект с помощью CocoaPods
Утилиты
Содержит набор небольших утилит.
Все утилиты находятся в одном репозитории, но разбиты по разным subspecs
Утилитой может быть форматер телефонных номеров или обертка над NSAttributedString
Для получения более подробной информации iOS Utils
Библиотеки
Эта секция содержит короткое описание и ссылки на репозитории библиотек которые мы активно разрабатываем, поддерживаем и используем в своих проектах.
Как добавить свою библиотеку
| Название | Описание | Автор | Статус |
|---|---|---|---|
| CoreEvents | C#-подобные события | LastSprint | |
| NodeKit | Позволяет быстро и удобно работать с сетевыми запросами | LastSprint | |
| RDDM | Для удобной работы с UI коллекциями | NullIsOne, 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
Более детально правила описаны здесь