NativeScript
NativeScript copied to clipboard
App update without going through App store.
Is it possible to update Nativescript app on user's device without submitting app to app stores again? This killer feature is already available for ReactNative and Ionic apps through Microsoft Code push.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
+1 killer feature
It'd be awesome for NS. Currently it only exists for cordova and if you use their Enterprise plan; even on the $200/month Business Plan it's not included. If they have it for NativeScript as well through AppBuilder, I'm guessing it will be an expensive add-on for something that already exists for free on React Native, and even FuseTools has plans for it soon. Unfortunately it was another one of several reasons I started my latest project with React Native and ditched NS :( There's very little community outside the core developers/the company running NS; and what they do have, is just getting too expensive compared to everything else.
@hchoriq - I have two corrections to your post -- I only know of two plugins in the entire ecosystem that are paid. There are over 170 plugins that are open source in the NS ecosystem. So, I'm not sure why you think it is expensive. You can fully create an app in NS without spending any money what so ever. As for the community; you should check the Slack channel, the vast majority of the people on slack are NOT in any way related to Telerik/Progress.
Now as to how to do this; several people have done this in there own apps. And I know of at least one plugin coming out soon that supports this ability.
(Disclaimer: I'm not with Telerik, I'm just a independent contractor that uses NS, but one of those paid plugins is mine. :grinning: )
I am constantly asked about this in conferences. @NathanaelA could you keep us informed here as to the plugin?
+1
+1 I second @hchoriq. React Native even have open source IDE called Deco, Nativebase.io for bootstrap css like designing, MS Push, Flex support .. all of these dev tools for free. There's even angular2 renderer for RN. NS is wonderful for me , but NS seems to be getting left behind. I am intrigued now.
You might check out the NativeScript Firebase plugin. Eddy implemented 'RemoteConfig' which allows for some interesting 'push' of content, based on key-value pairs. It's at least a start in the 'hot push' direction and Firebase is moving fast (and Eddy is keeping up! :) )
+1 Any news about this feature being implemented yet? Its the only thing right now keeping us from making the switch.
+1 It seems that you can achieve it through appmanager livesync
It'd be awesome that we can do it on our own server like this plugin auto-updater
{
"version": "1.1.0",
"minContainerVersion": "1.0",
"url": {
"url": "/s/3klfuwm74sfnj0w/main.jsbundle?raw=1",
"isRelative": true
}
}
Vote for it here: https://nativescript.ideas.aha.io/ideas/NS-I-112
It won't happen - at least not directly from Telerik. Understandably, they're trying to sell their platform. In fact the appmanager livesync is not even included in the $149/month/user package; you have to pay for the enterprise package (however much that costs). I've made the switch to React Native and haven't looked back. That being said, NS is still very interesting and I like their cloud platform. You can use React Native with CodeAnywhere, but I liked the ability to build and sync without having to connect the device to the computer.
@hchoriq I actually have a fully working plugin on Android that does complete remote updates. I'm about 75% of the way done with the iOS side; but have been distracted by a lot of other paying projects. This will happen soon... ;-)
@NathanaelA You do that, and I will give you 3 thumbs up, and give NS another try for sure. NS needs more community contributors like yourself to keep it moving forward. Big thanks from the whole community!
@NathanaelA Could you please release working plugin for Android first. Would it be paid or free plugin?
@jlooper @NathanaelA Microsoft Codepush is interested to add support for Nativescript. Codepush is used to update app on user device without going through app stores. Please add +1 https://github.com/Microsoft/code-push/issues/247
@jlooper That's awesome if Microsoft Codepush is interested!! That's exactly what I was trying to ask https://nativescript.ideas.aha.io/ideas/NS-I-112. yayyy
Hey everyone,
My plugin is now fully working on both iOS and Android. Fully controlled by the server what version you want it ship to the clients, this allows you to do A/B testing, slow rollouts of versions for testing, or even rollouts of code only to people that are paid subscribers (or whatever) to your app. You have full control what data to send from the client to your server side process and then it can respond with whatever version you want.
In the example below, I called the versions "red" and "blue". When the "red" version would ask if it was the latest, the server would say, nope you need "blue". So the client would download "blue" and hotpatch it into existence. Click it again, it would ask the server is the "blue" version the latest, and of course the server would say nooooo, you need "red". Rinse and repeat as often as you like. ;-)
The process replaces, CSS, XML and allows you to reload the JS file as long as re-initing the JS file will not break anything. If re-initing the new JS file will cause you problems, you can instead have the app restart (android) or notify them that they need to restart (iOS) and quit. You can actually include anything except compiled resources (i.e. anything inside the app_resource folder).
The demo below is actually showing CSS (colors), XML (Name & position of version text is in XML), and JS (version is hard-coded in JS) to show that it can replace all of them seamlessly. :grinning:
I plan on releasing it probably next week as beta; some basic clean up (status bar screen - don't want it shifting, like in the demo, dead code removal, docs).
@ansarizafar -- I should note, if you look at any of my 20+ open source plugins, I ALWAYS release both sides at the same time. There is a good reason for this. I find that by doing both sides that my interface to them can be identical. If I release one side, and then start working on the other I might find some design idea doesn't work real well in iOS. I prefer to discover this while working on it, and keep my API the same as possible for all the releases. ;-)
The plugin is commercial and available to buy on http://nativescript.tools
@NathanaelA are you maintaining that live updater you created? When was the last update?
@hchoriq - I'm actually in the process of revamping it. My original design worked great on Android and on iOS emulators; but actually broke in some cases on real iOS devices. ;-(
I am code complete on the new design (which now actually allows rolling back to any version d/l'd) ; however I haven't fully tested it, so that is why it isn't yet listed for sale; I discovered the issue before I released it.
I don't want to sell something that won't work for people. I hope to have it fully tested by late next week sometime; but I am rather swamped with a couple different projects I'm trying to get out the door. So it might be a couple weeks before I can run all the real world tests that it needs, to make sure it works 100%
@NathanaelA - Please let us know when it is available. It looks like the website you linked to, http://nativescripts.tools, is not available any longer.
@prestopasto - Had me worried for minute. I did a typo in the url above (which I just fixed) The link is actually http://nativescript.tools
The product is still in testing as I want some better trials in the wild, before I inflict it on the masses... But so far the trials I have had, it looks really good. Only one issue so far found (and fixed).
It is also part of the foundation for a pretty cool project that I hope to announce in the next couple weeks, which has helped give it a some testing, and should, once publicly released, give it more testing than anything else could...
@NathanaelA please release asap, if possible. I've spent 2 months re-writing an app in React Native, and have code push, analytics, and other features easily integrated at no cost, for my beta version. Haven't looked back. This is a big one and I imagine more people than not will put in the effort to switch off nativescript.
I think @NathanaelA is releasing as soon as he would.
I think, pricing is good. I think, programming is a little bit underpayed at these days. Every line of code is hard work. I think the world of open source at no cost is the opposite of all what we all want to get done.
I believe in marked and pay for what you get.
All code in the world should be payed again. Back to the roots. I think, every code should have a minimum price worldwide. Every Application, every IDE, every framework, every plugin, every App - every piece of software should pay the developers what they have to get for it.
Are you coding without payment? Are you working in your neighbors garden without payment?
Open source and free software is the opposite of all we all want to get. Why do we go this way??
@hchoriq - I try to not release buggy software for paying clients. ;-)
The real test is when you integrate it into an actual project out there in the real world. The project I had planned on putting it into was delayed a lot by more client changes...
I am now in the process of integrating it in another project that will give it a really good testing on most of the different paths. The Android version has already been deployed and I managed to find a case that I wasn't covering (images) which is now covered. I am in the process of getting the ios version of that app out the door and it will allow me to test it fairly well also. Once I have some decent real world testing, it will be released for the rest of the world. ;-)
The other issue is I also need to do some decent testing with 3.0 core modules to make sure the rewrite hasn't broken anything in the resolving code.
But what about the fact that Apple is disallowing apps with hot code push?
@Antman261 That's a bit of FUD. Apple is fine with hot code push, as long as the update doesn't change the purpose of the underlying app. For instance, if an update turns a calculator into a dating app, then yes, you will get rejected, but as long as the hot pushes are just fixes and even new features without changing the purpose or intent of the app, you are fine.
+1
@NathanaelA what's the status of your product? Is it ready to use in production? Do you have any wiki or README on GitHub about your product and the code to configure it before pay? Thanks in advance!
@jdnichollsc - Long story short; it isn't out yet. The Android version is rock solid; the iOS version hasn't been tested to my satisfaction (but works) and then I got occupied with a very large project for the last year that pretty much eliminated all my spare time. (Hence my lack of participation in a lot of community things for a while) -- That project is now done, and so this plugin has become a high priority for me to completely test in the very near future. :-)
I think guys that CodePush is a very important feature for enterprise apps (in the case of iOS), when you have apps only for your employees or something like that, and your company don't want to publish a new build (ipa file) for each small change (views, styles, fixing logic of the code, etc).