Добавьте подходящих специалистов в список и оформите заявку для предварительного бронирования времени специалистов. После оформления заявки ваш персональный менеджер организует прохождение всех необходимых проверок с вами и каждым кандидатом из заявки. Специалист привлекается к проекту только после окончательного подтверждения его выхода с вашей стороны.
Умею решать сложные задачи используя математический подход. Хорошо работаю с графикой. В качестве хобби писал системы 3D интерфейсов для игры Garry's Mod.
Проекты
(5 лет 4 месяца)
AntiLand - AntiChat
Роль
iOS разработчик
Обязанности
Приложение социальная сеть Анонимный чат с аудиторией 500 000 пользователей.
- Отличное знание Swift. Базовое знание Objective C достаточное, чтобы прочитать и что-то отредактировать.
- UIKit знаю хорошо. С CoreData работал, писал миграции, добавлял поля, отношения, писал мапперы, мало работал с контекстами. AVKit/AVFoundation писал экраны записи фото/видео + распознавание лица через Vision, писал обрезку видео по разрешению/битрейту/длине.
- RxSwift+RxCocoa использовал при архитектуре с биндингами.
- Верстка с использованием SnapKit. Пытались использовать SwiftEasyLayout, но на проекте не прижилось, при этом много опыта со SnapKit, AutoLayout через сториборды/ксибы/код через anchor, так же работал и с ручной версткой через фреймы, будь то самописный код расчета всех фреймов, или же через PinLayout. Так же писал на стэке SwiftUI+Combine.
- Использовал разные пресеты Instruments для оптимизации и распараллеливания тяжелых участков кода/сокращение использования оперативной памяти приложением.
- Понимаю и использую паттерны. Под рукой всегда лежит книга про паттерны проектирования. На проекте использовался MVP, MVVM;
- В основном использую набор стандартных структур + стандартные имплементации алгоритмов из Foundation.
- Решение проблем многопоточности, так как приходилось работать c данными из разных источников (Realm + webSocket)/(CoreData+Pubnub) изменять данные и синхронизировать в реальном времени с сервером/другими клиентами.
- Необходимо было следить, чтобы работа с БД и работа в UI происходила корректно т.к. в проекте использовался самописный сервис с URLSession и базой данных на CoreData, для обработки видео/фото и обновлений в бэкграунде, из-за чего пришлось много работать с многопоточностью, фиксить большое количество багов возникших из-за дата рейсов/рейс кондишинов. Планировался внедрение Swift concurrency для оптимизации асинхронных операций, но из-за низкой минимально поддерживаемой версии iOS (target version 12.0), эта задача была отложена.
- Снапшоты тесты для тестирования пользовательского интерфейса с использованием XCUITest.
- Публикация и обновление приложения в AppStore. Создание тестовых сборок на TestFlight. Работа с Apple Developer Certificates (обновление в проекте).
Достижения
- С командой переписывали с нуля уже существующее приложение на SwiftUI+Combine MVVM
- Рефактор легаси UIKit версии приложения
- Возможность добавлять картинку маски на фотографию, переносить, поворачивать, масштабировать. Режим автоматического нахождения лица(Vision) и совмещения маски так, чтобы глазницы от маски были на глазах человека.
Приложение - криптокошелек для обмена валют.
- Добавление новых экранов с новым функционалом;
- Доработка старых экранов для работы с новыми запросами и данными;
- Запись и обработка криптотранзакций в БД Realm;
- Имплементация BestBarter Exchange.
Приложение которое синхронизируется с Google Таблицами и позволяет вносить данные через удобный интерфейс.
- Участие в разработке с нуля.
- Вёрстка UI;
- Архитектура VIPER;
- Сеть Alamofire;
- Работа с Google API;
- подключение In App purchases (auto renewable subscription);
- Выпуск первой версии приложения в AppStore
Ссылка на приложение: https://apps.apple.com/in/app/spreadsheet-data-entry/id1515687808
Достижения
Успешный выпуск первой версии приложения. Разработка внутреннего проекта компании.
Стек специалиста на проекте
Alamofire, RxSwift, VIPER, PinLayout, In-App Purchases, Google Sign In, Google Sheet API