Running Windows 10 Apps on Android and iOS

In Build 2015, Microsoft announced that developers can now bring their Java/C++ code from Android Apps and ObjC code from iOS Apps and simply run it on Windows 10…

Though that’s amazing, it would have been so much cooler if Windows 10 Universal Apps could directly be compiled into Android and iOS packages…

I know about the Xamarin approach for this, but what I wanna see is the next step of that, and also, for free and possible open source…

Here’s why it’s not a good idea to use Polymer with Angular 2

When Angular 2 alpha was announced, I was ready to start using it for sample apps. All that I needed was a UI Library, and when they showed a demo of Polymer elements working with Angular 2 Core, I was blown away…

But since then, i’ve realized that Polymer and Angular 2 solve the same problems in a very contrasting way, for eg. Angular 2 uses ES6 Modules while Polymer relies on HTML Imports for the age old problem of Modularizing and Componentizing stuff…this was fine if HTML Imports and ES6 Modules played well with each other, alas, they don’t ….read more

Another big issue is that though Angular 2.0 supports web components, and so Polymer elements or any other library written on top of the web components spec, can be used with it, it wouldn’t really make sense in doing so, as then you’ll have to carry the weight of Polymer on top of your primary framework like Angular/React, which doesn’t make sense as both frameworks solve essentially the same problems in their own opinionated way

html imports vs es6 modules

TLDR:

  • HTML Imports don’t work well with ES6 Modules
  • ES6 Modules are here to stay, so either HTML Imports have to be reworked, or they’ll go away

HTML Imports are a part of the Web Components specification and provide a way to handle dependencies on the Web. ES6 modules also do the same thing, but just for JavaScipt code.

Here’s the real issue:

ill it be possible to ensure that HTML imports can allow the specific ES6
loader to be specified (just as I asked about script tags in my previous
post)?

HTML imports using ES6 modules makes a lot of sense, because script tag
duplication causes unnecessary script re-execution otherwise (imagine
jquery being a <script> tag on many imports - if it is an imported module
its code is executed only once).

So the main issue I'm worried about is that there needs to be some way to
indicate that a custom loader should be used all the way down the import
tree.

rref: https://esdiscuss.org/topic/modularity-es6-modules-vs-html-imports-vs-asm-js

This use case comes up when you use Angular 2.0 with Polymer Elements

I don’t see any solution to this online, but here’re some links:

http://stackoverflow.com/questions/21177267/es6-modules-vs-html-imports : I too added some answer here like:

Here’s the latest on this: Chrome has native support for all 4 Web Component specs, while Mozilla announced they will not ship an implementation of HTML Imports precisely because ofthis pending reconciliation with ES6 Modules, which isn’t going to be resolved anytime soon, specially coz here’s what Mozilla has to say about it:

We expect that once JavaScript modules — a feature derived from JavaScript libraries written by the developer community — is shipped, the way we look at this problem will have changed. We have also learned from Gaia and others, that lack of HTML Imports is not a problem as the functionality can easily be provided for with a polyfill if desired.

Browser usage statistics by country

I’m about to start a web app that i would like to package and distribute on Android and iOS as well.

My eyes are on Angular-Material OR Polymer for the UI Components

Now, I know that both these are supported only for IE 10+. Also, the site/app is targeted for Indian audience. So the question is: What Percentage of Indian users use IE 9 or below in last 3 months?

Well, here goes: IE 8 is 2.7% and IE 9 is 1%, so ~ 4% in all

StatCounter-browser_version_partially_combined-IN-monthly-201502-201504

ref: http://gs.statcounter.com/#desktop-browser_version_partially_combined-IN-monthly-201502-201504

I don’t think i even have to worry about iOS (1.5%) and Windows Phone(1.5%), as India is an Android heavy (60%) market…

StatCounter-os-IN-monthly-201502-201504

So I guess i’m safe to use both Angular-Material OR Polymer ….Not So Fast…. My Packaged app will open in a webView in Android, so i need to gauge that support as well, and again see what % of potential customers i’m alienating….

Polymer and Angular-Material both need Android 4.4+ WebView, since the WebView component is based on the Chromium 33 (note that it auto updates only in Lollypop and above, not in KitKat) , but with Crosstalk it can work with Android 4.0+ WebView as well, but the only problem is that Crosstalk is 20MB in size and 60 MB when installed….This could be a dealbreaker, as KitKat distribution is only 40% which is quite less…In fact i’m sure that in India it’s < 20%.

I want to target 4.0+ myself as it covers 90% of the market ( I didn’t find any India specific data, so have to go with this, though i’m sure it’s not accurate for India):

Lastly, 

Angular Material Browser support

Angular Material requires the use of Angular 1.3.x ( IE 9+) or higher . Angular Material is targeted for all browsers with versions n-1; where n is the current browser version. So basically IE 10 +

And on Mobile Browser:

Since version 4.4 Android’s default WebView is built on top of Chromium and on these devices angular-material works fine. Cordova apps built with angular-material on Android with version below 4.4 is completely mess.

Proposed solution: But so far I have been using Crosswalk – if it’s an option for you, I recommend using it until Android 5 becomes the standard: https://crosswalk-project.org/

ref: https://github.com/angular/material/issues/2137