##junior developer
- знает основы программирования на Objective C (Swift)
- программирует в Xcode
- знает основы git
- читал Mobile Human Interface Guidelines
- знает и использует базовые паттерны (MVC, делегаты, нотификейшены)
- знает что такое протоколы, делегаты, категории
- знает и использует основные элементы интерфейса (UIWindow, UIView, UINavigationBar, UIToolbar, UITabBarController)
- знает жизненный цикл UIView в UIViewController'е
- знает жизненный цикл приложения
##middle developer
- хорошо знает Objective C (Swift)
- хорошо разбирается в Xcode
- хорошо разбирается в git
- уверенно пользуется терминалом
- использует Cocoapods
- знает и использовал большенство элементов интерфейса
- знает что такое Rest API
- использует Core Data вместе с MagicalRecord и Mogenerator
- использует для запросов к серверу AFNetworking
- использует SDWebImage
- знает GCD
- использует Storyboards, Autolayout, Size Classes
- умеет создавать сертификаты разработчика, провижен профайлы
- умеет настраивать пушнотификации
- умеет настраивать инапы
- может выложить приложение в аппстор
- умеет архивировать проект и создавать .ipa файл
- знаком с сервисами дистрибуции приложений
- способен самостоятельно решать поставленные задачи
##senior developer
- отлично знает Objective C (Swift)
- отлично разбирается в Xcode
- знает Objective-C Runtime
- пишет тесты используя TDD/BDD
- использует OCMock при написании тестов
- может настроить Travis-CI
- пишет скрипты на bash
- знает основы java script, HTML
- умеет ставить задачи в проекте, четко их формулировать
- умеет объяснить технические детали неспециалистам (менеджерам, заказчикам)
- умеет объяснить какие требуются ендпоинты для приложения
- быстро осваивает новые незнамомые технологии
- быстро разбирается в чужем коде
- следит за чистотой кода в проекте
- знает следующиме фреймворки - AFNetworking, MagicalRecord, SDWebImage, SSKeychain, SVProgressHUD, BlocksKit, Reachability, RestKit, ReactiveCocoa, Mantle, NSData+Base64, MKStoreKit и др.
##lead developer
- может организовать работу команды в проекте
- отвечает за проект в котором работает
- может составить план работ в проекте и оценить по времени
- следит за новыми технологиями в мобильной разработке
- внедряет новые технологии в проектах
- делает презентации по новым технологиям
программирует в Xcode - какой-то лишний пункт, он и так программировать в нем должен
CI, возможно, лучше перекинуть в lead
внедряет новые технологии в проектах - по мне лучше в senior, как и "следит за новыми технологиями в мобильной разработке"
Насчет тестов: TDD/BDD я бы понял, если бы у нас был поставлен такой workflow, а пока мы вообще не уверены, стоит ли использовать TDD в iOS разработке, насколько я понимаю.
Еще может имеет смысл добавить конкретно использование KIF-тестов
У лида нет никаких "технических" пунктов. Может надо что-то из senior перекинуть, может дописать еще что