Комментарии 36
Но все равно эти приложения проигрывали в плавности нативным. Да и плагины не всегда давали нужную функциональность.
Я бы посмотрел в сторону React Native — год назад писать на нем было ужасно. Теперь, слышал, довольно удобно, да и результат вроде хорош.
И вот мой староватый пост https://habrahabr.ru/post/302084/
В 22 года я почувствовал себя довольно старым
То чувство, когда тебе 32 и ты даже не пробовал заниматься angular
Тоже решил делать свой проект на Ionic2@angular2 и очень доволен выбором. Нравится что можно сразу и мобильные приложение под 3 платформы и живое демо на сайт выложить. И всё это на одной кодовой базе. Для примера: https://debtstracker.io/
Понятно вьюхи и контролеры будут свои, но сервисы и фабрики хорошо было бы держать общими. Если возможно держать код для SPA и приложений в одном дереве, то как собирать отдельно для веб и для девайсов?
Ну у меня просто приложение на ионик2 который внутри использует ангуляр2. И код и для SPA и для мобильных приложений один и тот же. Просто собирается под разные платформы. Очень удобно.
Но на данный момент у фреймворка есть 2 серьезных минуса, которые вы должны знать если планируете начать разрабатывать на нем:
1) Еще не вышел финальный релиз, а значит надо быть готовым к корректировке кода со временем (когда в сентябре beta перешла в rc, пришлось перерабатывать большую часть кода).
2) Ionic2 довольно скромно смотрится в плане скорости запуска программ — 5-10 секунд для запуска это много.
Мой проект на ionic2 — http://medicine-live.ru/app/
ionic-plugin-keyboard
cordova-sqlite-ext
cordova-plugin-whitelist
cordova-plugin-statusbar
cordova-plugin-splashscreen
cordova-plugin-inappbrowser
cordova-plugin-google-analytics
cordova-plugin-email-composer
cordova-plugin-device
cordova-plugin-console
com.verso.cordova.clipboard
com.sarriaroman.PhotoViewer
Неплохой список, полезно для обновления собственных скилзов чтоб быть на уровне :-)
Ангуляр — отмирает, и активно убирается из проектов :-)
Старье:
— HOLD: (fine on existing projects they’re already in, but cannot be used on future projects)
— Angular.js
— CMS as Platform
— Backbone.js
— Subversion
— MySQL/MariaDB
— Metero.js
— Riot.js
— Vue.js
— SOAP
Современность, то что надо пользовать:
— ADOPT:
— Test Driven Development
— Continuous Delivery
— APIs as a Product
— Data Lake
— React.js
— Ember.js
— Git
— Node.js
— Polyglot Persistence
— ElasticSearch
Ближайшая перспектива:
— TRIAL:
— Containerization
— React Native
— Functional Programming
— Spring Boot
— Enterprise CSS Framework
— Hadoop
— Project Documentation in Source Control
— HSTS
Стадия анализа:
— ASSESS:
— Virtual/Augmented Reality
— Pipelines as Code
— Serverless Architecture
— Chaos Monkey
— iBeacons
— Kanban
— Security Scan During Build
— QA in Production
— Postgresql
— Grafana
Светлое будущее гибридной разработки на JS для меня выглядит так:
- TypeScript как язык (статический анализ это круто)
- Redux and friends для управления состоянием (помойка документации, примеров, best-practice и инструментов разработчика). На нем пилим ядро бизнес-логики, framework-agnostic
- React-native для мобильных устройств.
- your-framework-of-choice для фронта, с поддержкой серверного рендеринга.
Есть пара сравнительно крупных проектов на Ionic 1, в каждом около ~20 cordova-плагинов, push-уведомления, universal links.
Впечатления плохие.
Во втором чуть получше — без digest-циклов, человеческий роутер, но все те же лагающие события, запинающиеся анимации.
Писать на cordova новый проект не хочется, это постоянная боль.
У RN свои приколы, конечно, но с ними можно мириться, в конце концов переписать лагающие компоненты на натив.
Я уверен, что сегодня React Native гораздо более зрелый и уже давно готов для написания production-кода.
Насколько я знаю, React Native уже сейчас используется в Airbnb при написании их iOS и Android приложений. Целиком переписывать всё на RN они не стали, там у них сейчас смесь нативного кода и RN.
Сам предпринял аналогичный шаг практически в то же время (чуть раньше). Эта история мне до боли знакома.
Вначале я и сам столкнулся с небольшим отторжением Angular-CLI (webpack), т.к. у меня уже была собственная система сборки на Gulp + SystemJS и было просто жалко выбрасывать свои наработки + сборка работала в разы быстрее и понятнее (на тот момент).
Трезво оценив перспективы использования коробочного решения от самих разработчиков Angular + заметив интеграцию с Angular-CLI в моей любимой IDE, принял решение использовать как бы стандарт для работы с Angular приложениями и считаю что не прогадал.
Сам фреймворк довольно стабилен и проблем вообще не возникало, кроме роутера. Роутинг в приложении довольно сложен (lazy-loading, named outlets, multiple childs), но все мои задумки все же удалось реализовать, хотя и через… Думаю что в следующих релизах они доведут до ума и сам роутер. Но это все мелочи.
Единственная серьезная проблема, с которой я столкнулся — это катастрофическая нехватка готовых, стабильных веб компонентов на Angular 2, к которым я привык еще в первой версии. Понимаю что это временная проблема всех новых фреймворков, но все же хотелось бы использовать привычные инструменты уже сейчас. Хотя Angular Material 2 еще в альфе и довольно сырой, пришлось использовать именно его, т.к. Google's Material интерфейс просто шикарен, особенно на мобильных устройствах. Фреймворк для CSS разметки (Angular 2 Flex-Layout) — вообще в глубокой альфе, а Twitter Bootstrap и Angular Material не совместимы.
Еще очень порадовала уже работающая AOT компиляция (prerendered templates). Там проблемы с интеграцией в Angular-CLI, но все же она работает.
P.S. Я, как и большинство ангулярщиков, понимаем что Angular 2 — это совсем новый фреймворк, имеющий с Angular 1.x общего только первую часть названия. Вначале, весь многолетний опыт работы с Angular мне даже мешал и его пришлось пришлось просто выбросить. Наверное в этом есть удел всех хороших программистов-разработчиков. Мы быстро переучиваемся. Правда, среди знакомых есть еще и те, кто начинал еще с Backbone и до сих пор на нем работает. Мне их почему-то искренне жаль. Жаль еще бывших коллег, которые допиливают проект на AngularJS, осознавая что в данный момент получают опыт, который уже не актуален.
Как Ionic 2 помогает мне вникнуть в angular 2