Расширения приложений¶
Расширения приложений позволяют вам предоставлять пользовательскую функциональность и содержимое за пределами вашего основного приложения. В iOS существуют различные типы расширений приложений, и все они рассматриваются в Руководстве по программированию расширений приложений. В этом руководстве мы кратко расскажем о том, как вы можете использовать преимущества расширений приложений на iOS.
Использование памяти в расширениях¶
Поскольку эти расширения загружаются вне обычной песочницы приложений, весьма вероятно, что несколько таких расширений будут загружены одновременно. Как и следовало ожидать, эти расширения имеют небольшие ограничения на использование памяти. Помните об этом при разработке своих расширений. Всегда настоятельно рекомендуется тестировать ваше приложение на реальном устройстве, а при разработке расширений приложений — тем более: слишком часто разработчики обнаруживают, что их расширение прекрасно работает в симуляторе iOS, а затем получают сообщения пользователей о том, что их расширение не загружается на реальных устройствах.
Мы настоятельно рекомендуем вам посмотреть доклад Конрада Крамера Использование памяти в расширениях, чтобы узнать больше об этой теме.
Виджет Today¶
Ограничение памяти для виджета Today составляет 16 МБ. Случается, что реализации виджета Today, использующие React Native, могут работать ненадежно из-за слишком большого использования памяти. Вы можете определить, что ваш виджет Today превышает лимит памяти, если он выдает сообщение 'Unable to Load':
Всегда проверяйте расширения ваших приложений на реальном устройстве, но имейте в виду, что этого может быть недостаточно, особенно когда речь идет о виджетах Today. Сборки с отладочной конфигурацией чаще превышают лимиты памяти, в то время как сборки с релизной конфигурацией выходят из строя не сразу. Мы настоятельно рекомендуем вам использовать Xcode's Instruments для анализа реального использования памяти, так как вполне вероятно, что ваша сборка с конфигурацией релиза очень близка к лимиту в 16 МБ. В подобных ситуациях вы можете быстро превысить лимит в 16 МБ, выполняя обычные операции, например, получение данных из API.
Чтобы поэкспериментировать с ограничениями реализации виджета React Native Today, попробуйте расширить пример проекта в react-native-today-widget.
Другие расширения приложений¶
Другие типы расширений приложений имеют большие ограничения по памяти, чем виджет Today. Например, расширения Custom Keyboard ограничены 48 МБ, а расширения Share ограничены 120 МБ. Реализация таких расширений с помощью React Native является более жизнеспособной. Одним из примеров доказательства концепции является react-native-ios-share-extension.