Ответ
На предыдущем месте работы компания разрабатывала B2B и B2C мобильные приложения для iOS в области логистики и управления проектами. Я работал в кросс-функциональной команде из 5 человек, где отвечал за полный цикл разработки фич.
Основные обязанности и технологии:
- Полноценная разработка: От проектирования до реализации новых функций на Swift с использованием UIKit и частично SwiftUI.
- Оптимизация: Профилирование и устранение узких мест производительности с помощью Instruments (Time Profiler, Allocations), оптимизация работы с GCD/OperationQueue.
- Работа с данными: Интеграция с REST API (через URLSession и Alamofire), кэширование, локальное хранение в Core Data.
- Поддержка кодовой базы: Активное участие в code review, рефакторинг legacy-кода на Objective-C, написание unit- и UI-тестов.
- Методологии: Работа по Agile-методологиям (Scrum), участие в планировании спринтов и ежедневных стендапах.
Пример реализации сетевого слоя с использованием современного Swift:
struct NetworkService {
func fetchItems() async throws -> [Item] {
guard let url = URL(string: "https://api.example.com/items") else {
throw URLError(.badURL)
}
let (data, _) = try await URLSession.shared.data(from: url)
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
return try decoder.decode([Item].self, from: data)
}
}