Егор Горских — iOS-разработчик

Егор iOS разработчик

Привет! Я Егор — iOS-разработчик с продуктовым опытом в ERP, POS, retail и fintech-проектах. Делаю мобильные приложения на Swift, работаю с UIKit, SwiftUI, realtime-сценариями, offline-first логикой, локальным хранением данных, CI/CD и тестированием.

Сейчас развиваю Smart-Trex — EPUB-читалку для изучения языков через книги с переводом слов, словарём и собственным backend.

Swift UIKit SwiftUI MVVM CI/CD Offline-first

Текущий проект

Smart-Trex — читалка для изучения языков через книги

Я разрабатываю Smart-Trex — EPUB-читалку на SwiftUI для изучения языков через книги. Это pet-проект, в котором я собираю полноценный продуктовый цикл: импорт и отображение EPUB, перевод слов, локальное хранение, словарь, backend для переводов, HTTPS-инфраструктуру и тестируемую архитектуру.

Идея приложения — не заменить обычный переводчик, а помочь читать на иностранном языке без постоянного переключения контекста: нажал на слово, получил перевод, сохранил в словарь и позже повторил.

Скриншот приложения Smart-Trex

Smart-Trex

Smart-Trex — это не просто переводчик. Это приложение для тех, кто хочет читать книги на иностранном языке и постепенно расширять словарный запас.

  • Читать: импорт EPUB-книг и хранение их в локальной библиотеке
  • Переводить: перевод слов по нажатию и отдельный экран переводчика
  • Запоминать: сохранение переводов и формирование личного словаря
  • Повторять: подготовка слов к будущему режиму повторения

Главный сценарий продукта: читать → переводить → сохранять → повторять.

Технологии

  • UI: SwiftUI — декларативные экраны, адаптивная вёрстка, переиспользуемые компоненты
  • Reader: WKWebView — отображение EPUB-глав и обработка нажатия на слова
  • Архитектура: MVVM + Use Cases + Repository layer
  • Асинхронность: async/await — сеть, парсинг и перевод
  • Хранение: Core Data — книги, прогресс чтения, история и кэш переводов
  • Backend: Node.js + Express — API-прокси, rate limit, валидация запросов
  • Перевод: self-hosted LibreTranslate за Nginx и HTTPS
  • Инфраструктура: Docker Compose, Nginx, Let’s Encrypt, Cloudflare DNS
  • Тесты: unit-тесты для парсинга, репозиториев, use case-ов и view model-ей

Путь к первому релизу

Техническая основа уже готова. Сейчас фокус — довести основной пользовательский сценарий до удобного состояния и подготовить первую сборку для TestFlight.

Уже реализовано

  • Библиотека книг: импорт EPUB, список книг, обложки, метаданные и прогресс чтения
  • Reader: отображение глав, экран чтения и базовый reading experience
  • Inline-перевод: нажатие на слово и получение перевода через app flow
  • Экран переводчика: выбор языков, смена направления, результат, копирование и повтор
  • Backend: рабочее API для перевода на api.yekkee.me
  • Локальное хранение: книги, история переводов и кэш переведённых слов
  • Тесты: покрытие важной логики парсинга и бизнес-слоя

Следующие задачи

  • Корректный кэш переводов: ключ кэша должен учитывать текст, source и target
  • Vocabulary: отделить словарь пользователя от технического кэша переводов
  • Add to Vocabulary: сохранять в словарь только те слова, которые пользователь выбрал сам
  • Review mode: простой режим карточек для повторения сохранённых слов
  • Перевод фраз: переводить не только отдельные слова, но и выделенные фрагменты
  • Настройки чтения: размер шрифта, тема, исходный язык и язык перевода
  • App Store polish: onboarding, скриншоты, privacy policy и TestFlight-сборка

Текущий фокус: сделать сценарий чтение → перевод → словарь быстрым, понятным и надёжным.

Обо мне

Я Егор — iOS-разработчик с опытом продуктовой мобильной разработки в ERP, POS, retail и fintech-направлениях. Работал над кассовым приложением для розничной торговли, основным мобильным ERP-приложением МойСклад, кроссплатформенными библиотеками и iOS-приложением для крипто-трейдинга.

В проектах занимался не только интерфейсами, но и бизнес-логикой, realtime-сценариями, offline-first подходом, локальным хранением данных, интеграциями с внешними системами, архитектурой, автоматизацией сборок и тестированием. Мне важно доводить фичу до конца: от UX и состояния экрана до сетевого слоя, хранения, CI/CD и стабильного релиза.

  • iOS: Swift, UIKit, SwiftUI, Swift Concurrency, RxSwift, Combine
  • Архитектура: MVVM, Use Cases, Repository layer, Coordinator-style navigation, Clean Architecture
  • Хранение: Core Data, Realm, local-first и offline-first сценарии
  • Retail / ERP: POS-сценарии, возвраты, оплаты, бонусы, фискальная логика, маркировка
  • Fintech: realtime trading UI, WebSocket-сервисы, REST API, PnL, push-уведомления
  • Интеграции: эквайринг, платёжные терминалы, Честный Знак / ТС ПИоТ, push-навигация
  • Инструменты: Tuist, XcodeGen, SPM, CocoaPods, Fastlane
  • CI/CD: GitLab CI, Allure-отчёты, test plans, автоматизация сборок
  • Кроссплатформа: опыт с Kotlin Multiplatform библиотеками для iOS/Android/Desktop
  • Тестирование: XCTest, UI-тесты, Page Object, RxTest/RxBlocking

Мой ПК

  • CPU: AMD Ryzen 7 7800X3D
  • GPU: Palit GeForce RTX 5080 GamingPro
  • Материнская плата: ASUS ROG STRIX B650E-E Gaming Wi-Fi
  • RAM: 32 GB DDR5-6000 CL36 Kingston FURY Beast RGB (2×16 GB)
  • Хранилище: Samsung 990 PRO 4 TB (M.2 NVMe) + Samsung 970 EVO Plus 1 TB
  • Охлаждение: DeepCool LS520 (240 mm AIO)
  • Корпус: ARDOR GAMING C305 V2, стеклянный фронт и боковая панель
  • Вентиляторы: 7× ID-COOLING TF Series [TF-12025-ARGB] через хаб
  • Блок питания: Seasonic Focus GX-850, 850W, 80+ Gold
  • Монитор: 32" Samsung Odyssey OLED G8 G81SF S32FG810SI