Каковы рекомендации по размеру iOS-приложения?

«Каковы рекомендации по размеру iOS-приложения?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Размер приложения критически влияет на конверсию установок и пользовательский опыт. Основные лимиты и рекомендации:

  1. Лимит загрузки по сотовой сети: 100 MB. Приложения большего объема можно скачать только через Wi-Fi (App Store покажет предупреждение).
  2. Рекомендуемый размер для лучшей конверсии: Менее 50 MB, особенно для бесплатных приложений.
  3. Ограничение для watchOS: 75 MB на один watchOS-компаньон.

Способы оптимизации размера:

  • Используйте Asset Catalogs: Автоматическая оптимизация и поддержка разных разрешений.
  • Включайте только необходимые архитектуры: Не поставляйте 32-битные (armv7) бинарники для современных устройств.
  • Оптимизируйте медиафайлы: Конвертируйте изображения в эффективные форматы (HEIC, WebP), сжимайте видео/аудио.
  • Используйте On-Demand Resources: Загружайте тяжелые ресурсы (уровни игры, контент) только по необходимости.
  • Удаляйте неиспользуемый код: Включите настройку Dead Code Stripping в Build Settings.

Пример проверки размера бандла:

func getAppBundleSize() -> Double? {
    guard let bundlePath = Bundle.main.executablePath else { return nil }
    do {
        let attributes = try FileManager.default.attributesOfItem(atPath: bundlePath)
        if let sizeInBytes = attributes[.size] as? Int64 {
            return Double(sizeInBytes) / (1024 * 1024) // Размер в MB
        }
    } catch {
        print("Ошибка: (error)")
    }
    return nil
}