Вакансия: Разработчик iOS (Swift)
Описание вакансии
Ищем разработчика в интересный проект по разработке мобильного приложения для бронирования ресторанов / баров / кафе / общественно-развлекательных мест.
В ваши задачи будет входить:
Написание с нуля нативного iOS приложения: CRM системы взаимодействия клиентской части приложения (она готова) и административной части, ее Вам и необходимо будет реализовать на базе активного взаимодействие с бекэндом (он готов).
Обязательный стек технологий:
- Общая архитектура: UIKit+MVP или SwiftUI+MVVM на Ваш выбор
- Работы с макетами: Верстка из Фигмы
- UI: Вы будите работать на 90% с кастомными элементами UI, вам необходимо точно знать что кастомится, а что нет в необходимой для приложения степени. Если нет, создать собственную реализацию элемента.
- Сетевая часть: REST API, JSON, JWT токены, способность написать сетевой менеджер способный обрабатывать несколько разных типов запросов, с разными типами данных в очереди. Например: проверить для первого запроса acсess токен, если он истек, остальные запросы ставить в очередь, пока не обновится access токен, после обновления продолжить работу с запросами из очереди уже с обновленным токеном. Эффективно обрабатывать ошибки.
- Паттерны: минимальный набор начиная с синглтона, чем большим их количеством Вы владеете тем лучше.
- Безопасность: работа с Keychain
- Многопоточность: Отличное владение GCD или его обертками.
- Логика приложения: способность найти решения нетривиальных задач (ссылка на Leetcode приветствуется с задачами уровня HARD)
- Типы программирования: протокол ориентированное программированием, функциональное программирование
- Работа с Push уведомлениями
- Отличные знания жизненного цикла приложения и контроллеров в UIKit (если это будет доминирующий фреймфорк), включая глубокое понимание UIViewController и его жизненного цикла. В случае SwiftUI продвинутое владение концепциями управления состоянием и понимание жизненного цикла представлений.
Приветствуется:
- Опыт работы с App Store, знание их политик и гайдлайнов, выкладкой приложений
- Знакомство и базовые навыки работы с реактивным программированием на базе Combine
- Написание unit и UI тестов
Условия:
-
Проектная работа по договору;
-
Гибкий график работы;
-
Возможность удаленной работы;
-
Участие в интересном проекте в профессиональной команде, где ваши идеи будут быстро находить реализацию;
-
По завершению работы над проектом у вас будет возможность продолжить работу в команде осуществляя поддержку и внедрение новых фич.
Приоритет будет отдаваться кандидатам, которые подробно опишут свой опыт с примерами работ и ссылками на GitHub