This is so awesome, as working on a downstream I have being debating if this is something I should add to my downstream. I think this is standard stuff that cordova should enable but not include in core, it should be a plugin.
maybe we should have a tag for plugins that are only for tooling, meaning that are easy to take out or ignore when building/running a production app. or be dormant until the "--livereload" is pass in the command line for emulate or run. I really think BrowserSync is rad, and having a plugin implemented by cordova is good as reference implementation if others want to implement a different one. but I think we can provide that satisfy the need of most developers. But I think the cordova-cli should document and have some convention support the developer to emulate/run with --livereload. then a plugin can declare that it provides the livereload feature, and detect that --livereload was pass do it's magic On Fri, Aug 21, 2015 at 5:14 PM Jesse <[email protected]> wrote: > This is really cool work, and will absolutely help developers. > Personally, I prefer the plugin approach. > Which library is chosen is entirely up to the plugin author, but I really > like BrowserSync! > > In all cases, I believe it is important to try NOT to add features to > cordova. The ultimate goal is have cordova be intrinsic to all device > platforms, and the more things we build into cordova, the more difficult > this becomes. Others may have different views, and I am anxious to hear > them, but that is the way I have always looked at it. > > > > > > My team is hiring! > @purplecabbage > risingj.com > > On Fri, Aug 21, 2015 at 11:50 AM, Mefire O. <[email protected]> > wrote: > > > Hi all, > > > > Problem > > Most Web developement workflows today have a quick edit-refresh-preview > > loop, enabling rapid application development. While Cordova is based on > Web > > technologies, the cordova run step after every little HTML or CSS change > is > > still slow and takes a considerable amount of time to deploy to the > > emulator or device. > > Some livereload-related offerings : > > https://scotch.io/tutorials/a-quick-guide-to-using-livereload-with-gulp > . > > Adding the "live reload" capability in Cordova would increase developer > > efficiency. Note that varieties of LiveReload already in many downstream > > Cordova distributions. > > > > Prototypes > > Browsersync<http://browsersync.io/> is a popular livereload library that > > enables refreshing the browser/webview when HTML/CSS/JS or images change, > > mirrors clicks and scrolls across multiple devices and even does > > incremental CSS or DOM updates. Here is a prototype implementation< > > https://github.com/MSOpenTech/cordova-lib/commits/LiveReload> that I put > > together into cordova-lib using BrowserSync and can be started easily > using > > --livereload with the cordova run command : `cordova run android > > -livereload` > > An alternative approach here implements a similar functionality using a > > Cordova plugin<https://github.com/axemclion/cordova-plugin-browsersync>. > > Here is another plugin< > > https://github.com/fingerproof/cordova-plugin-gapreload> that implements > > livereload using LiveReload<http://livereload.com/> instead of > browserSyc. > > > > Design Questions > > What would be the best approach to add this functionality into Cordova ? > > 1. In cordova-lib as prototyped above ? > > 2. As a Plugins with hooks that start browserSync? > > 3. As a plugin with hooks that uses LiveReload ? > > 4. A plugin that is a part of the default template > > 5. Any other suggestions > > > > Trying to list the goals from our implementation > > > > 1. Live reload should be discoverable, quick to get started and easy > to > > use. It should be available to all developers in a standard way. > > 2. It should integrate well with existing workflows and not come in > the > > way of existing solutions that already have live reload. > > 3. It should work for most major platforms. Note that the above > > examples change the <content src=> to a http:// server. This has a > > different behavior from the default Cordova app. > > 4. Though the above examples depend on browsersync, there are other > > equally good solutions like LiveReload, Amok, etc. Should we depend on > > BrowserSync? Or will using a plugin approach give us the flexibility of > > using alternate solutions > > > > Here's a link to the corresponding cordova-discuss proposal : > > https://github.com/omefire/cordova-discuss/commits/LiveReload > > Thanks, > > Mefire > > >
