K Kibo Скачать

Почему сторонняя клавиатура тормозит при первом открытии

Расширение — отдельный процесс, который iOS запускает по требованию и выгружает, когда клавиатура скрывается: первое появление за сеанс оплачивает запуск, за который следующие уже не платят.

Вы касаетесь текстового поля, клавиатура берёт паузу, а дальше весь день появляется мгновенно. Это не сбой и не только вопрос качества кода: это форма самой вещи.

Клавиатура — отдельный процесс

В iOS сторонняя клавиатура — не часть приложения, в котором вы печатаете. Это расширение: отдельный процесс со своей песочницей, который система запускает при получении фокуса полем и завершает, когда клавиатура остаётся скрытой какое-то время.

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

Почему после перезагрузки хуже

После перезагрузки телефона ничего не прогрето: ни кэшей, ни уже загруженных библиотек. Тот же эффект после обновления приложения клавиатуры, потому что системе нужно заново прочитать расширение.

Заметно и при нехватке памяти. iOS завершает расширения раньше приложений, когда нужно место, и клавиатура — одно из первых, что уходит. Следующий вызов снова холодный.

Что может сделать клавиатура

Чего клавиатура **не может** — оставаться в памяти постоянно. Это решает iOS, и никакое приложение не может это навязать. Кто обещает «больше никаких задержек», обещает не своё.

Что можете сделать вы

  1. Откройте приложение-контейнер один раз после установки и после каждого обновления. Первый вызов клавиатуры обычно становится быстрее.
  2. Закройте приложения, занимающие много памяти, если клавиатура часто перезапускается.
  3. Не судите о клавиатуре по самому первому открытию. Второе и третье показывают, какова она в обиходе.

Разница между хорошо и плохо сделанной клавиатурой не в наличии холодного старта — он есть всегда, — а в его длительности и в том, одинаков ли он без соединения.

Частые вопросы

Это из-за моего телефона?

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

Почему снова медленно после обновления?

Потому что системе нужно заново прочитать расширение. Первый вызов после этого — снова полный запуск.

Помогает ли удалить и добавить клавиатуру заново?

Почти никогда. Это лишь сбрасывает регистрацию и не меняет поведение при запуске. Открыть один раз приложение-контейнер обычно полезнее.

Попробуйте на своей клавиатуре

Kibo — бесплатная клавиатура для iPhone с настоящим механическим звуком клавиш, набором тем и эффектами RGB-подсветки. Без аккаунта, без рекламы, и работает даже с выключенным полным доступом.

Загрузить в App Store

Похожие руководства

Все руководства