Требования
- опыт ios-разработки от 2 лет
- уверенные знания Objective-C, Swift, iOS SDK, Xcode;
- умение работать со сторонними библиотеками (CocoaPods, сторонними SDK и т.п.);
- умение создавать и работать с элементами UI из кода;
- знание ООП и паттернов проектирования;
- опыт проектирования архитектуры приложения с нуля;
- опыт работы с Developer Center, App Store Connect, TestFlight;
- опыт взаимодействия с WebView;
- умение работать с Push-уведомлениями;
- опыт работы с Git, понимание Gitflow;
- опыт работы в agile команде;
- знание систем автоматической сборки проектов;
- умение писать тесты;
- умение проводить качественное код-ревью.
Плюсом будет
- навыки работы с CI/CD;
- умение создавать сложные интерфейсы и анимации;
- знание различных архитектур (MVC, MVP, MVVM и других);
- знания о способах хранения чувствительных данных, алгоритмов хэширования и шифрования в iOS;
- знание Swift UI, Combine, опыт работы с различными датчиками iPhone;
- опыт работы с Ionic или аналогичными фреймворками для создания гибридных мобильных приложений.
Обязанности
- опыт работы с Ionic или аналогичными фреймворками для создания гибридных мобильных приложений;
- разработка новых и поддержка существующих приложений под IOS;
- проведение декомпозиции и оценки поставленных задач;=
- написание Unit-тестов;
- самостоятельное тестирование и отладка разрабатываемых продуктов;
- реализация интересных UI/UX и «подкапотных» решений;
- участие в развитии архитектуры мобильных приложений;
- контроль кода, архитектуры в проектах, рефакторинг;
- совершенствование технических инструментов;
- внедрение новых технологий и практик.
Ожидаем, что кандидат
- работал в Agile-команде, готов улучшать процессы;
- проактивен, следит за новыми технологиями, предлагает их внедрять;
- работал на аналогичной должности и умеет разрабатывать серьезные коммерческие приложения для IOS;
- имеет навыки написания кода, которые соответствуют принятым в индустрии стандартам;
- готов прикладывать все усилия, необходимые для достижения результата (даже если требуется потратить дополнительное время на изучение чего-то нового);
- умеет декомпозировать задачи по техническим заданиям или бизнес-требованиям;
- умеет проводить отладку приложений, прежде чем передавать на проверку QA-инженерам;
- способный при возникновении потребности работать в условиях жестких сроков;
- инициативен и готов продолжать профессиональный рост.