4 ms·
Very interesting. So it sounds like the problem is effecting a native experience with HTML5 (something, notably, that Windows 8 gives first-class support to). S
by mcgwiz 13y ago
Very interesting. So it sounds like the problem is effecting a native experience with HTML5 (something, notably, that Windows 8 gives first-class support to). So then, given the HTML5 expertise and attention to detail, would you recommend PhoneGap? Or would you still advocate separate, native efforts? (Or something else?)
Also, do you really think adding media queries to the stylesheet(s) is "substantial relative to native tools"? Taken holistically, I would think that when you're targeting multiple platforms, you expend much greater effort building natively for each platform. Using those native UI tools to provide a good experience for variable aspect ratios actually entails knowledge of different languages, build tools, runtimes, standard libraries, third-pary library ecosystem, and best practices related to all the above.
- itsboring 13y agoI've had mixed feelings on all of this for a while. I think as developers, we're all keenly aware that there's just no silver bullet. I can't say I'd necessarily always steer others away from PhoneGap, because it may be perfect for their project and team. But as mentioned, the abstraction remains very leaky; you still have to deal with a lot of pretty frustrating scenarios that can just eat away your time. I've also found performance to be an issue, especially if you're using animation-heavy UI to try and simulate a native experience. Lately I prefer Xamarin's approach. The downsides have been discussed in this thread: cost, and you lose some of that open source advantage (also perhaps binary bloat--I haven't had a chance to check that out). But I think writing views separately but having common core logic, networking, etc., meshes well with how I want to work. HTML5 is great, and I enjoy using it for web sites. But I've just never been able to get fully satisfied with it in the app space. Maybe someday! In short, saving time is a worthy goal, surely, but producing the best quality output you can is also a worthy goal, and those two have to be balanced as appropriate for any given project. I feel that PhoneGap leans a little too much in one direction and I'm hoping Xamarin can help me find the sweet spot.
- gisenberg 13y agoIt's not a matter of expertise and attention to detail. It certainly isn't impossible to make a native-feeling web application, but I do think that the level of effort is comparable to just doing the app natively, and the web counterpart will still fall a bit short. For what it's worth, WinJS apps still feel clunky to me when compared to their native equivalent. I think summarizing responsive design as adding media queries oversimplifies things a bit. The test overhead for PhoneGap is enormous; deploying fixes to an app is much more difficult than deploying fixes to a site, and individual devices can exhibit bugs that other devices won't within the same Android version. Adding different levels of responsive layouts multiplies that effort. By the end of one particular PhoneGap project, I literally had a dozen different devices on my desk to assert reasonably small changes. The browser as a leaky abstraction thing also continues to be a pain point. One particular difficulty I had with PhoneGap was Android 2.3.x, in which div overflow scrolling isn't implemented (also, ironically enough, not implemented in WP8 IE10 when used in conjunction with the -ms-viewport CSS rule), requiring a design that either doesn't use scrolling elements, or emulates it with JavaScript. In either case, the native experience wins out. Hitting several platforms with a good-enough experience may be an overriding priority, and you could certainly pick worse than PhoneGap to make that happen. For my own tastes, though, I'll be leaning on Mono for cross-platform efforts.
- mcgwiz 13y agoThanks for sharing your insights. I appreciate the viability of the Mono option. Back in the early web development days (an approach that continues to this day), achieving cross-browser usability meant constraining design to the few portable features that worked well. It seems from your statement that the similar might be the case (product design within the constraints of the portable HTML5 featureset) which would mean better trained product designers (to understand which design elements common in native apps are more costly in PG apps) or more collaboration between them and developers. But as you said, Mono/Xamarin is a technically better option with the same ultimate goal. Though a couple trade-offs there are unavailability of the source and upfront licensing costs.