This is exceptionally cool (and thanks for doing a video demonstration,
great way to get the point across)!

I also agree with all your points, and really support this approach.
Specifically:

+1 browser platform will be used for both prod and debugging, so cannot
have always-on emulation.
+1 to have emulation hooks inside cordova browser platform and cordova
plugins' browser versions, but have them no-op by default.
+1 to support any downstream emulation embedders, and perhaps have a very
lightweight cordova project (though perhaps not necessary beyond a simple
testing app).
+1 to suggest Ripple become an embedder.

I'll also note that Microsoft is one of the primary supporters of Ripple
recently, so if they think this is a good direction, that is a strong
signal to me.  Intel is a second strong supporter or ripple (anyone else?),
and I think they were on board with this direction as well (to build on top
of browser platform).

-Michal



On Tue, Mar 24, 2015 at 3:55 PM, Jesse <purplecabb...@gmail.com> wrote:

> Thank you Tim for the brief explanation! ;)
>
> I agree with all your summary points.
>
> Some more questions:
>
> What value does Ripple  if the basic functionality becomes part of a
> generic simulation interface?
>
> Ripple currently will simulate screen sizes based on device choice. Chrome
> dev tools support picking different device viewports also.  Where should
> something like this live?
>
> Is this feature valuable enough to warrant this lengthy discussion?
> I have no idea how useful this will actually be. As someone who has
> released apps for most of our supported platforms I have never needed
> ripple of any other simulation, short of stubbing cordova-exec and working
> out all my UI/UX in a browser.  Is there some way we can measure the need?
> Given that this does not appear to impact cordova, just supplement it, you
> should probably just go for it.  Fixing cordova-serve and getting
> cordova-browser to use it are already in discussions, so moving forward
> with another module 'cordova-platform-sim'? sounds good to me.
>
> Cheers,
>   Jesse
>
>
>
> @purplecabbage
> risingj.com
>
> On Mon, Mar 23, 2015 at 7:08 AM, Tim Barham <tim.bar...@microsoft.com>
> wrote:
>
> > Hey Jesse - thanks for the feedback!
> >
> > First I'd like to address why we think this belongs in Cordova rather
> than
> > Ripple:
> >
> > *. The functionality described is closely tied to how Cordova works, and
> > we feel is a capability that should be built into Cordova - specifically,
> > that Cordova provide the hooks necessary for any arbitrary "simulation
> > host" to connect to.
> > *. We don't see this as being a Ripple replacement, per se. Rather, is
> > this model, Ripple would become one of any number of "simulation hosts"
> > built on top of this.
> >
> > Cordova might include a very basic "simulation host" out of the box,
> while
> > Ripple would remain a much richer, but separate, project built on top of
> > the same functionality.
> >
> > Why do we see the need for this when we already have Ripple? Reasons
> > include:
> >
> > * We want to make it easy to embed a "simulation host" in other
> > environments. Ripple is just one example.. Also within an IDE, or within
> a
> > browser's dev tools, or whatever.
> > * As mentioned below, we want to separate the simulation UI from the app
> > itself to simplify the debugging experience.
> > * We want to make it easily extensible - specifically allow plugins to
> > define their simulation UI and have it work in any simulation host.
> >
> > Regarding the "browser vs Ripple" thread - yeah, I remember it :). We
> were
> > following it at the time, and it definitely influenced what we are
> > proposing. Some points on this:
> >
> > * We don't think it should be "browser vs Ripple"... We think it should
> be
> > "Ripple on top of browser" :) ... but most importantly we don't limit
> this
> > to Ripple. May simulation hosts proliferate!
> > * If I recall there was also discussion about whether the browser
> platform
> > is primarily a debugging tool or a real production delivery platform. Our
> > firm belief is that it is both. We can easily provide the hooks (the 'app
> > host' and 'server' pieces) so a rich debugging environment like Ripple
> can
> > be built on top of it (and, of course, also open the door to other
> > simulation hosts) without taking anything away from it being a real
> > delivery platform.
> >
> > So, in summary, this is how I'm thinking about it:
> >
> > * The browser platform continues to be a production delivery platform. It
> > doesn't provide any UI for simulating plugins. Plugins should always just
> > do the "real thing", and never provide mock data or anything like that.
> > * The browser platform, when run from the Cordova CLI, is modified to
> > launch from a server. Something we'd want to do regardless.
> > * That server provides the hooks a simulation host needs to do its thing
> > (but, most likely, those hooks would only be available if the application
> > was launched in a mode to expect plugin simulation).
> > * The simulation host itself is completely separate from the browser
> > platform. Completely separate from Cordova, in fact, though personally
> I'd
> > also love to see a basic simulation host available as part of Cordova
> (but
> > in its own module).
> >
> > Tim
> >
> > ________________________________________
> > From: Jesse [purplecabb...@gmail.com]
> > Sent: Thursday, March 19, 2015 2:44 AM
> > To: dev@cordova.apache.org
> > Subject: Re: Simulating Cordova plugins and device capabilities
> >
> > Hi Tim,
> >
> > Nice work. I was going to point you towards Ripple[1], until I saw you
> have
> > the most recent commit.  Can you elaborate on why/how you feel this fits
> > into cordova and not into the ripple project?
> >
> > Personally, I think it is a better fit in ripple, or at the minimum, as a
> > separate module/repo in cordova that can function and be added
> > independently.
> >
> > There is a lengthy discussion on browser vs ripple here [2]
> >
> > [1] https://github.com/apache/incubator-ripple
> > [2] http://callback.markmail.org/thread/mxwnjp4lnz7kfzrr
> >
> >
> >
> > @purplecabbage
> > risingj.com
> >
> > On Wed, Mar 18, 2015 at 2:04 AM, Tim Barham <tim.bar...@microsoft.com>
> > wrote:
> >
> > > Hey everyone... I would like to introduce a proposal and
> proof-of-concept
> > > prototype that we have been working on. The proposal is to provide a
> > > tool/feature that allows you to simulate Cordova plugins and device
> > > capabilities when a Cordova app is launched in your desktop browser.
> > >
> > > The goals for this proposal were:
> > >
> > > 1. Keep the simulation UI out of the app's window.
> > > 2. Provide an extensible model for simulating plugins and device
> > > capabilities.
> > >
> > > I've created some resources to introduce the proposal:
> > >
> > > * Document describing the proposal and the proof-of-concept prototype:
> > > http://goo.gl/XJ25vL
> > > * Short video demonstrating the prototype: http://goo.gl/Nf8UBp
> > > * Document describing how to install the prototype to try it for
> > yourself:
> > > http://goo.gl/MyiNas
> > >
> > > I'd like to emphasize that the prototype was developed purely as a
> > > proof-of-concept, and is not intended to suggest the final
> > implementation.
> > >
> > > We'd greatly appreciate it if members of the Cordova community could
> take
> > > a look and provide feedback - any and all feedback is welcome! But as a
> > > starting point:
> > >
> > > * What do you think of the idea in general?
> > > * Where should it live? In cordova-browser (like the prototype)? A
> > > separate Cordova module? Entirely external to Cordova?
> > > * What are the must-have features for an initial release? How would we
> > > like to see it evolve in the future?
> > > * Any thoughts on implementation details?
> > >
> > > Thanks, and looking forward to your input!
> > >
> > > Tim
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
> > > For additional commands, e-mail: dev-h...@cordova.apache.org
> > >
> > >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
> > For additional commands, e-mail: dev-h...@cordova.apache.org
> >
> >
>

Reply via email to