Ionic Framework — платформа для разработки гибридных и мобильных веб-приложений. В связке с Angular он предоставляет компонентную архитектуру, маршрутизацию, DI и анимации, адаптированные под мобильные интерфейсы.
Ionic-проект на Angular основан на стандартной структуре Angular, но содержит дополнительные слои:
ion-button, ion-list,
ion-tabs)Основные модули:
IonicModuleIonRouterOutletPlatformIonic использует Web Components, интегрированные с Angular.
<ion-button expand="full" color="primary">
Сохранить
</ion-button>
Преимущества:
Компоненты не требуют ручного подключения CSS или JS.
Ionic расширяет стандартный Angular Router:
<ion-router-outlet></ion-router-outlet>
Особенности:
Маршруты описываются стандартно:
{
path: 'profile',
loadChildren: () => import('./profile/profile.module').then(m => m.ProfilePageModule)
}
Ionic использует собственную систему анимаций поверх Angular. Переходы между страницами уже содержат временные функции, оптимизированные под мобильные интерфейсы.
Можно переопределять анимации:
NavController.navigateForward('/details', {
animated: true,
animationDirection: 'forward'
});
Также доступно создание кастомных анимаций через
createAnimation.
Сервис Platform позволяет определять окружение
выполнения:
if (this.platform.is('ios')) {
// iOS-логика
}
Поддерживаемые платформы:
Это влияет на стили, поведение анимаций и UX.
Capacitor — официальный runtime для Ionic.
Возможности:
Пример использования плагина:
import { Haptics } from '@capacitor/haptics';
Haptics.impact({ style: ImpactStyle.Medium });
Angular-сервисы удобно оборачивают нативные вызовы.
Ionic не навязывает архитектуру, но хорошо сочетается с:
Компоненты Ionic остаются «тонкими», бизнес-логика выносится в сервисы.
Рекомендации:
OnPush Change DetectiontrackBy в спискахIonic-компоненты оптимизированы под GPU-анимации, особенно при использовании transform и opacity.
Ionic использует CSS-переменные:
:root {
--ion-color-primary: #4f46e5;
}
Темизация:
Это позволяет поддерживать единый дизайн без дублирования стилей.
Angular-анимации применяются внутри компонентов, Ionic — на уровне навигации и UI-контейнеров. Такое разделение:
Например: Ionic управляет переходом страницы, Angular — анимацией контента внутри неё.