В современном мире технологий у нас есть несколько устройств, таких как мобильные устройства, планшеты, настольные компьютеры и ноутбуки с различными размерами экрана. Следовательно, существует необходимость разработки приложений, которые доступны со всех устройств с хорошим внешним видом. Однако разработка разного кода для разных устройств очень трудоемка и затратна.
Sencha Touch помогает нам в этом, предлагая функцию профиля устройства. На основе активного профиля будут запущены и применимы различные зависимости.
Мы можем объявить профиль устройства при написании кода приложения. Мы можем иметь несколько устройств как —
Ext.application({ name: 'MyApp', profiles: ['Phone', 'Tablet'] });
Как только это будет сделано, профили будут загружены как —
- MyApp.profiles.Phone.js
- MyApp.profiles.Tablet.js
Написание простого профиля телефона
Ext.define('Mail.profile.Phone', { extend: 'Ext.app.Profile', config: { name: 'Phone', views: ['phoneView'] }, isActive: function() { return Ext.os.is('Phone'); } });
Написание простого профиля планшета
Ext.define('Mail.profile.Tablet', { extend: 'Ext.app.Profile', config: { name: 'Tablet', views: ['tableView'] }, isActive: function() { return Ext.os.is('Tablet'); } });
Как видно из профиля, у нас есть функция isActive, которая определяет, является ли конкретное устройство активным. Если устройство активно, соответствующие зависимости будут загружены и созданы.
Как упомянуто в приведенном выше примере, если мы используем телефонное устройство, функция isActive профиля телефона вернет значение true, и зависимости, связанные с телефонным устройством, будут загружены; здесь PhoneView будет загружен. Если устройство является планшетом, то функция isActive профиля телефона вернет false, а функция isActive профиля планшета вернет true, и будет загружена таблетка зависимостей.
Процесс запуска
Здесь следует отметить еще один момент: когда у нас есть профили в приложении, загрузка и создание экземпляра кода приложения будут осуществляться в следующем порядке:
- Сначала создаются экземпляры контроллеров, и будет загружена функция инициализации каждого контроллера.
- Будет вызвана функция запуска профиля.
- Будет вызвана функция запуска приложения.
Функции запуска профиля и приложения являются необязательными, поэтому, если мы не определим ни одну из них, они не будут вызваны.
Взгляните на следующий код, чтобы проверить, где и как могут быть определены различные функции запуска и инициализации.