I am new to ionic framework. I have SPA build in .net mvc, angularjs & web api which a large web application. But all form are simple data entry forms with input and dropdowns. I want to build simple mobile app for not all but some forms using the same web api. I have googled and found that Ionic framework can do the work, but where should I start from? Need guidance on what type of app (native,web or hybrid) will be best for my purpose. I am looking for these few features.
Should be available for android, iOS and windows download.
Should have push notification.
Update the app without uninstalling.
Performance
Basically ionic use basic html components + ionic components + angularjs and that can be installed across iOS, Android, and Windows mobiles.
Also push notification also supported in ionic
updates are available without uninstall
and it gaves best performance for a small and basic functionality
now a days so many application build with hybrid platform like reactjs and ionic.
For your business purpose you can go with it definitely as it is a simple form submission and saves your time.
You can refer that links to see apps build with ionic framework:
http://showcase.ionicframework.com/apps/top
Related
First, I have a web app made with angular + angular material that looks like a mobile app, now I "ported" this webapp to a native mobile app using capacitor + cordova plugins and works fine, all the features work fine.
My deployment proces is:
Build angular app, sync to android, build android and then publish in play store (same for ios), it works, but, every time I make a change to my web app, I have to repeat this process and you know, the user has to download the new version of the app, install, and use, I would like to avoid this.
Since my app is web, located on a site (It can be accesses via web too) I would like to know if there is something that inside my webview opens the url of my site (without exiting the app, I tried making a redirection but it opens a web browser), so, the end user won't have to download the new version of the app every time I make a change and I won't have to upload the build to play store and app store.
I know that it can be done because my bank app does something like this but I don't know how to do it or how to search for it
How can I achieve this?
Thanks and sorry for my english, I hope I have explained what I want to do
"Live updates" are one way to solve this. Live updates allow you to send patches to your app and actually change the app code to some extent without going through app store review. Big updates will still have to go through app store review, but you can make lots of little updates "live" by using a live update service.
You can do live updates with Ionic. Ionic is open-source, but the live updates are part of the Ionic team's Appflow package, which is a paid service. Pricing currently starts at $499/month for 25,000 updates.
In this same space, there's Capgo, which is cheaper and works with Capacitor in general (does not require Ionic).
More info: Long discussion on this topic in the capacitor-community github repo
Ionic is the framework that would fit your use case. You can build apps in angular and ionic wraps it in a webview of native android apps. If you need to access native android feature, you can install capacitor lib too along with ionic. Capacitor is a library to interact with mobile's api (IOS and Android) with javascript.
Anoter approach to build native android apps with JS would be reactnative. It is different from ionic. You would have to be familiar with react sytax to get statrted easily. React native is not a webview app rather it is compiled to native platform code.
Look into flutter too. It uses dart but apps perform faster made with flutter and it can build both for android and IOS with same codebase
CONCLUSION
If you want to stay in angular code, go with IONIC
Please, am a web developer. I just built a web app for a school to manage their results and fees.
Now, i intend to build an app on android and ios so its 'easier' for both staff and students to get notifications and interact better.
Is JQuery mobile the asnwer?
Thanks for your reply
jQuery Mobile doesn't create an application for Android nor for iOS, it only makes websites look better on said platforms.
To create a real, native, application for Android you should use Android Studio. To do the same for iOS you need XCode and MAC OS X.
But, if you prefer to write websites, Apache Cordova does what you need. Allows you to create apps for any platform using your usual HTML, CSS and Javascript.
I'll drop the link here so you can check it out.
https://cordova.apache.org/
Another approach is creating a basic Android and iOS app that simply opens a web page (your website), but it is most of the time lacking in performance. If this last approach interests you, just look up "WebView" for Android, "UIWebView" for iOS (Obviously you'll need Android Studio and XCode)
EDIT
This is an old answer, now a ton of different technologies exist to build multiplatform applications, without even losing out on performance (for example, see react-native)
If you have already built the app using JQuery mobile and want to make it into an app I recommend looking at Cordova (PhoneGap) https://cordova.apache.org/
For notifications etc I found https://www.pushwoosh.com/ to have the best integration
Can Nativescript build apps for web as well?
As Ionicframework and similar uses Cordova to build Android and iOS the same code there can be served by an HTTP server to the mobile or desktop browsers.
Will that be possible with the apps built with Nativescript, using same code base for web version of the app?
Nowadays Angular integration is on the way, and using Angular for the mvc kind of things (like data bindings, events etc.) and using Native for the device apis, platform apis and native gui would help in an unequaled way.
Angular parts can be used in the browser as well when built for it. What to do with the xml written for the gui templates in Nativescript, they could be converted to proper html for web built of the app, as Nativescript itself already uses a unified gui api for different platforms, that could be possible. And lastly, native calls made in NativeScript would be ignored in the web build.
It would be great to build for Android, iOS, and Web with the same exact code base.
tl;dr: No
Longer: The big difference between the Cordova/Phonegap based technologies (such as Ionic and Supersonic) and the Dynamic Runtime based technologies (such as NativeScript, React Native and Titanium) is that the first uses a HTML approach where the application is run by WebKit/Blink in a WebView. Looking on the Dynamic Runtime technologies there's no HTML Engine running your app, but rather native views and widgets. The framework (in this case NativeScript) is "just" a bridge between Javascript and the native language of the device.
However, depending of how you architecture your code, you can create Javascript which will be usable in both a NativeScript environment as well as in a browser environment.
Edit: The above means that you could reuse some of your code. There'll still be NativeScript specific code.
Edit2: There's an ongoing project to enable usage of Angular 2 in NativeScript. Please see current status in the issue: https://github.com/NativeScript/NativeScript/issues/103 Also note that the Telerik NativeScript core developer Valentin Stoychev is saying
The idea [is] to enable as much code reuse as possible between your web and mobile apps.
So: Yes on code reuse - no on exact same codebase.
Adding to the (correct) response of Emil - I do not think it is possible to have any significant portion of the app shared (even for the logic part) since {N} apps mostly utilize the Nativscript observable implementation which would probably 'leak' into your models / view models.
Having said that, I suggest you to monitor the work happening on integrating Angular2, which would probably mean a larger code sharing potential (with Angular2 web apps)
It's been a time that I developp on android using the native language on Eclipse ADT and Android Studio.
Mastering most of the "standard" stuff (services, broadcaster, accelerometer, online/offline apps, local and remote databases, ntf scanning, socket.io libraries etc...), I wanted to find new ways to architect my apps, and I ve finally found new ways to code, using Web Frameworks to make compiled applications.
Suddenly I was wondering, when to use which technolgy, for example :
ionic framework (with angular included & cordova)
phonegap & cordova
native language
other frameworks or ways to code
Thanks for advance
All about technology depend on your application, depend on time and your app complexity. If you are going with Cross platform apps, unquestionably cross platform is going to be more robust in the time to come. There is a simple rule for Cross platform apps, “write once use several times”. Same code can be used on multiple platforms but this requires a lot of customization to be able to match each platform’s individual requirements. HTML5 seems to be ruling the market due to its dynamic usage for building apps with different run times, patterns and frameworks. The PhoneGap framework whose name was changed lately by “Apache Cordova” is the best amongst all other tools. In this framework the developers write the mobile app in HTML, CSS and JavaScript....More about PhoneGap
What is the difference between installing JQuery Mobile application on a device using Google Play Store and using PhoneGap?
Also, is there other tools we can use to install Jquery application on devices besides PhoneGap?
Thank you!!!!
You don't install an application using PhoneGap. Phonegap is a framework that lets you develop apps using html 5/javascript. After you develop your app you still have to publish it on Google Play if you want users to install it. Jquery Mobile is also a framework, designed to develop webpages optimized for mobile screens.
There is a good post here Explaining the differences between phonegap and jquery mobile.
There are several other mobile web frameworks such as Titanium, sencha, kendo ui, and I am sure you can find others if you run a quick search for it.
You need to read a little about them and understand the differences and advantages between them. Googling "Phonegap vs Titanium" for example will give you a good start point to understand the difference between them.
PhoneGap is just a cross-platform framework to develop mobile applications. You can use HTML, CSS, JS (incl. jQuery and jQuery Mobile) to develop in PhoneGap. In order to test applications, you can transfer them to your device using tools provided by PhoneGap and the Android SDK.
But in order to publish your application and make it available for others in the Google Play Store, you have to create a developer account ($25 at the time of writing this) and upload your application package (APK) there.
PhoneGap Guide (read "deploy to device")
Android Guide "Using hardware devices"
Android Guide "Get started with publishing"
There are also other cross-platform frameworks available such as "Titanium". Keep in mind that jQuery Mobile is only a Javascript (jQuery) extension to help building user interfaces that resemble conventional app behavior and look. It is not a complete framework to build your application.