Пользователь
30,2
рейтинг
12 сентября 2013 в 13:03

Разработка → «Боевые ботинки твоей мамы» — новая функция iOS7

В коде iOS7 найдено несколько забавных фрагментов — названия флагов для активации неких функций, суть которых компания пыталась скрыть от посторонних.

Например, один из флагов назывался YouMamaCombatBoots, что переводится как «боевые ботинки твоей мамы». В финальной версии системы флаги типа isYoMamaWearsCombatBootsActive «рассекречены» как isStillImageStabilizationActive.

-- (void)setYoMamaWearsCombatBootsAutomaticallyWhenAvailable:(BOOL)arg1;
-- (BOOL)yoMamaWearsCombatBootsAutomaticallyWhenAvailable;
-- (BOOL)isYoMamaWearsCombatBootsActive;
+- (BOOL)isStillImageStabilizationActive;
 - (BOOL)isEV0CaptureEnabled;
 - (void)setHDRCaptureEnabled:(BOOL)arg1;
 - (BOOL)isHDRCaptureEnabled;
 - (void)configureAndInitiateCopyStillImageForRequest:(id)arg1;
 - (BOOL)isRawCaptureSupported;
+- (BOOL)isStillImageStabilizationSupported;


Прятать новые функции для их обкатки — стандартная практика у разработчиков Google, Microsoft и прочих. Чтобы протестировать новый функционал, его внедряют в систему, но дают доступ только ограниченному количеству бета-тестеров, для остальных же доступ максимально затрудняют. Название функции не должно давать намека на ее значение.

Apple традиционно выпускает операционную систему раньше официального анонса устройств и стремится, к тому же, до последнего дня сохранить в тайне список новых функций, отсюда у мамы и появляются «боевые ботинки» и «причудливые очки».

-- (BOOL)isYoMamaWearsFancyGlasses;
-- (void)setYoMamaWearsFancyGlassesDetectionEnabled:(BOOL)arg1;
-- (BOOL)isYoMamaWearsFancyGlassesDetectionEnabled;
-- (BOOL)isYoMamaWearsFancyGlassesDetectionSupported;
+- (BOOL)isHighDynamicRangeScene;
+- (void)setHighDynamicRangeSceneDetectionEnabled:(BOOL)arg1;
+- (BOOL)isHighDynamicRangeSceneDetectionEnabled;
+- (BOOL)isHighDynamicRangeSceneDetectionSupported;

Иногда «пасхальные яйца» встречаются в коде без всякого смысла. Например, константа гравитации на Звезде смерти GRAVITY_DEATH_STAR_I, зачем-то зашитая в список констант SensorMananger операционной системы Android.
Анатолий Ализар @alizar
карма
749,5
рейтинг 30,2
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (15)

  • +8
    в андроиде есть ещё метод Log.wtf (What a Terrible Failure)
    • +9
      А как же знаменитый метод isUserAMonkey?
      • +8
        Или isUserAGoat в классе UserManager
        • +3
          Мелочь, а приятно:
          /**
            * Used to determine whether the user making this call is subject to
            * teleportations.
            * @return whether the user making this call is a goat
            */
          public boolean isUserAGoat() {
              return false;
          }
          
          • +1
            Комментарий к исходному коду напомнил мне о посте с Хабра про поле «Goats teleported» в диспетчере задач Google Chrome.
      • +2
      • +3
        «Monkey» — утилита для стресс-тестирования интерфейса, занимается тем, что шлёт тучу рандомных жестов. Если я правильно разобрался — этот флаг отображает активность этой самой утилиты.
        • 0
          Именно так и есть.
  • +3
    Также в Android есть константа «GRAVITY_THE_ISLAND», равная 4.815162 (чуть меньше, чем в два раза менее по сравнению с Землей). Здесь утверждают, что это ускорение свободного падения на неком «The Island» из сериала «Lost».
    • 0
      Ну там много констант гравитации developer.android.com/reference/android/hardware/SensorManager.html
      GRAVITY_DEATH_STAR_I например

      Зато можно смело писать приложения, которые будут при работе с акселерометром корректно работать на всех планетах солнечной системы)
      • 0
        Про звезду написано в тексте поста.
    • +2
      Не совсем так, в этом сериале герои были вынуждены вводить код 4 8 15 16 23 42 в комп каждые 108 минут. У комбинации были и другие предназначения, но они тоже не связаны с ускорением свободного падения. А гравитация в названии константы, скорее-всего просто так, чтобы не слишком выделялось.
  • +1
    Я как-то смотрел исходники одной IDE, наткнулся на класс WolfTheProblemSolver. Вот вроде и нужный API, а лишний раз подумаешь перед тем, как начать использовать.
    • 0
      Вспомнились строчки из песни:
      Malcolm solves his problems with the chainsaw
      And he never has the same problem twice
  • 0
    Еще недавно (полтора года назад) в коде Android (JNI) были забавные методы isComputerOn() и turnComputerOn() плюс еще парочка. Таки-выпилили (коммит).

    Вообще шутке этой много лет, и придумали ее задолго до Android: isComputerOn() — легендарная функция BeOS API.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.