Ionic Framework and AngularJS - angularjs

Let me preface these questions with the statement, "I'm not a web developer." Most of my work has been done in Python for data analytics.
Cutting right to it, I'm in a scenario where I'm learning web technologies such as HTML/CSS, JS, Ionic, and AngularJS in order to debug a pretty horrendous mobile app written by previous developers.
The app was built in the Ionic framework using Cordova plugins and AngularJS (yes, not the new Angular 6-7).
My questions are:
I have the newest version of Ionic installed on my computer that supports Angular 6-7. Will I have to roll it back to a previous version for it to support AngularJS?
Can my app encounter some serious problems in the next year (or less) if it is not rewritten using the new Angular?

1) You should not need to downgrade your version of Ionic, but will need to install the #ionic/v1-toolkit package.
2) This is more a subjective question. It is my understanding that v1 will remain stable for at least the near future. However, it is unlikely to have any more active development. You might encounter the usual issues with an older ecosystem, e.g. deprecated dependancies, out of date architecture patterns, lack of learning resources.
I have upgraded a few apps from v1 to v3/v4 at this point, and I VASTLY prefer the modern angular style, architecture, and functionality. So there is that. Typescript is very useful as well. The app will eventually need to be upgraded, and the upgrade from 1 to 2 is a total rewrite as Maheshivirus states. The more work you do on the Ionic 1 app, the more difficult the upgrade will be. Being ignorant of your circumstances, it might be worth considering upgrading first to limit development of technical debt and to better future proof your app.
The good news is they use the same cordova, so native functionality is very unlikely to be affected. Newer version of Ionic are faster, support lazy loading, have better components aesthetically, and work better as PWAs. If any of those aspects are of interest to you, that could sway your decision. See this link and this one for a bit more info. Second link indicates that no active work is being done on version 1 anymore.
Hope this helps.

- If you want to run Ionic 1 app then you should downgrade your installed ionic version to ionic 1.
-Ionic has updating day by day its better to update your ionic 1 projects to ionic 2+ because Ionic 2 is completely different from Ionic 1,as the language for framework has changed.Its no more angular 1,it's angular 2+ , TYPESCRIPT.
-At a high level, Ionic 2+ is a complete rewrite of the Ionic 1 project with Angular >= 2.x.

Related

In 2019, how much is it necessary to migrate a site from Angularjs to another framework?

I'm a project manager of a market place and I'm trying to find solution for my concerns. For two years a ago we decided to develop market place.
In front layer we decide to use angularjs and our team professional implement front layer using AngularJS. We add dependency injection for first time to angularjs 1.3 and solve google analytic crawling in SPA website.
But when google announce On July 1, 2018 AngularJS entered a 3 year Long Term Support period. As a project manager I have a big concern because We living in 2019 and after two years whats happen for our website ?
But my biggest question is how optimistic how long can we use Angularjs?
how much migration is necessary for this framework and
Is it possible that the sites written with Angularjs are not able to work after 2021?
Google announced:
All AngularJS applications that work now, will continue to work in the future. All published versions of AngularJS, on npm, bower, CDNs, etc will continue to be available.
For more information, see
Angular Blog - Stable AngularJS and Long Term Support
AngularJS Version Support Status
It’s out of date now, and new projects should absolutely not be built using it. This isn’t to say it was ever a particularly great choice. AngularJS came out of nowhere and became popular by default, rather than because it had particularly great design. It has a difficulty curve better suited to a great roller coaster than a decent framework, and a bunch of weird architectural and terminology choices. What the hell is a $scope, anyway? And what is a directive? What does transclusion actually mean? Meaningless terms that AngularJS has created. AngularJS does some things that are fundamentally wrong, such as creating invalid attributes on HTML markup. Even Google doesn’t use Angular for their own apps, like Gmail, and there’s a reason for that.
In fairness, AngularJS was always a poor choice. Its idiosyncratic code means that unlike other frameworks, it’s not good at implementing an agnostic, javascript solution. AngularJS code looks unfamiliar to anyone not super experienced with the weird intricacies of AngularJS itself.
Thankfully, this decision is well made for you – AngularJS is now quite thoroughly dead, and only legacy projects will continue to be using it. We should be grateful for what AngularJS has given us, and respect the position it held, but we should be just as pleased that it’s gone.1
The change is only about "support" and it means, no more bug fixes and no more improvements. Other than that, everything will be the same. Although, you should consider some disaster scenarios after LTS.
I saw some posts about running AngularJS and Angular side by side and I think it can be a good solution for your problem. Since you have enough time to migrate, your team can develop new features on Angular and you can also maintain your current AngularJS. Eventually you can get rid of AngularJS depending on your project size and development capacity.
Please check these scenarios.
Running AngularJS 1.6 in Angular 5 (side by side)
Running Angular and AngularJS frameworks side by side
For Angularjs support, you can find the previous discussion on this portal: angularjs 1.x support lifecycle and end-of-life
And the question regarding migration, in my personal opinion migration is a better option as the latest Angular version provides Boost in performance, Mobile-driven approach, code Maintainability & optimization, and most importantly Reduced development time and costs with better support.
And if asked about the migration approach, I would suggest a complete re-write that can be the most cost-effective strategy. If you’re a manager, put your team through Angular training (live, online, videos, books). Allocate time and budget for getting your developers up to speed with Angular as the learning curve is steep and prior experience with AngularJS is not overly helpful. Then your developers will write the new version of the app as per best practices recommended for Angular/TypeScript projects.
And finally, it’ll definitely pay off in the end. And, secondly, the newer versions of Angular won’t let you systems become outdated or irrelevant.
There is a team called XLTS.dev who are providing extended support for AngularJS beyond December 2021.
We have used Angular JS extensively in our company for enterprise projects, mobile applications and continue to use it. Google's decision to stop development of AngularJS and put it on a EOL will definitely make developers to panic. But 3 years to migrate away from it is a long time and you can plan accordingly.
If your plan is to migrate to Angular, then you can follow their official guide to upgrade using ngUpgrade. You can find numerous articles online that explain how they upgraded existing AngularJS apps to Angular.
If your plan is to consider migrating to a totally new framework, then this will involve some work. You should take a look Web Components spec. Your existing directives/components can be re-written, with less effort, as web components (shadow DOM) or custom components (without shadow DOM). There are libraries that help you write these generic components - supported on most browsers today - Stencil JS, lit element and a few others.
The advantage of using Stencil JS is that it provides tools to compile your web components to target different frameworks (Angular, React, Vue, Ember).
The latter solution seems feasible as it allows you to migrate directives one by one over a period of time, without having to re-write the whole application in one go. In the future you can also re-use your components in the framework of your choice.
As for your question about will it continue to work after 2021 - yes it will continue to work. The problems you might face might not really be of technical nature, but related to hiring resources to work on it or maintain it.
I am AngularJS developer and I do continue to use this framework for some of my projects. I am aware that in not too distant future this library will be completely outdated (as some of you can say it's the case now), however:
AngularJS ecosystem gives you still lots of choice/support (as framework is very mature)
my main libraries as ag-grid, highChart or others, help to build great apps out of the box with little time
I still do enjoy to work with this framework for it's simplicity and flexibility
If you should build brand new app I would recommend React or Vue (or other framework) especially if you do not have significant experience with Angularjs. However if Angularjs is not new for you, you need to go fast - just use your experience and go for Angular.
Taking into account what you wrote:
My main concern is after 3 years of support. Whether after the 3 year end of support, Angularjs sites can continue to work without problems
Angularjs apps won't just stop to work like that, from one day to another.
As your project requires long-term maintenance, needs to be built from scratch and will take lots of effort - Angularjs ecosystem is then probably not the best choice for you (I do insist "for you").

Is angular 1.x still relatable

Have a few projects in angular 1.x and wondering if its really necessary/efficient to move them to angular 4 / later.
Smaller dashboards would not be necessary as it is used internally by minimum number of people. But the bigger customer facing application (3 year old product ) is under the question, as new requirements are being developed.
According to surveys, Angular 1.x is still being used in many companies and the community is still active on making new libraries.
So is it worth shifting?
In my opinion you should leave those projects in Angular 1 and start using Angular 7 for newer Projects. Here is a good article comparing the two: https://www.uruit.com/blog/angular-1-vs-2-migrate/
If you have projects on angular1 developed, then those can be migrated to angular 7 module by module.
Means Using Current angular version, you can run your project in hybrid mode, where you can run angular 7 and angular 1 code together.
For clear understanding, please read these below links
1) https://angular.io/guide/upgrade
2) https://medium.com/contentsquare-engineering-blog/angularjs-to-angular5-upgrading-a-large-application-7e6fbf70bafa

Reverting to Ionic 1/AngularJS searching for stability in 2017

We're using Ionic 3 + Angular 4 to replace our native mobile apps, but are worried about stability and bugs encountered so far (virtualscroll, slides/keyboard inputs/etc).
We would like a backup app which is stable enough to put out to production soon. Is reverting to Ionic 1 a suitable solution? Or is it something that will be obsolete soon and with that its own issues.
When the bugs are ironed out in Ionic 3+, we'll be looking to submit that to production. I'm fully behind the Ionic project and know that some hacking needs to be done to achieve some things, as well as appreciating the good work they're doing to increase speed and native feel.
Our app is heavy on messages in scrolling lists, so virtualscroll is very much needed soon. Also, two of our 3-person team are very experienced in AngularJS, but not Angular 2+ at all, which is something that would speed up development right now. The existing documentation for Ionic 1 and AngularJS is also attractive right now for us.

Ionic 1 AngularJs 1 vs Ionic 2 AngularJs 2?

I want to move from IOS to Ionic. But i don't have any idea that which version is best for starting, because i did't know nothing about AngularJs 1 and its update version AngularJs 2 features and differences. And also i did't find any related help from internet with difference of both versions. Can anyone please tell me pros and cons or difference between them. Or which one is best. And if Ionic 2 is best so from where i can watch video tutorials of this.
Thanks
If I remember correctly the podcast episode of Adventures in Angular, John Papa recommended starting new projects with Angular 2.
Since Ionic is built on top of Angular 2 it will be lagging a bit behind. If you want to go into production now with an Ionic 2 app I suppose it's not recommended using it. Since Angular 2 is in RC we might expect that they will release in the near future, and with that Ionic 2 will be some time behind that. Therefore, I recommend using Ionic 2 if you don't plan to go into production in the nearest future.
When it comes to the differences, this article has a nice write up on the differences between Angular 1 and 2.
Edit: It's been a while since I wrote this post and I have followed the development of ionic 2. I would now recommend using ionic 2.
Right now is quite unfortunate time to choose between Ionic/Angular v1 and v2. If you can afford that I would advise you to wait 1 year and the just pick Ionic 2. Most of the problems you will face today when dealing with Ionic/Angular 2 will be already solved here in stackoverflow 12 months from now.
Currently I would say it does not matter that much if you pick Ionic 1 or Ionic 2. In the first case you will move fast now, but waste time later trying to upgrade your app from ionic 1 to ionic 2. If you choose Ionic 2 now, you will waste similar amount of time just trying to make it work and adopt newer versions of Angular 2.
if You beginner you can start ionic-1 and angular-1,because lots of resource available like angularJS essential , Inter mediator and advance video tutorial in youtube and many other training provider.
if you want to include oops concept and other important script like typescript,move on to ionic2.
If you are developing a mobile app, the question is ionic vs ionic 2 vs alternative frameworks. A lot of work has gone to making ionic 2 fast, and unless you already have a lot of apps in ionic there is no point learning it now.
Regarding Angular 2, the benefit of Ionic is that you don't have to learn it to get started. You can create real apps using just Ionic, and when you do need Angular (for http for example) then there are plenty of examples around.
You can find videos on most of the pay learning sites, but to really learn it take an existing app such as https://github.com/driftyco/ionic-conference-app, which includes enough Angular 2 (Javascript and Typescript flavours) to see how a real app can be put together.
You can also play with the Ionic components with https://github.com/driftyco/ionic-preview-app.
The only reason for going Ionic 1 these days would be an edge case supporting an older version of Android, but if you need to go to a version earlier than 4.4 you will also find solutions that Ionic 2 can use.
================= UPDATE Jan 2017 ================
There is a great starter project which has a number of app features built in, such as app settings, api connection, registration and login, welcome tutorial which can be found here https://github.com/driftyco/ionic-starter-super

OnsenUI vs Ionic Framework

I want to start developing a mobile hybrid app using angularjs, css3 and html5. Was searching for a framework and found these two. Both are looking very nice however I was not able to get a good comparison between both of them. Can anyone please list down pros and cons for both.
A comparison between them in terms of scalable, out of the box components, speed and compatibility with Angular and devices targeted will be very helpful
One year has passed since both frameworks were released. Onsen UI is currently in stable 1.2 version while Ionic is in the last release candidate state.
I have worked with both of them so let me give you a short overview, I also wrote a much larger blog article, you'll find it at the end of this answer.
I won't go into much details about the core framework; if you have a previous AngularJS knowledge you will easily transition to Ionic or Onsen UI.
Both frameworks are built around AngularJS and they heavily depend on directives, you can also easily build your custom directives. Onsen UI also features a jQuery support (unnecessary if you ask me).
Both frameworks support Android 4+, iOS 6+ (some features are available on Android 2.3), Onsen UI also officially supports Firefox OS and desktop browsers. Ionic don't have an official desktop support, but it will still work (it will not be pretty, imagine ).
Ionic currently don't support Windows Mobile platform (it will have it in the future); Onsen UI support is currently in development (since November 2014).
Both frameworks support some kind of splitview feature so they can be used for table development.
Both frameworks have a distinctive beautiful looking flat UI. I prefer Ionic over Onsen UI look and feel, but this is a matter of personal taste. Both default themes look iOS 7 like.
Onsen UI supports native looking themes for Android and iOS. Ionic framework uses the same theme for all platforms, but some features will depend on the platform (for example tab look and feel)
Both frameworks have a working theme builder.
Ionic supports SASS while Onsen UI is built around Topcoat CSS library.
Both frameworks have a large widget support (directives)
Onsen UI has a better documentation. It is separated at two different locations. First one is “Components” where you can see different directives and each one has a working example you can use and replicate. Second part is a “Guide” where you are guided through the application creation process.
Ionic has a disorganized documentation (heavily fragmented). It lacks a real “getting started” tutorial, even if you have previous AngularJS experience. It shows you pieces, but not how to connect them correctly.
On the other hand Ionic has much larger community so you will easily find problem solutions.
Ionic framework has a great official forum + large StackOverflow community. At the same time, Onsen UI uses only StackOverflow as a help center (I would call this a fail).
Onsen UI has an HTML5 IDE called MONACA IDE (great tool), Ionic IDE is currently in production; you can participate in beta test.
Ionic has a growing 3rd party plugin community (for example date picker); I couldn't find any 3rd party Onsen UI plugin
I wrote a much larger article covering Ionic / Onsen UI changes, find it here.
Since both frameworks are pretty new and not very popular (yet!), I don't think anybody has taken the time to do an extensive comparison between the two. I don't even think the final set of out of the box components is determined by the developers themselves yet, active development is still going on.
As for compatibility, hybrid apps run in the native browsers of the devices where they are installed on. Both frameworks need CSS3, so old phones will never be supported by either of the frameworks.
The OnsenUI-tag here on StackOverflow is the only support OnsenUI offers (currently), and at the moment of writing there are 0 questions/answers. Ionic has a very active forum on their website + some questions/answers here on SO.
I think having an active community backing up a framework will eventually lead to a better framework. Therefore I'd go for Ionic. Personally, I find Ionic's standard-design more appealing as well, but you should judge that for yourself.
Ionic
more lean to Angular style like routes,controllers and template and it's structure is kind of complicated in first hand.
command like "ionic start myApp tabs" still don't available in onsenUI
Material Design like "Cardboard" are available
OnsenUI
simpler structure, easy to start
couple with Monaca IDE, some of features are only available only if you use Monaca. otherwise you have to create things by yourself.
supported ios8 design recently
Ionic has a more mature feature and CSS component set and out of the box. Injectable delegate services, representing the UI elements (directives) gives you more control over UI/UX interactions. The development community is (currently) very active and it's gaining traction.
I cannot properly speak to speed/performance between the two but know both are optimized for mobile.
As I develop more, I will report back with comparisons. Good luck.
Just started using ionic after some time native development. Must seriously say it has some great cli features! For example you can start your project from a gist in my opinion this is nice to have for poc's
Havent been able to test everything but what i've seen really impresses me!
It's well documented in there own way, active community and it keeps getting better.
Just wanted to share my thoughts for what it's worth
Im working in Ionic Framework during 1 year with a real project, i have created a game with Ionic, its very special because hybrid app is not best choice if you want create game. When you develop a game you need performance !
However if you develop simple game with few animation, its good.
Here is my game in playstore, its a memory game "Memory Party" :
https://play.google.com/store/apps/details?id=fr.jhaccoun
Why Ionic is a good choice :
very very very good documentation (tutorial, forum, article,...)
stable (ionic 1), you can find many apps in store
Easy to develop (ionic come with many tools to help the developer, you can develop and test in live in your phone without deploy thanks live reload
Many cordova modules are available
you don't need mobile skills, just angularjs, html, css...
Ionic provide beautiful components and you can custom the components if you like
I found Ionic the best for some reasons, like their community support and the documentation. I am still evaluating the onsen from a long time but still havent found the one unique thing that will drift me towards it compared to Ionic

Resources