12 вопросов с собеседования по этому фреймворку, которые помогут вам получить желаемую должность в нашей новой статье.
Ionic — это SDK для создания гибридных мобильных приложений, набор CSS и JS компонент, созданный на основе AngularJS, SASS и Apache Cordova.
В чем главные преимущества и недостатки создания приложений с использованием этого фреймворка?
Преимущества:
- Фреймворк создает гибридные приложения, используя веб-технологии. Это означает, что веб-разработчики с легкостью могут создавать мобильные приложения. Также, благодаря использованию JavaScript, для создания приложений iOS и Android может быть использована почти одинаковый исходный код.
- Стоимость разработок ниже по сравнению с приложениями iOS и Android.
- Фреймворк отлично подходит для быстрого прототипирования приложений.
Недостатки:
- Он не подходит для приложений, в которых графика играет ключевую роль.
- Анимация, прокрутка и сетевые операции по качеству уступают приложениям обычным.
- Как было сказано выше, анимации JavaScript не так впечатляют, как нативные анимации. Однако есть библиотеки JavaScript (например, tweenMAX), которые позволяют устранить этот недостаток.
В чем разница между PhoneGap, Cordova и Ionic?
PhoneGap - это библиотека, которая предоставляет функциональность мобильного телефона в качестве JavaScript API. Когда Adobe приобрела PhoneGap, его ядро с открытым исходным кодом было пожертвовано в Apache Software Foundation под названием Cordova. В начале различий между Cordova и PhoneGap почти не было. Хотя за годы разработки Adobe начала добавлять собственные сервисы в PhoneGap. Сегодня можно с уверенностью сказать, что PhoneGap - это Cordova + дополнительные службы Adobe.
Ionic использует Cordova, а не PhoneGap для своих основных инструментов. Помимо встроенных функций мобильного телефона, он также обеспечивает масштабируемость структуры и кода для приложений JavaScript с помощью AngularJS. Он также предоставляет набор директив Angular и компонентов для ускорения разработки приложений.
Как можно сохранить данные между запусками приложений, используя фреймворк?
Поскольку Ionic создает приложения на основе HTML5, вы можете использовать localStorage и sessionStorage API для сохранения данных на мобильном телефоне. Однако, поскольку localStorage может хранить только строки, объекты должны быть сжаты перед сохранением. Кроме того, важно отметить, что localStorage имеет ограничение по размеру около 5 МБ.
Как в приложениях Ionic можно передать данные из одного вида в другой?
Ionic использует AngularJS и UI-маршрутизатор. Это означает, что вы можете использовать службы Angular или состояние UI-маршрутизатора resolve для передачи данных из одного представления в другое. Поскольку сервисы Angular являются одиночками, данные, хранящиеся в службах, могут быть доступны через другие контроллеры Angular.
Как уже упоминалось, UI-маршрутизатор обеспечивает конфигурацию разрешения. Например:
$stateProvider
.state('todos', {
url: '/todos',
controller: 'TodosCtrl',
templateUrl: 'todos.html',
resolve: {
todos: function(TodosService) {
return TodosService.getTodos()
}
}
})
Одним из преимуществ resolve над службами с сохранением состояния является лучшее тестирование: так как resolve инъектирует зависимости в контроллер, их легко проверить.
Как вы можете визуализировать 5000 элементов в списке в Ionic, не влияя на производительность прокрутки?
Ionic имеет директиву collection-repeat которая визуализирует только видимые элементы в DOM. Так что даже если список огромен, 5000 как в нашем примере, только элементы, имеющиеся в окне просмотра, будут отрендерены. Таким образом производительность прокрутки останется прежней.
В чем преимущество сохранения видов в приложениях Ionic? Приведите примеры.
По умолчанию в кэше хранятся до 10 просмотров, что повышает производительность и также позволяет управлять различными состояниями в представлениях в одно и то же время. Например, кэш может поддерживать положение прокрутки в представлении или активном состоянии кнопок.
Кэширование можно отключить для каждого представления с помощью cache: false в конфигурации состояния UI-маршрутизатора, как в следующем примере:
$stateProvider.state('myState', {
cache: false,
url : '/myUrl',
templateUrl : 'my-template.html'
})
Кэширование может быть отключено глобально, с помощью присвоения 0 maxCache()
$ionicConfigProvider.views.maxCache(0);
Как можно определить платформу на которой работает устройство (Android или iOS) во время запуска приложения?
Ionic предоставляет классы платформы: при загрузке приложения фреймворк добавляет классы CSS в тег <body>. Например, на устройствах iOS добавляется платформу-iosclass в тег <body>. Также фреймворк добавляет классы версии ОС, такие как platform-ios8 (для iOS 8) и platform-android4_4 (для Android 4.4).
Как можно получить доступ к встроенным функциям в приложениях Ionic, например, камере?
Фреймворк не предоставляет API камеры из коробки. Однако с того момента как фреймворк начал использовать архитектуру плагинов и еще из-за того, что он базируется на Cordova мы можем использовать его плагины в нашем приложении. Ionic снабжен набором расширений Cordova с Angular оболочками, которые могут быть найдены в ngCordova.
Чтобы использовать плагины Cordova, нужно установить плагин с помощью команды Ionic setup . В некоторых случаях также необходимо добавить Angular модуль плагина к приложению Angular.
Чтобы использовать камеру мобильного телефона в приложении Ionic, мы можем вызвать API-интерфейс камеры, используя cordova-plugin-camera, размещенную на GitHub. Этот плагин определяет глобальный объект navigator.camera, который предоставляет API для съемки и выбора изображений из библиотеки изображений системы.
Как протестировать приложения?
Приложения Ionic созданы с использованием AngularJS. Он имеет огромное количество тестовых библиотек и фреймворков таких как Jasmine и Karma. Эти фреймворки могут быть использованы для написания модульных тестов для приложений Ionic. Также ionic-CLI снабжен функцией live reload так, что приложение может быть протестировано в браузере. Например, команда ionic serve
может быть использована для загрузки приложения в любом браузере. Таким образом можно использовать Chrome Developer Tools или Mozilla Firefox с Firebug для отладки и проверки приложений.
Работа приложений Ionic на старых устройствах Android оставляет желать лучшего. С чем это связано и как её можно улучшить?
Для запуска приложений Ionic использует браузер по умолчанию, доступный на устройстве. Более старые устройства Android (4.0-4.3) используют дефолтный браузер Android, который значительно уступает современному Chrome.
Один из способов решения этой проблемы – использовать crosswalk вместе с этим фреймворком. Он позволяет упаковать современный webview в приложение, так что оно может работать без встроенного браузера Android. Конечный результат имеет лучшие характеристики и современный web API на всех версиях Android.
В чем разница между “ionic build” и “ionic prepare”?
ionic prepare
копирует все файлы из папки www в целевую папку www платформы.
ionic build
делает то же самое, но также создает исходный код приложения для запуска на симуляторе/эмуляторе или самом устройстве.
Опишите в общих чертах как развернуть проект Ionic на устройстве?
Для запуска вашего приложения вам нужно включить отладку по USB и режим разработчика на вашем Android устройстве. Затем необходимо запустить ionic cordova run android --device
из командной строки.
Комментарии