Slashdot Mirror


Has the Native Vs. HTML5 Mobile Debate Changed?

itwbennett writes: The tools available to developers who need to build an application once and deploy everywhere have exploded. Frameworks like famo.us, Ionic, PhoneGap, Sencha Touch, Appcelerator, Xamarin, and others are reducing the grunt work and improving the overall quality of web based mobile applications dramatically. The benefits of a build once, deploy everywhere platform are pretty obvious, but are they enough to make up for the hits to user experience?

161 comments

  1. Least common denominator by captaindomon · · Score: 4, Insightful

    The problem with frameworks is that they lower the end product to the common denominator. Instead of having an app for each platform that exploits the strengths of that platform, you end up with whatever you can manage to get to work on every platform. That works for simple apps like news websites maybe, but not when you want to integrate tightly with device hardware and how the established user base is used to interacting with their chosen platform.

    --
    Just because I can hook a shark from a boat, I do no offer to wrestle it in the water.
    1. Re:Least common denominator by holostarr · · Score: 4, Informative

      Except most app developers want to target as many users across as many devices as possible so it makes more sense to use tools that target the most "common denominator". It makes very little financial sense to spend months on a native app that runs on handful of devices rather than most device using a tool like PhoneGap.

    2. Re:Least common denominator by Dutch+Gun · · Score: 3, Informative

      That's assuming you don't care about giving your users a good UI experience, because if you don't, your competitors just might. You can always financially justify cutting corners if you're not considering longer-term ramifications.

      I'm not saying building native apps is the right decision for all apps, but it certainly is the right decision for *some*.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    3. Re:Least common denominator by Penguinisto · · Score: 4, Interesting

      Dunno... I've seen where a well-built common UI framework (Qt specifically) can make cross-platform not only easier, but improves the UI beyond the OS it rides on, and more importantly, provides a consistent user experience for those who do switch between platforms.

      A perfect example of this is in desktop CG applications (...like this one, ferinstance.) In this case, there are no real OS-specific strengths that your UI would even need to care about. In the case of cross-platform CG apps, a professional artist can use the Mac version at work, the Windows version at home, and not have to care about interrupting his workflow because of UI inconsistency.

      Now on the mobile side, this becomes even more important I suspect, with a not-insignificant number of folks swapping between platforms every year or two... your app remaining consistent between them is kind of important at that stage. For anything cute/unique that you want to add or remove for a specific platform, I suspect that case statements (or equivalent) would take care of that, no? It would at least allow you to keep it all in one codebase if nothing else. You just have to know what you're doing when you build it, and be sure that the underlying language is equally cross-platform (in the above example, C++ is the weapon of choice).

      Besides, the only way you really would be able to commit to tight hardware integration would be the case of iPhones - it'd be the only platform where you could expect a consistent and relatively limited variety of hardware specs and features across all users - a condition you'd never see with Android, WP, or even (heh) Blackberries.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    4. Re:Least common denominator by Lumpy · · Score: 1

      Unless you are ok with that app not working at times.

      Web based is 105% crap when connectivity is flakey.

      If you are making "free" apps, go for it, but if you are charging a customer $29.95 for the app, it had damn well better be a native app that works even with all radios turned off.

      And I have a couple of $29.95 apps. Hell I have one for room audio tuning that was $59.95

      --
      Do not look at laser with remaining good eye.
    5. Re:Least common denominator by spire3661 · · Score: 1

      Most app developers are just trying to win the app lotto, not do anything actually useful or noteworthy.

      --
      Good-bye
    6. Re:Least common denominator by Anonymous Coward · · Score: 1

      Except most app developers want to target as many users across as many devices as possible so it makes more sense to use tools that target the most "common denominator". It makes very little financial sense to spend months on a native app that runs on handful of devices rather than most device using a tool like PhoneGap.

      Targeting two mobile OSes gets you almost all users. And only one of those OSes has users willing to pay for your apps. Users of that OS tend to expect apps which work well, and that means using the latest and greatest APIs the platform supports. A framework prevents you from using them. Name one app written using a cross-platform framework that normal people willingly choose over a native alternative.

      This is not a new phenomenon. Java allowed developers to write programs with GUIs that ran on six different OSes. It has been almost two decades since this worked well, and I have yet to encounter a single Java program with a GUI that I want to use. In every case, a native application for the platform I am using is significantly better.

    7. Re:Least common denominator by Anonymous Coward · · Score: 1

      I don't know about you, but I visit many more websites than I install apps. By a large margin.This trend is prevalent among even the most app crazy smartphone owners. Nobody is saying there's not a place for Apps and desktop applications. Just that, perhaps, those should not be the de facto standard.

    8. Re:Least common denominator by youngatheart · · Score: 1

      Yup. Mod parent up.

    9. Re:Least common denominator by Anonymous Coward · · Score: 0

      .... longer-term ramifications....

      Welcome to corporate. We don't do long term.

    10. Re:Least common denominator by Anonymous Coward · · Score: 0

      You can write an HTML5 app that doesn't require the radios to be turned on to function. ;)

    11. Re:Least common denominator by epyT-R · · Score: 1

      Except the net result is a sea of shitty fucktacular 'apps' that do the bare minimum, with no flexibility, security, or dependability, as storage and availability depend on connectivity and continued vendor interest.

    12. Re:Least common denominator by StikyPad · · Score: 2, Interesting

      If only it were that easy. The problems with cross-platform development are myriad. The LCD experience has already been outlined, so here are the others:

      1) It's write once, TEST everywhere, and you can't debug the code you actually wrote -- only the specific translation of that code into native code. And that sucks beyond words. It can be incredibly time consuming to the point where it easily erases any time you saved in development. And the longer the lifecycle, the more of your budget this is going to consume.

      2) On a related note, profiling and performance tuning is a bear. If you do anything that requires performance, cross-platform is the wrong way to do it.

      3) The potential for bugs is twice as high, because now you don't just have to worry about bugs in the native SDK, but also in the abstraction as well. While the OEM can generally afford to test the hell out of their SDKs, cross-platform suites have much less resources at their disposal. And it shows.

      4) You are always playing catchup. New features take longer to implement, because you have to wait for the third party to either implement the new feature, or to implement it right.

      5) You're needlessly adding another layer of dependence. None of the "popular" third party platforms are anywhere close to guaranteed that they'll be around in a month, or 6 months, let alone 2 years from now. If your favorite library goes away, you find a new one and make a few changes. If your entire SDK goes away, you're fscked.

      If your software doesn't matter at all, if it's just a hobby, has no business case, and you have no plans (or potential) for going commercial, then by all means, use whatever development tool strikes your fancy. Personally, I would never recommend that anyone use cross-platform tools for anything they plan to support indefinitely. Even for a prototype or an MVP -- too often the prototype becomes the codebase for the final software, despite prior assurances to the contrary. Don't waste effort developing something you can't build on, unless you have no other choice.

    13. Re:Least common denominator by holostarr · · Score: 1

      Just because an app is using something like PhoneGap doesn't mean it will provide you with a inferior experience than a native app. A lot of apps these days are using things like PhoneGap and Xamarin Studio, you just don't realize it. Browse to the list of apps built with PhoneGap below, you'll be surprised how many popular apps were built using Javascript and HTML5: http://phonegap.com/app/

    14. Re:Least common denominator by BarbaraHudson · · Score: 1

      It will still be crap in comparison performance-wise.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    15. Re:Least common denominator by holostarr · · Score: 3, Insightful

      You can built incredible apps and UI using PhoneGap. Browse the list below and you'll be surprised how many popular apps are built using nothing more than Javascript and HTML5:

      http://phonegap.com/app/

    16. Re:Least common denominator by jtara · · Score: 1

      The article isn't talking about webapps, nor is it talking about apps that require a server. It's focused on hybrid native-app platforms that leverage the use of a WebView for UI. The pages that the WebView displays don't have to come from a server over a network.

    17. Re:Least common denominator by DrStrangluv · · Score: 1

      Some of those platforms allow you to bind against per-platform libraries for platform specific interfaces and features, while still sharing common code across the product line.

    18. Re:Least common denominator by jddj · · Score: 1

      Disagree with your comments on CG UI.

      I used Lightwave 3D for quite a while. It's built with one of these cross-platform Frankenstein UIs, and frankly, that part sucks.

      I want an app to behave on a Mac like a Mac app, on a Windows PC like a Windows app, and on a Linux box with whatever feeble attempt at consistency it can muster.

      Ditto goes for iOS and Android. Can't stand seeing the iOS "BACK" button on an Android screen. Dumb, dumb, dumb.

    19. Re: Least common denominator by Anonymous Coward · · Score: 1

      That's just BS that only someone without any experience in anything HTML/js/css can claim. Would you say that most websites are crap (granted, this one is)? I let you in in a secret: they are allmost entirely built of HTML/css/js.

      I let you in on another secret. Even so called native apps revert to webviews to display easily customizable UIs because the native toolboxes are just so limitted in what they offer out of the box, and it has become far easier to build new widgets in js/html, and less expensive to port to multiple platforms.

      So educate yourself before you lash out.

    20. Re:Least common denominator by plover · · Score: 1

      Connectivity is huge, but it's only one of the ingredients in making this decision.

      If you want the app to work for them outside of the corporate WiFi, you have to host it on the public internet, where all attackers are equally welcome without regard to skillz or skripts. Are you sure that server is secure? What about tomorrow? Are you patching it? Are your users securing their devices properly? Uh oh, it's the new version of Heartbleed, go back three spaces.

      You also have to consider performance. Is this something that your users will use constantly for their jobs, or occasionally for some rare piece of info? If it's going to add one second to every screen, and you're asking people to tap their way through 600 screens a day, the inefficiency is going to cost you 10 minutes worth of payroll per user per day. Maybe you make that up in hardware costs if you force your users to bring their own smartphone to work. Maybe the sluggishness just makes your users miserable throughout the day. Or maybe it simply costs you a lot of money.

      On the other side, if it's used perhaps once or twice a day by 2000 people, poor performance and connectivity issues won't be nearly as important as savings on developer costs and time to market, Or if you have only a half dozen heavy users, perhaps you're willing to eat the payroll cost of an hour per day instead of spending them on development.

      It's a question best answered by the money.

      --
      John
    21. Re:Least common denominator by Anonymous Coward · · Score: 0

      You have a really low bar for "incredible apps and UI."

      GarageBand or GTFO.

    22. Re:Least common denominator by Rob+Y. · · Score: 1

      QT addresses write once, build for everywhere. But a big part of the issue here is write once, deploy everywhere - which is a whole other animal. App stores make deployment - and upgrades - pretty easy, but once your app has any kind of complex database behind it, you need the kind of synchronized update everywhere that's a logistical nightmare. Like it or not, web apps rule for deployment - and deployment rules.

      I've long advocated for a 'smart terminal' approach, where the 'app' is just a GUI with a set of capabilities, and all the smarts are up on the server. Something like Facebook works more or less this way. The Facebook app is just a terminal that's good at viewing scrolling lists of posts. It has some simple data input capabilities, which are used to implement commenting and searching, but the contents of your facebook feed and the mechanics of commenting and searching are done by a server application. The upside to this approach is huge. Even with the most sophisticated GUI tookits, GUI programming is tricky and hard to test. Modern GUIs let you do a lot, and have to be prepared to take all kinds of input in any order. A smart terminal lets you define exactly what interactions you're willing to support and debug them once. The applications themselves run on the server and are transactional - responding to a single input from the user, and needing only the ability to handle that case, making them extremely modular and straightforward to build and debug.

      My question is whether HTML5 is an appropriate platform on which to build such a smart terminal. I built one in Win32. It's about 1MB, provides a pretty nice GUI that relies heavily on a nice spreadsheet-like grid widget I wrote. Currently, I can deploy it on Windows, Mac and Linux - because it's 'simple' enough to work well using the WINE Win32 runtime. But no such luck for mobiles. I've been pondering either direct ports to Android and iOS or a rewrite in QT to get a single codebase that works everywhere. But in the back of my mind is the thought that what I should really do is port it to HTML5 and eliminate the deployment issue entirely. But I'm not sure that a Javascript version would work as well - and truth be told, Javascript is such a different beast than Win32 or QT that I don't really know where to begin. I suspect it's possible - and if it uses websockets to interact with the backend just like the Win32 version, the apps would be none the wiser. But it'd be nice if you folks could render an opinion about whether it's advisable...

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    23. Re:Least common denominator by Anonymous Coward · · Score: 0

      Just because an app is using something like PhoneGap doesn't mean it will provide you with a inferior experience than a native app. A lot of apps these days are using things like PhoneGap and Xamarin Studio, you just don't realize it. Browse to the list of apps built with PhoneGap below, you'll be surprised how many popular apps were built using Javascript and HTML5:

      http://phonegap.com/app/

      I looked at the list. I have used the web version of 2048. No other app is something I have seen. So please answer the question in the comment you replied to: Name one app written using a cross-platform framework that normal people willingly choose over a native alternative. I am not saying all phonegap apps are junk. I am saying that for the vast majority of phonegap apps, you can find a better alternative that is written to the native API of the platform.

    24. Re:Least common denominator by gauauu · · Score: 1

      Java allowed developers to write programs with GUIs that ran on six different OSes. It has been almost two decades since this worked well, and I have yet to encounter a single Java program with a GUI that I want to use. In every case, a native application for the platform I am using is significantly better.

      Many developers (including myself) would consider Jetbrains' IDEs to be some of the best development tools available today. They are written in java.

      Just because you've encountered a lot of garbage, doesn't mean that it's all garbage.

    25. Re:Least common denominator by JohnFen · · Score: 1

      I've long advocated for a 'smart terminal' approach, where the 'app' is just a GUI with a set of capabilities, and all the smarts are up on the server.

      As a user, what you're advocating is something I consider a dystopian nightmare.

      As a developer, I totally see the appeal.

    26. Re:Least common denominator by Penguinisto · · Score: 1

      First, Lightwave is indeed the suck UI-wise, but the blame lies squarely with the dev team's choices and design. Remember that they're likely still using something from back in 2000 or so. Count your lucky stars though; at least you've never had to work with a Kai Krause production (e.g. Poser, Bryce, Carrara)... I still wake up with night sweats at the very thought of having to untangle the UI mess that Bryce was built with.

      Secondly, the whole back-button-on-Android thing is standard UI housekeeping; conceptually it's not really different than, say, having to deal with the difference between pointing to the "Preferences" menu item on OSX and "Settings" menu item on 'doze (which is why I mentioned case statements up there ;) ). Basically, whoever left that button in the Android version of their app is a lazy chump who should be slapped silly with a keyboard.

      Can't blame the framework for shitty design and/or implementation, can you? It's like blaming a shovel handle because your neighbor Rule 34'd one before he let you borrow it.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    27. Re:Least common denominator by Noah+Haders · · Score: 1

      Now on the mobile side, this becomes even more important I suspect, with a not-insignificant number of folks swapping between platforms every year or two...

      who are all these platform switchers? People who want iphones get iphones, people who want androids get androids. Perhaps somebody makes a switch at some point, I seriously doubt they ever go back. I think you're overstating the churn. I used an android phone for a couple years, and since then I've been using the iphone. I have no plans on switching.

    28. Re:Least common denominator by Anonymous Coward · · Score: 0

      GarageBand

      Please don't tell me you are serious.

    29. Re:Least common denominator by BitZtream · · Score: 1

      Dunno... I've seen where a well-built common UI framework (Qt specifically) can make cross-platform not only easier, but improves the UI beyond the OS it rides o

      Than you don't really know much about UI development.

      Qt is about as horrible as you can get in every aspect. Its not native, which sucks in every way. Its not UI native, its not UX native, its not native to devs of a particular platform, its pretty much different in everyway, none of which are particularly better other than being cross platform. If you think Qt has abstracted everything away from your for cross platform dev then you really aren't doing all that much with your apps. That doesn't mean you don't make great apps, but it does mean their guis are pretty simplistic (which is also a good thing).

      What you think is so great about Qt is exactly why it sucks. Its mind numbing the number of people that look at all those things as good traits. Its like you utterly failed to grasp the idea that users of a system expect applications of that system to behave in a certain way and you're proud of the fact that you do everything possible to be counter-intuitive. Not just to the users, but other devs well since Qt pretty much lives in its own little obnoxious world.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    30. Re:Least common denominator by mattack2 · · Score: 1

      Unless your app is MUCH MUCH cheaper than the other one, I'll choose the one with the better UI, which almost always would mean the native UI one.

    31. Re:Least common denominator by xpax666 · · Score: 1

      He makes a good point. If all you can manage is a form-filling/text-scrolling app, then this isn't even a topic worth discussing. If you can write *any* application using a strictly web platform -- then there is common ground for a discussion.

    32. Re:Least common denominator by holostarr · · Score: 1

      Except you are wrong! I work for a company that recently built a mobile version of one of their apps and initially we went down the path of building native versions of the app due to the insistence of one key person. At the end, we ended up using Xamarin studio because native development offered nothing of value and ended costing extra time and money. For example on Android if you want to provide something as simple as an action bar across all version of the OS, you will have to resort to using a 3rd party library like ActionBarSherlock (http://actionbarsherlock.com/) because not all features are available across all version of the OS and that is just on Android; we offer our app under Apple (and previously BlackBerry) as well and each of those platforms have similar complexities. Unless you are building some resource intensive app or 3D game, it makes no sense to go down the path of native development. People on the internet who have no experience in the real world development always have this mentality that native is better, the idea that c/c++ > Java/C# when in the real world you have to be smart and pick the RIGHT TOOL for the job and not make a irrational and emotional decision.

    33. Re:Least common denominator by Anonymous Coward · · Score: 0

      Oh, I agree you should be able to make fancy ass apps. Plenty of the ones at the link he replied to are just as visually complicated as GarageBand. I was merely incredulous that he thought GarageBand design was good, or anything that should be aspired to.

    34. Re:Least common denominator by Anonymous Coward · · Score: 0

      That's not even remotely true. Competition doesn't work like that in mobile app development, at all. It's first mover advantage, followed by shitty noise. The world isn't always perfectly rational.

    35. Re:Least common denominator by Anonymous Coward · · Score: 1

      What kind of bullshit software is this? Every one of the gallery items is a really shitty render of a mostly-naked girl.

    36. Re:Least common denominator by Anonymous Coward · · Score: 0

      Hybrid approach...

      Let's say you wanted to ... port gamedev tycoon http://www.greenheartgames.com/app/game-dev-tycoon/

      It is already a HTML5 app, but the "windows" version is actually a Chrome "frame" browser that runs the code. I assume but haven't taken a close look at the mobile device versions but I assume it has a similar nature.

      So on the PLUS side you can run the game everwhere. But you're putting this huge fricken chunk of overhead on the device, where building it natively in C/C++ would have been a better experience.

      There's things like Unity (Angry Birds/Pigs) which essentially do the same thing but with a different footprint size. Unity has a bit more ability to scale to the device power, but just like a HTML5 native app, you'd get far more performance from the device if you just straight up developed a native app.

      The proper way to do things would be to find the weakest device that you want to perform adequately on, say an iPhone 5 or Galaxy S4 and design the game around the performance of the weakest target device. Then on the more powerful devices you use larger/more-detailed assets to bring the scale back into parity. So a crappy Android device and a high end iPhone will get the same game with the same performance, but the iPhone game will actually look nicer and suck less battery power.

      HTML5 deploy-once techniques have no ability to scale with the device power or screen resolution, you are essentially allowing the weakest device to dictate how much compromise to build into it. If an older device can't be updated, then they are SOL, and you get negative PR about it.

      Hence you should only use HTML5 for apps and games where there is no performance scaling inherent. For example your average 4MB game that you could design in flash and export to HTML5 for general shovelware for TV shows could probably be done in HTML5 for the sake of everyone being able to at least play it. But lack of scaling will make people with better devices find such games and apps to be too ugly with low resolution assets.

    37. Re:Least common denominator by cfalcon · · Score: 2

      "I've long advocated for a 'smart terminal' approach, where the 'app' is just a GUI with a set of capabilities, and all the smarts are up on the server."

      This is just for toys though. Uh-oh, I'm in a bridge. That app isn't real, fuck that app. Uh-oh, I don't have a good net connection. Oh, look, others are streaming at this hotel, so while I have bandwidth my latency is trash. Now this app is trash because it doesn't respond to clicks. Uh-oh, the devs decided to shit the app up with adds. Uh-oh, the small company got bought by some malware garbage company and now their app has rights on my box/phone/whatever and it "upgraded" me to some shit hole.

      You advocate for that user hostile shit all you like. Fuck that noise, hope it bankrupts any VCs dumb enough to stick their dick in it.

    38. Re:Least common denominator by SuperDre · · Score: 1

      I think you really have no idea which apps are actually written in a crossplatform framework and which are really 'native'.. Most crossplatform frameworks ARE native, and most mobile platforms do have the same kind of options..
      To be honest, why would I need a native app if there is also a webbased version available, and in a lot of cases I think the mobile versions (of native apps of websites themselves) are crap compared to regular versions.. (Most apps are nothing more than a dataviewer)..

      But I agree, I'd rather have a real native app which actually uses the hardware to it's fullest, but these days it's really hard to find an application that is actually optimized for any specific platform, that's why we need faster hardware to even run the simplest apps we already ran on older hardware native...

    39. Re:Least common denominator by Anonymous Coward · · Score: 0

      All of the example frameworks, outside of Xamarin, are JavaScript/HTML5 base frameworks.

      I would argue that, outside of brain dead simple apps, doing any apps in JS/HTML5 is not the best bet. Performance issues and hard problems to solve will be encountered, more than likely.

      I would like to try Xamarin to produce a C# IOS, Windows Phone and Android app from a single/near single codebase. Outside of that, I would stick with XCODE and Java for IOS and Android respectively. Windows Phone, well use Visual Studio 15 w/ the Universal App template and push the App out for Phone/Tablet/Desktop.

  2. It depends ... by molarmass192 · · Score: 1

    If you're Home Depot, no ... while it's important, those few milliseconds of lag and somewhat less native UI isn't a primary business concern.

    If you're trying to take on an 'A' player like Google, Facebook, Twitter, etc, or trying to establish a new service, yes ... your experience has to be as optimized as possible to stay / get ahead of your competition.

    --

    Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
    1. Re:It depends ... by Anonymous Coward · · Score: 0

      If you're trying to take on an 'A' player like Google, Facebook, Twitter, etc, or trying to establish a new service, yes ... your experience has to be as optimized as possible to stay / get ahead of your competition.

      Facebook, Google and Twitter all run in web browsers with the same functionality as their "native applications" on mobile devices which happens to be HTML5/JS/CSS in most cases. Are you claiming Google has a native application when you use their search interface or their GMail service?

    2. Re:It depends ... by Dog-Cow · · Score: 1

      Facebook's app went native years ago. Precisely because performance for the webview version was unbearable. Me? I'm not an FB user. I am just going by what the FB devs themselves say.

  3. easy question by Anonymous Coward · · Score: 0

    Fuck HTML5 apps, slow as fuck buggy apps...

    1. Re:easy question by narcc · · Score: 1

      Only if they're written by morons.

      Of course, that's true regardless of the technology.

    2. Re:easy question by Anonymous Coward · · Score: 0

      That's who chooses HTML5 solutions. It's a vicious circle.

  4. No. by Anonymous Coward · · Score: 0

    They might look like native apps now (mainly because native apps now look like webpages), but they are still an order of magnitude slower and they always will be.

  5. Device's camera by tepples · · Score: 1

    If you're Home Depot, no ... while it's important, those few milliseconds of lag and somewhat less native UI isn't a primary business concern.

    Low latency integration with the device's camera is a primary business concern when you're trying to let the user visualize how a particular home improvement product will look next to other things in the room.

  6. Just go native by Anonymous Coward · · Score: 1

    We use Xamarin and our advice is don't use Xamarin. Too many bugs, garbage collection sucks. I love the idea of Xamarin but wish we'd gone native.

    1. Re:Just go native by Anonymous Coward · · Score: 0

      How exactly going native would fix the bugs?

  7. Re: No by Anonymous Coward · · Score: 3, Insightful

    More specifically, HTML5/JS/CSS still give really shitty developer and user experiences compared to native apps. That has always been the case, and still remains true. That is why the debate has not changed.

  8. Web Frameworks blow by Anonymous Coward · · Score: 0

    First, Xamarin isn't a web framework. Secondly, I have experience with Sencha Touch. The documentation is TERRIBLE and the resulting apps are slow as balls. How can anyone actually like working with these things?

    1. Re:Web Frameworks blow by Anonymous Coward · · Score: 0

      Well, the fact that the name rhymes with "Stencha" should have been your first clue.

  9. why not a web page? by gstoddart · · Score: 5, Insightful

    So if you need a framework so you can pretend to have a native version of the application ... why not just focus on having a webpage instead of a shitty application which is just a web page?

    This sounds like lazy people who want to claim they have an app, when all they're doing is pointing to a web page.

    I can view your damned web page on my own.

    Honestly, this is why I've started getting away from apps ... because as often as not they're badly written, and contain a fraction of the information I can get from the website, but still insist on having access to my contact list and messages.

    Most people writing apps care more about invading my privacy and selling ads than actually providing me anything useful.

    --
    Lost at C:>. Found at C.
    1. Re:why not a web page? by Anonymous Coward · · Score: 0

      Good point. The USAirways app IS THE THEIR WEB PAGE in a webkit container!

    2. Re:why not a web page? by QuietLagoon · · Score: 1

      ...why not just focus on having a webpage instead of a shitty application which is just a web page?...

      Because it is more difficult for a webpage to harvest a user's personal information. That harvesting is done much more easily within an app that has direct access to said data.

    3. Re:why not a web page? by Anonymous Coward · · Score: 0

      Speaking of app... fuck you LinkedIn... no I will not install your app.

    4. Re: why not a web page? by Anonymous Coward · · Score: 0

      This is the reason I replaced the stock firmware on my phone, so that I could actually uninstall the things I don't want and regain at least some control over my device. Heck, even Windows let you uninstall bundled software. Do you think I'd have selected Accept when presented with the list of permissions the Facebook app requests? They do have a web site that works pretty well, as far as Facebook goes. So does Instagram and Youtube. No need to bend over (that much) to use such services. Cool video on Youtube! Let me bookm... wait, where's the bookmark button in this app? Oh, new version lets you add favorites, plus track your every move in the name of improving the user experience! Awesome. No thanks, show me your web site please.

    5. Re:why not a web page? by Anonymous Coward · · Score: 0

      Because you don't know what you're talking about, and obviously aren't a developer.

      But I am, and recently worked on a mobile inventory tracking system. It involves integrating mobile devices with various barcode readers depending on the hardware. When docked at home office, the app syncs its data using a custom process. All of the functional code to make it work is real, native, code that has to be tested on real devices, and that's where my time is best spent.

      The UI framework, so important to people who don't know what the fuck they're talking about, means the least to me and to the client. I don't have time to fuck around with writing logic to display complex data structures in the various (and completely shitty) UI toolkits google, apple, microsoft, blackberry, etc have out there. HTML5 and angular.js win here.

      The old version of this app, the client committed to a platform, and that was that. Now they are on the BYOD train, yet don't want to pay for a half dozen native apps.

    6. Re:why not a web page? by Tablizer · · Score: 0

      What are some examples?

    7. Re:why not a web page? by Anonymous Coward · · Score: 0

      Shut the fuck up is one good example.

    8. Re:why not a web page? by jddj · · Score: 3, Interesting

      It's important to understand that the context of use for a mobile web page is different from that of a successful mobile app.

      There are a bunch of dumb apps developed for online news sites - as though I'd ever want to go to just one news site, vs. have the mobile web spread out before me.

      OTOH, good mobile apps do things that the mobile web doesn't or can't. Perform read/write operations on local data. Use local processing power - as much as is available. Access local sensors not available to mobile web. Aggregate data from multiple sources - perhaps blending web and local data.

      Even apps that do nothing more than provide deep search - if the vertical market for the app is well defined (Movie geeks: IMDB, small investors: finance apps...), it's possible for a mobile app to excel over a web site by providing native gadgets and a platform native UI that doesn't have to leave room for the (admittedly minimal) mobile browser UI.

      Finally, mobile apps can scrape a bunch more information from the user's device than can mobile web. Definitely a help in monetizing a popular vertical, if you roll that way.

    9. Re:why not a web page? by pla · · Score: 1

      So if you need a framework so you can pretend to have a native version of the application

      No, you need a framework so you don't need to reinvent the wheel for every project you work on. With Sencha's frameworks, I can write a pretty slick-looking responsive site in a few hours (or days, for something larger) that would take literally months to roll on my own (and for the record, yes, I can and have rolled my own, back in the dark ages).


      why not just focus on having a webpage instead of a shitty application which is just a web page?

      Two reasons. First, it increasingly doesn't make sense to force your end users to download and install potentially untrusted code - never mind needing to maintain separate versions for every major platform you target (oh, you want this on iOS and Android and Windows and Linux and OS X, etc?), when you can accomplish the same result in one nice tidy webapp. Second (and you can fairly call this a matter of personal preference), IMO just about everything looks like crap in a browser on a phone, and even that assumes the browser handles it correctly (yeah, like I want to support Chrome and FireFox and *shudder* MSIE and Dolphin and Safari and Opera, etc - Going right back to all the joys of supporting multiple OSs, woo hoo!).

      The concept of a "webpage" hasn't limited itself to some statically published version of a document-with-markup in over 20 years; that model lost so thoroughly that pining for it doesn't even count as beating a dead horse anymore, more like trying to clone a mammoth from frozen DNA.


      This sounds like lazy people who want to claim they have an app, when all they're doing is pointing to a web page.

      It really doesn't matter to me what you want to call it, whether an app or a webpage or a widget or a three-handled family gredunza, if it accomplishes the intended goal... All just a matter of using the right tool in your box for each task - Sure, you can hammer in a screw, but sometimes a plain ol' nail will do the job just as well.

    10. Re:why not a web page? by jddj · · Score: 1

      IMEI. Definitively identify a device, without even requiring an account sign-up. There's a bunch more.

    11. Re:why not a web page? by Anonymous Coward · · Score: 0

      Web sites (and the pages that they're made of) are online only. Sure, HTTP is stateless and each response can be kept visible long after the connection is closed. But to do anything, you have to reconnect every time.

      Apps can do things offline. That makes all the difference. This debate is about how you write your apps, not about why you want offline vs. always-connected interactions. Any application that is merely a front-end aggregator for a single site is basically a pointless marketing exercise, so I agree with you on that. (And on top of that, single-source aggregation kinda defeats the purpose of aggregation in the first place, doesn't it?)

      Right now, I'm weighing a decision to write a set of three native apps (iOS, Android, and Windows) against the alternative of writing a single HTML5 app (not a web site). I'm probably going to use HTML5 because with offline caching of the site's pages (which can be set up through an appcache file), local storage, and data connection-proxying functions, I can use HTML5+JS to do nearly everything a native app does for most LoB-type software. Sure, I won't have access to Bluetooth or the device's sensors, but most LoB software doesn't need that. What matters to LoB software is that I can still manipulate data offline and upload changes to the server later.

      The other bonus of HTML5 apps is that you don't have to deal with the devil (a.k.a. app stores with their attendant masons and gardeners).

    12. Re:why not a web page? by rjstanford · · Score: 1

      Sure, I won't have access to Bluetooth or the device's sensors, but most LoB software doesn't need that

      And if you did, Phonegap gives it to you basically for free. Even if there's some bleeding edge API you absolutely must have that they don't support, writing wrappers is fairly trivial (just a Java or ObjC file with no business logic that says, "Expose this API call as this JS call" a few times, basically).

      --
      You're special forces then? That's great! I just love your olympics!
    13. Re:why not a web page? by Tablizer · · Score: 0

      I installed that app, and it took me here: http://en.wikipedia.org/wiki/A...

    14. Re:why not a web page? by Anonymous Coward · · Score: 0

      Even apps that do nothing more than provide deep search - if the vertical market for the app is well defined (Movie geeks: IMDB, small investors: finance apps...), it's possible for a mobile app to excel over a web site[...]

      For me, IMDB is on my (long!) list of "Why would I install your app when your web page works just fine?"

    15. Re:why not a web page? by Noah+Haders · · Score: 1

      if you're a data vacuum, what great about a website is you can track where else your customers go. So you go to amazon.com, and it can tell from various cookie networks that you also like going to furrydice.org, so amazon.com will show you a wide selection of furry dice. in an app this isn't possible because apps are sandbox and have very limited visibility into happenings outside the app.

      On the other hand, apps are great for attention span, to force the user to pay attention and finish the transaction rather than just ctrl-t open xkcd.

    16. Re:why not a web page? by drkstr1 · · Score: 1
      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
  10. Re: No by Anonymous Coward · · Score: 0

    I beg to differ html5 is catching up. Look under experiments there is a nice Quake 3 map demo and a webgl hexagon demo.

  11. Depends. by danbob999 · · Score: 2

    Many stuff can be done just fine in a web application. Banking, online shopping, quiz-style games, cellphone operator "my account"-style app. Even Facebook is fine as a web page unless you want those notifications (not having them is a feature IMO).
    Some stuff still need to be an a native application. Camera, music player, email, chat, maps/GPS navigation, calendar. Most 3D games also benefit from being native.

    1. Re:Depends. by mrbester · · Score: 1

      Notifications are available in Chrome.

      --
      "Wait. Something's happening. It's opening up! My God, it's full of apricots!"
    2. Re:Depends. by danbob999 · · Score: 1

      But are they convenient? I mean, when I boot my phone, I don't want to open a web browser to check if I have new emails. I want a notification with a mail-specific icon.

    3. Re:Depends. by Anonymous Coward · · Score: 0

      > Camera
      Avaliable to webapps via navigator.getUserMedia()
      > music player
      Avialiable to webaps via audio-element and the web audio api
      > email
      Do not need special services from device so work fine as a webapp
      > chat
      Do not need special services from device so work fine as a webapp
      > maps/GPS navigation
      Avaliable to webapps via navigator.geolocation
      > calendar
      Do not need special services from device so work fine as a webapp
      > Most 3D games also benefit from being native
      With WebGl and asm.js probably not:
      http://blogs.unity3d.com/2014/04/29/on-the-future-of-web-publishing-in-unity/
      https://blog.mozilla.org/blog/2015/02/24/unreal-engine-4-7-binary-release-includes-html5-export-3/

      Webapps do work offline, do not need to store data at a third party and can run in the background via service worker.

    4. Re:Depends. by danbob999 · · Score: 1

      The question isn't wheter it's available. It's wheter it's convenient. Camera as a web app is NOT convinient. Email and chat need notification. Calendar too. Maps do work in the browser. It's orders of magnitue crappier than the native Google Maps application however.

    5. Re:Depends. by Dog-Cow · · Score: 1

      Facebook transitioned to a native app on iOS years ago due to performance limitations with their web-app.

    6. Re:Depends. by danbob999 · · Score: 1

      And they are right. Heavy Facebookers will benefit from a native application. They want you to have notifications and use their chat service instead of one of the many alternative. However for light Facebook browsing, the web page is fine.

  12. Yes, Please!!! by rockmuelle · · Score: 5, Interesting

    For 99% of the applications out there, there's no reason not to do it in the browser if you're starting from scratch today. Most (useful) mobile apps simply display remote content in a way that's contextually relevant to the moment (Yelp, shopping (ordering and product reviews), *Maps, news sites, social media, etc). There's no reason for any of those to be app based. Most apps that aggregate content are poorly designed and not updated frequently. Couple that with the fact that most do not have useful offline modes (the only reason to have an app for content, IMHO), it just makes sense to optimize for the mobile browser rather than spend all the time and effort on an app. Hell, even most games I play casually have no reason being written as apps any more - any word game or puzzler would work fine in the browser.

    Instead, put the effort into good mobile design and development practices. Hire good developers to optimize for JavaScript. Hire good developers to optimize your backend operations to reduce latency. Find what features are missing in HTML/JavaScript (e.g., a good client side persistence layer) and encourage the browser vendors to improve there so everyone can benefit.

    For context, I develop complex scientific software. We use the browser (desktop) as our client and push the limits of what you can do there. Mobile is not far behind and should be the first choice for new development.

    -Chris

    1. Re:Yes, Please!!! by Sigma+7 · · Score: 1

      For 99% of the applications out there, there's no reason not to do it in the browser if you're starting from scratch today.

      One major reason - if the browser fails, it takes out everything running under it. Failure can be as simple as a crash, to a javascript exploit that interferes with the browser, or the browser needing a few minutes just to crunch memory bloat.

      Although browsers have since gotten better, I still don't trust the browser to resume where I last left off - the best I can do is force firefox to crash, and when it resumes, it gives a list of windows that I could potentially restore.

    2. Re:Yes, Please!!! by Anonymous Coward · · Score: 0

      +1 on this (many times over). Not only to you gain tremendously by not supporting multiple platforms, you totally avoid the versioning hell associated rolling out new features to people who are still running old versions of your app.

    3. Re:Yes, Please!!! by Anonymous Coward · · Score: 0

      For 99% of the applications out there, there's no reason not to do it in the browser if you're starting from scratch today.

      Surprisingly, many consumers want phone apps and reject web apps.
      We have a phone app that looks just like our web app and does pretty much the same things as our web a[[.
      We added some nominal functionality to get it past Apple approval, but it's a clone of the web app.
      Many of our customers love it, and depend on it.
      I think some are unaware that they can put a bookmark to a website on their phone
      But for many, an app is the only way they access info. That is, if it's not in an app, they don't open it on the phone.

    4. Re:Yes, Please!!! by amarkham · · Score: 1

      I agree with you in principle, but in practice it's hard to argue against the values that are at least currently uniquely provided by apps:

      1) The icon is sitting on the user's home screen (or, to a lesser extent on another screen or in folder) when she unlocks her device. Sure you can create a bookmark of a webpage and put it on the desktop, but I'll bet the frequency of that behavior is miniscule.

      2) Notifications are becoming very powerful means of interaction and some believe they'll radically change the game long-term (see https://blog.intercom.io/the-e...). While notifications are seeing support in browsers, we're a long way off from that working as well.

      3) You know that big number badge that is hovering over your email icon in your desktop? It's a powerful tool to drive you to click on that application. Again, we may see a good implementation that parallels with web browsers, but we're a long way to go...

      I love the idea of write once, access everywhere, but we have a LONG way to go...

    5. Re:Yes, Please!!! by plopez · · Score: 1

      You want it funky dirty native:

      https://www.youtube.com/watch?...

      --
      putting the 'B' in LGBTQ+
    6. Re:Yes, Please!!! by Lennie · · Score: 1

      Maybe they hope the app will work better offline ?

      --
      New things are always on the horizon
    7. Re:Yes, Please!!! by IamTheRealMike · · Score: 1

      For context, I develop complex scientific software. We use the browser (desktop) as our client and push the limits of what you can do there.

      That's the problem with web development. People are always pushing the limits of browsers. Nobody used to talk about "pushing the limits of the Windows API" back when I used to write desktop apps in Delphi, because it hardly limited you.

      At some point our industry has to get past this collective web fetish. The browser was never intended to run apps. Trying to use it as an app platform results in stuff that's horribly bloated and bug ridden, with decades of accumulated experience in how to write good software just thrown down the toilet because HTML5 got fashionable. When was the last time a mobile or desktop app had an XSS exploit?

    8. Re:Yes, Please!!! by 0xdeadbeef · · Score: 1

      I've been doing mobile development for the last fifteen years, and my experience with PhoneGap about three years ago was the most ridiculous and painful experience of my career.

      Developing with HTML and JavaScript is a pointless chore. It is literally easier to learn both iOS and Android programming and write the same app twice than to put up with and hack around the stupid limitations of hosted web apps. You lose nothing but the ability to write once and debug everywhere shared code, and you gain native performance, native look and feel, and you can use two vastly superior programming languages. Your code can execute in background threads, and you can use a real debugger and whatever IDE you prefer.

      That doesn't mean you can't write decent apps using HTML and JavaScript. But be honest. When you use one, you're not actually impressed by what you see. You're impressed the same way you're impressed when you see a demo written for the C64. The accomplishment is not what it does, but what it does given the severe limitations of the platform.

    9. Re:Yes, Please!!! by non0score · · Score: 1

      Except:
      1) Mobile CPU/GPU is still 50X slower than desktop (i.e. your CSS transitions are 50X slower...hardware acceleration included).
      2) Mobile RAM allowance is still 10X lower than desktop (i.e. less resources loaded, prefetching, more thrashing, less JITed code, less unboxing, etc...).
      3) No native look and feel, so everything seems out of place.
      4) Still takes 3 years to get anything through the JS committee, and god knows how long before browser adoption.
      5) Users still can feel latency even if backend is optimized (queue post about X% drop in latency equates to Y% increase in app usage/engagement).
      6) Did you know that FB was originally all HTML5 on mobile? Did you know solely because of that decision, they were at most two quarters away from going belly up -- until they shipped their mobile app which turned everything around?

      The fact that you brought up desktop being your primary client goes to show how little regard you have for the problems on the mobile platform.

  13. Source code availability? by OzPeter · · Score: 1

    When I last checked a few years ago, one of the cons of using any of the HTML based app development systems was that effectively you bundle the complete source code of your app inside your app.

    Has this changed in recent years?

    --
    I am Slashdot. Are you Slashdot as well?
    1. Re:Source code availability? by spire3661 · · Score: 0

      So? How is that a con? O yeah , people still think in terms of providing a product instead of a service,.

      --
      Good-bye
    2. Re:Source code availability? by Anonymous Coward · · Score: 0

      Or, you know, making money to live on

    3. Re:Source code availability? by spire3661 · · Score: 1

      Most of the money making schemes i see are trying to insert themselves between people for profit. Pretty much the antithesis of what should be happening in an Information Age.

      --
      Good-bye
    4. Re:Source code availability? by OzPeter · · Score: 1

      So? How is that a con? O yeah , people still think in terms of providing a product instead of a service,.

      It's cute that you think that everything can be a service. Which must be predicated on a belief that you can always access the internet.

      --
      I am Slashdot. Are you Slashdot as well?
  14. The web page is no good either by Anonymous Coward · · Score: 0

    Lots of javascript reinventing basic things like the plain old link, button, form, image, whatever, but so badly it won't work on actual release browsers, need latest nightlies, eight cores AND a js accelerator or it'll just hang the system.

    And that when it's really not difficutl to... dump your text and pictures in a webpage and have a little static css sort out the formatting. What a novel idea!

    Similarly, lots of webpages getting "updated to html5", swapping out tags and doing things differently just to be different, breaking backward compatability, for really no gain in user experience at all.

    We're seeing a combination of a rush to "mobile devices" (that would've worked Just Fine had you not tried reinventing stuff for no reason earlier) reinventing stuff for no gain yet again, plus a new iteration of the browser wars, this time with standards pushing the breakage. How novel. But at the end of the day, too much just doesn't work as robustly as it should.

    Apparently this is what we want, because we're doing it everywhere, web pages and apps and whatnot else too.

  15. Not much of a debate... by EmeraldBot · · Score: 1

    Honestly, right now, native applications are by far the superior choice. Web apps sound like a great idea, but they're hindered by being incredibly slow (and phones are already not very powerful to begin with), they have far fewer features, and they often look hideous and out of context compared to the other applications on the system. Furthermore, web applications have no legacy - I can always guarantee that app version so-and-so will work on Android version such-and-such, but the same can't be said for a web application.

    Besides, different browsers do have different Javascript standards, and for anyone who has ever tried to get the same webpage to display well across a variety of phones knows what pain and frustration are. It might honestly be easier to develop two different programs, one in Objective-C and the other in Java, because then at least it's clear where one system starts and the other ends. With Javascript and the like, the lines all blur together...

    --
    "Set a man a fire, he'll be warm for the rest of the night. Set a man afire, he'll be warm for the rest of his life."
    1. Re:Not much of a debate... by narcc · · Score: 1

      It's not 2008 anymore. Get with the times.

      Let's take FireFoxOS as an example. I have a ZTE Open, the lowest of the low-end, running FXOS 1.2 -- an older, slower, version of the OS. The only advantage is its excellent support for web standards.

      There are some awful examples of HTML5 apps on the platform, notably the popular solitaire game offered through the marketplace. There are also exceptional apps, that you'd think were native if they were running on any other platform, such as fast-paced 3d games and physics-based games that run without slow-downs or stuttering at a high frame-rate. Seeing what's possible, there's no excuse for far less demanding apps to perform so poorly.

      Now, you do take a performance hit when you use tools like PhoneGap that purport to abstract away differences between platforms -- doubly so when you add-on ridiculous libraries like jQueryUI, which are known to slow-down your UI dramatically. Don't be stupid, don't use awful third-party libraries, and avoid unnecessary layers of abstraction and you can have a fast and responsive HTML5 app.

    2. Re:Not much of a debate... by non0score · · Score: 1

      So your example of a "well done app" is a game that hardly uses any HTML5/CSS, and is all computation (which, given FFOS, I'm pretty sure is asm.js under the hood). I don't see how your example shows that web standards are actually uniformly implemented across browsers.

    3. Re:Not much of a debate... by narcc · · Score: 1

      Learn a bit more about the topic and you'll understand.

    4. Re:Not much of a debate... by non0score · · Score: 1

      Yes yes, I know your type. The ones that say "don't use anything the system was designed to be used, and only do things as if you're working in C". I.e. don't allocate all the time, don't modify the structure of the object after construction, make types easier to infer for JIT, etc.... That, or maybe you have 0 clue about what performance really means.

    5. Re:Not much of a debate... by narcc · · Score: 1

      Yes, I'm a terrible person. Of course, my apps don't have serious performance issues. Deal with the devil and all that.

  16. Re: No by Anonymous Coward · · Score: 1

    Wow, that's really fantastic! We can build late 1990s era games with this web technology. That's totally cutting edge and innovative. It will only be another 15 years before we can use web apps to create shitty demos of today's software. I can't wait!

  17. We're closer by GeneralSecretary · · Score: 1

    It depends. The hybrid frameworks have moved closer to native, and web itself has moved closer to native too. Google has now released push notifications for the web as well as Service Workers that add in offline support. A web site/web application can now do a lot of what apps were needed for previously. The hybrid platforms you mentioned are great (I love Ionic!), but the performance isn't 100% there yet. But, if you are not making a game, the performance is probably good enough. In general: If you need a device specific feature (TouchID, HealthKit, etc.) you have to go native. If you need really high performance, you need to go native. Otherwise, you can go with a hybrid solution. And soon, for many things, you'll be better off with pure web, if Service Workers and related tech takes off.

  18. Conflict of Interest by cary.caveney · · Score: 2

    The author of the blog post that started this discussion owns a software consultancy that specializes in native application development (iOS and Android). Clearly his opinion is that native apps are better.

    1. Re:Conflict of Interest by Anonymous Coward · · Score: 0

      Conflict of interest in asking a question on Slashdot? Your horse, it's so high.

  19. Fairly Native on 1 platform, ported on the other by kervin · · Score: 1

    If you'd like to use your native language skills ( E.g. Java from Android ) on alternate platform ( e.g. IOS ), frameworks can be useful. I like open-sourced CodeNameOne and RoboVM because I work on the Java side of things and my needs on alternate platforms are fairly basic. An IOS developer may easily go in the other direction.

  20. Obligatory by nitehawk214 · · Score: 4, Funny

    If you are Target and I just want to see what you have available in your store, then no, you don't need an app.

    If you farm out to lazy app developers that simply ask for every permission on the phone, then no, you don't need an app.

    And if you make a phone-specific version of your site, it will almost always end up crippled.

    --
    I'm a good cook. I'm a fantastic eater. - Steven Brust
  21. Re: No by Anonymous Coward · · Score: 0

    Great so now it takes 1 maxed out 3ghz core to render snes starfox level graphics in a browser at 640x480. I can't wait..

  22. Obligatory XKCD(s) by Anonymous Coward · · Score: 0

    Obligatory XKCD(s):
            Installing (and App)

  23. Yes - Facebook quit too soon by jtara · · Score: 2

    Facebook gave up too early. On the other hand, Facebook can afford the development cost of native. For many other applications, native is unaffordable, especially for multiple platforms.

    (Thank you, though, Facebook, for (before giving up on hybrid) figuring-out how to shut off the *&^%$#! iOS WebView "accessory view", and using your Facebook-powers to cow Apple into looking the other way when apps go digging into the virtual keyboard windows to shut that evil thing off...)

    Embedded WebViews have gotten much better. Android has been the laggard, with awful animation/transition performance and glitchiness prior to 4.x, and user reluctance to upgrade OS (improved now) and inability to upgrade on many devices (alas, not much improved, so many Android devices cannot be upgraded to latest OS.)

    Certainly, on iOS at least, I think most users would be hard-pressed to tell the difference between well-written hybrid apps and native.

    I use (Zebra, was Motorola, and before that RhoMobile) Rhodes. I've also developed using PhoneGap/Cordova. I would not do a large project in PhoneGap/Cordova, because everything has to be done in Javascript. With Rhodes, I write models and controllers in Ruby, views in ERB (wish it had a better template language...) and code that touches the UI directly in Javascript. It's a very comfortable platform if you have been a Rails developer, because it's very similar - the server has been placed in the application.

    I'd say at least half my development time is spent with JS and CSS (actually, I use SCSS). I see that as a good thing. I can tweak the UI interactively by twiddling CSS in Safari or Chrome desktop (developer tools for both can connect remotely to a device for inspection/debug/experiment.) I can easily teach a designer to do that themselves. Contrast that to the painful process of tweaking a native UI, being forced to use platform-unique tools and go through a slow and painful build process to see the smallest result.

    I've been working with a small team implementing a number of similar energy-conservation apps (they are used by professional energy auditors - organizations are opinionated, that's why there are 6 apps...). I really think the effort would have been insurmountable had it been done with native code. This is not a typical consumer app with a few screens, but ones with dozens of pages of data-collection forms (per audited building). It's not your typical consumer app with some kind of silly one-page dashboard with text in circles...

    If I had to do something with charts/graphs, I certainly would leverage the great JS libraries that are available, rather than struggling with native code! We did do a little sketch tool in JS (sketch over photos for annotation - just browser API) and nobody would ever know it is not native.

    Ultimately, we abandoned Android (at least for now) due to poor performance and Balkanization, but I can see Android being supported in the future again.

    I have not used Xamarin. It seems the worst of all worlds to me. You have to use the native API of each platform, but you write in a common language (C# yuck!). Where is the saving in development time here?

    I strongly disagree with the bit about "different screen sizes" etc. being problematical. Using HTML helps solve that problem. It's easy to create flexible layouts using responsive CSS. Yes, native platforms have gotten better about this. But it's impossible to get designers directly involved, using the tools that they are familiar with. They still have to toss wire-frames "over the cubical wall" and the battle it out with programmers as to whether their fantasy UIs are even possible. With HTML5, they can work with what they are familiar with and provide complete solutions for UI bits. As well, there is an amazing volume of free and really quite high-quality resources for CSS3 effects, etc. that can be leveraged.

    Yea, if you have a million-dollar budget for a small app, go for native. The rest o

    1. Re: Yes - Facebook quit too soon by Anonymous Coward · · Score: 0

      +100. Agree 100%

    2. Re: Yes - Facebook quit too soon by JebusIsLord · · Score: 1

      C# has actually evolved into a wonderful language. The async stuff, lambdas and especially Linq are great.

      Xamarin-wise, there is a lot of code sharing possible using portable class libraries, and Xamarin.Forms shows promise, if immature. The project in working on has probably 95% shared code and appears completely native.

      --
      Jeremy
    3. Re:Yes - Facebook quit too soon by Anonymous Coward · · Score: 1

      Rhodes? Are you crazy? My team spent an ungodly amount of time writing stuff in Rhodes and found performance to be piss poor. Why? Because the way Rhodes works is by installing a web server on the phone-just so you can write stuff in Ruby. Who on earth would think this is a good cross-platform strategy?

  24. Re: No by TigerTime · · Score: 2

    Are web apps as amazing as native apps? No. And i doubt they ever will be. However, the time it takes to develop a native app vs a web-comparable app is immensely different. Web apps are infinitely easier to create and deploy. The question is if it's worth spending 2-5x the amount of money/effort to provide that level of immersion. To many it's not. Especially if your user base is small.

    I work for a Fortune 500 company and we have internal web apps that serve anywhere from 10 - 10K people. There is little justification to make native apps that essentially do the same thing when we can put a wrapper on it and call it a day. Having an immersive app needs some serious justification for that level immersion when your throwing around $100Ks of develop/maintenance costs.

  25. Common Goals by SuperKendall · · Score: 1

    Except most app developers want to target as many users across as many devices as possible

    Say, isn't that what Malware and Spyware authors want too?

    It makes very little financial sense to spend months on a native app that runs on handful of devices

    "Handful" = > 500 million... that's just for iOS. Android has more.

    I'd say 500 million potential customers warrants SOME degree of effort.

    Also if it's so easy for me to build out something mediocre in PhoneGap that works for everyone, doesn't that mean the inevitable Chinese clone comes out on my tail all the faster?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  26. Re: No by Joviex · · Score: 1

    Ok, no.

    That is not "catching" up that is merely putting a raw graphics adapter canvas in a web browser.

    That is not providing API hooks for various system level resources.

  27. Native is fine for forms/charts by SuperKendall · · Score: 1

    There are a number of native libraries devoted to quickly defining and presenting working forms in iOS.

    For charts, there are a number of really excellent solutions that cost money, but not much and they deliver really nice, dynamic graphs with many options.

    If I were doing a heavy enterprise form app I'd still go native.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  28. We are consumed by Anonymous Coward · · Score: 0

    The debate hasn't changed about HTML5. It is just that we are consumed by the systemd controversy.

  29. No by Anonymous Coward · · Score: 0

    Not even close

  30. The core difference by Anonymous Coward · · Score: 0

    The core difference is that Javascript is slow but less likely to result in a permission error that drains your bank account.

  31. Re: No by Anonymous Coward · · Score: 0

    The webGL demo on that site is pretty impressive.

  32. Does Javascript still have garbage collection? by Anonymous Coward · · Score: 0

    Yes, so why would the debate change?

    1. Re:Does Javascript still have garbage collection? by jfbilodeau · · Score: 0

      So does Dalvik, .NET and Swift. What's your point?

      --
      Goodbye Slashdot. You've changed.
    2. Re:Does Javascript still have garbage collection? by Lennie · · Score: 1

      Unless you compile it to asm.js then Javascript will use Ahead Of Time compilation.

      --
      New things are always on the horizon
    3. Re:Does Javascript still have garbage collection? by Dog-Cow · · Score: 1

      Swift does not have garbage collection. GC has been deprecated for Objective-C for years now. Why the hell would Apple implement it for Swift?

    4. Re:Does Javascript still have garbage collection? by jfbilodeau · · Score: 1

      True. Swift does not use GC but uses reference counting...which can be worst than garbage collection in some circumstances. :P

      --
      Goodbye Slashdot. You've changed.
  33. React - but not write once by Anonymous Coward · · Score: 0

    Scrolling on smartphones with complicated UIs is a nightmare using html. If all you need is a long list and nothing or a few links then responsive can work, other than that it's always going to be an issue. React-native seems to be a way to go. Learn once, write anywhere. I don't think their Android version has dropped, may be wrong, but I played with the ios first release and it was great. Really smooth iPhone experience.

    Yeah it's another framework but it's less like joining a religion than Angular or a creepy cult like Ember and it solves a real problem of look and feel on the mobile devices.

  34. React Native by Anonymous Coward · · Score: 0

    Facebook's React Native is an interesting data point in this conversation: https://facebook.github.io/react-native/

    You write HTML, Javascript, and CSS, and you get a iOS native UI (Android "coming soon"). They're making an attempt at the "Best of Both Worlds".

    1. Re: React Native by Anonymous Coward · · Score: 0

      What about nativescript? http://www.telerik.com/nativescript

  35. Re: No by xfurious · · Score: 2

    Definitely not a shitty developer experience, I have written both natives on android and mobile web apps and mobile web apps are much easier and less error-prone to write.
    And most phones have all the horsepower and HTML engine quality to pull off a lot of the sorts of user experiences you'd like (there are still rough spots though).
    The device APIs in HTML5 now cover almost all the native capabilities you would want, once ServiceWorker and push notifications are fully deployed. They actually do a -better- job when used correctly because permissions are requested as needed instead of upfront, which avoids scaring the user off as they wonder why your recipe app's update needs camera and microphone support when you add the ability for users to post a Vine video of their baked goods (for instance).
    Whenever this discussion comes up, I feel like Slashdot is just filled with old crufty C++ coders who don't understand the state of the modern web, because everyone just lands flat in the "its crap" opinion instead of discussing the few missing capabilities and the specific performance issues they've seen.
    The web ain't perfect (yet) but its getting better every day, and has no vendor lock in or censorship issues like the mobile walled gardens have.

  36. What about RadStudio? by jfbilodeau · · Score: 1

    Early versions of Firemonkey sucked, but it's worths taking a peek. Native performance FTW.

    http://www.embarcadero.com/products/rad-studio

    J-F

    --
    Goodbye Slashdot. You've changed.
  37. Re: No by Anonymous Coward · · Score: 0

    Web apps are infinitely easier to create and deploy.

    Well, no. I can buy an order of magnitude, maybe — but not infinitely easier. If it were infinitely easier, then it would take zero seconds.

  38. Re: No by JohnFen · · Score: 1

    Definitely not a shitty developer experience, I have written both natives on android and mobile web apps and mobile web apps are much easier and less error-prone to write.

    Well, that's clearly a matter of opinion. I have done the same, and in my opinion, nothing beats going native (assuming you are trying to achieve the same end results, which is difficult-to-impossible, considering how limiting web apps are.)

    Whenever this discussion comes up, I feel like Slashdot is just filled with old crufty C++ coders who don't understand the state of the modern web

    Why would you think this? Couldn't it equally be that Slashdot is filled with experienced engineers who find it instinctively painful to write applications in a way that provides a substandard user experience compared to the other options available?

    and has no vendor lock in or censorship issues like the mobile walled gardens have.

    That's a separate issue, and one that doesn't apply to Android (since you aren't required to work inside any walled gardens).

  39. Re: No by Anonymous Coward · · Score: 0

    > Web apps are infinitely easier to create and deploy.

    At this point, developing native Swift apps is MUCH easier than developing web apps.

    Swift changed everything, and Javascript-based web apps just won't be able to compete.

  40. Re: No by terjeber · · Score: 1

    Limiting - how. Please be specific or we can easily conclude you might not have as many clues as you think you do.

  41. Re: No by Altus · · Score: 1

    Honestly I'm not sure I buy an order of magnitude.

    That said if user experience is secondary (internal tools for instance) a quick and dirty web app might manage that order of magnitude but once you want some sparkle, maybe some animations, the advantages dry up quickly. It always seems like the web devs can get the basic feature implemented faster but getting it refined and polished seems to take them more time than app developers and the results are not necessarily as good.

    --

    "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  42. Re: No by ShanghaiBill · · Score: 2

    However, the time it takes to develop a native app vs a web-comparable app is immensely different. Web apps are infinitely easier to create and deploy.

    Only if the "app" consists of a pull-down menu, a fill-in form and a database. Now try to do a 3D FPS game app, using OpenGL, with HTML5. Is it theoretically possible? Sure. But it will be incredibly difficult to manage polygons, scenes, frame buffers, etc. in a language where an integer is a float, and a float is sometimes a string, where the only data structures are arrays and hashes, and errors are almost never caught by the compiler.

    I have written apps in both native code and Html5+Javascript. Html5+JS is almost always my first choice if I just need to slap together an interface to some backend service. But I would never go that route for an app that requires structure, planning, teamwork, and real engineering.

  43. Re: No by JohnFen · · Score: 1

    Now, come on, there's no need to start getting nasty here.

    The two main things that are limiting are that you can't take advantage of the unique strengths of the particular device you're running on, and the performance always (and inevitably) suffers.

    Whether those limitations are important depends entirely on the type of app you're writing, although I maintain that maximizing performance is always important on mobile platforms in order to maximize battery life. That said, I am completely aware that the rest of the software industry long ago decided that sacrificing performance was acceptable in exchange for reducing developer effort. Which is one of the reasons why software quality has been declining for decades now.

  44. And from the archives of the C release by Anonymous Coward · · Score: 0

    "The benefits of a build once, deploy everywhere platform are pretty much a myth."

    There will always be some tweak needed somewhere that blows the whole build-once-and-deploy-everywhere myth right out of the water. Android fragmentation being the latest example to blow up mobile dev. This myth has been around since C was released and it never seems to stop getting press, even though we all know it ain't true.

  45. Please refine the question. by loufoque · · Score: 1

    Please refine the question, I don't understand it. In particular, what is native vs javascript necessarily about mobile application frameworks?
    In any case, more and more companies use SaaS with a service oriented architecture nowadays, since they want isolation of the different services as well as high reliability and scalability. In big companies, they build their own frameworks, Javascript/XML (or HTML) are quite popular for the UI, while C++ seems to be favored for the backend of the service itself.

  46. Re: No by Anonymous Coward · · Score: 0

    How the heck do I get Swift apps to run on my client systems that are running Windows, Linux and Android?

  47. Re: No by Anonymous Coward · · Score: 0

    Definitely not a shitty developer experience, I have written both natives on android and mobile web apps and mobile web apps are much easier and less error-prone to write.

    Well, that's clearly a matter of opinion. I have done the same, and in my opinion, nothing beats going native (assuming you are trying to achieve the same end results, which is difficult-to-impossible, considering how limiting web apps are.)

    My experience as a webapp user on the desktop is that for the most part the functionality and responsiveness of native applications can be achieved if the developer(s) know how to develop webapps suitable for desktop use within a web browser.

  48. explosion expected by CresCoJeff · · Score: 1

    "The tools available to developers who need to build an application once and deploy everywhere have exploded"
    Well, that's what happens when you try to cram a single square peg into millions of different round holes -- things explode.

  49. Re: No by Anonymous Coward · · Score: 0

    Write a preprocessor that translates Swift to Java.

  50. Nothing new by Anonymous Coward · · Score: 0

    If the app is trivial, the web can work. It's good at managing my shopping list. But I still use native apps for all the real stuff. Email is native (Thunderbird), Docs are all native with Office, games are all Native (from massive FPS to even Farmville!), my music is native (Pandora Air app, native+SDK), the Whats Up sky app I just bought for my HTML5 tablet is ... Native. Everything I use is native unless it's just a list of strings on a web site. git is native. Gerrit isn't, and I wish it was. Studio is native. Eclipse is native. The compiler tools are all native. My debugger is native, if I am lucky enough to have one. My browsers are all native. The F1 app on my tablet is native, etc. etc. it's a really old dumb discussion and in the end NOTHING HAS CHANGED. NATIVE RULES THE BEST, the WEB GETS THE REST.

  51. What's native? by ChunderDownunder · · Score: 1

    I use Firefox OS, you insensitive clod. :)

    I was never a huge app user on Android anyway. Games and fart apps, yeah nah. If the latest online service that syncs to the cloud and data-mines my personal details wants my business, let them write a mobile web page!

    The lack of native apps like Skype is the main thing I might miss on my next trip, calling family via hostel wifi. But hopefully I can get my relatives to adopt firefox hello! :) I've been wondering about one of those smart fitness wristbands such as Mi Band that sync to a 'computer' via Bluetooth. I'd need then to boot Android-x86 running in a hypervisor with bluetooth pass-through.

    But for most stuff, I can't say I miss Android too much.

  52. Re: No by BronsCon · · Score: 1

    This. If everything is done in the client, the application will lag every time anything processor-intensive is done. Likewise, if the client has to call back to the server every time it does anything, the client will lag on high-latency connections or when the server is overloaded. There's a balance there; the trouble is that most developers don't know how to find it.

    I think part of the problem is that web app developers seem to fall into one of two camps: Do everything locally for the best chance of availability, or do everything remotely for the best performance. The first camp is almost right, they do achieve better availability doing everything locally, right up to the point where their app becomes unusable due to processing lag (in other words, they're wrong). The second camp is also almost right, they do achieve the best performance in their local development environment, running in a VM on their workstation, where they're the only user; that falls apart the moment they add thousands users and wildly-variable latency between client and server (in other words, they're wrong).

    What I prefer to do is provide all capabilities in the client (a-la first-camp), then identify those that cause the application to lag and implement them on the server (a-la second-camp). Once a function exists in both the client and the server, the client can run a job locally and on the server. If the local job finishes first, the client alerts the server and the server-side job is terminated; if the server returns its result first, the local job is terminated. I find that this structure provides the best performance, as well as availability, since the faster resource will always be the one to return the result used; and if the server is unavailable, times out, or returns an error, the application still works. I find that most users are willing to accept occasional slowness during server outages and upgrades, especially when the application is generally very responsive under normal conditions.

    That, I'm sure, can be built upon to predict (e.g. based on bandwidth, latency, and local vs server load and performance) which job will finish first and only start the remote job when it will be the clear winner (still starting the local job just in case). That would give you the benefit of reduced server requirements without impacting application performance (unless you take it too far and don't keep any spare compute power online). I haven't run into an instance where this has been necessary or where the savings would be worth the effort (as evident by the number of cancelled jobs compared to completed jobs), but I'm sure such a case exists.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  53. Re: No by jtara · · Score: 1

    So many comments here miss the mark so widely. There is NO implication that a hybrid (or, more broadly cross-platform) native app has to rely on a server. None, zero, zip, zilch, nada. None.

    You DO NOT NEED a server for native hybrid app! Only if you happen to need a centralized database. Use a server if you need a server. Period. For example, you have an app that shows current news, current sales figures, that updates the company database in some way? You are going to have one or more servers involved.

    If you need a server, you need a server, whether webapp, hybrid app, or fully-native app. If you don't need a server, you don't need a server.

    Even a "webapp" doesn't need a server, once the webapp is loaded onto the device.

    Local databases are a common feature of hybrid apps, especially in the Enterprise world. Sync the local database to a central database when connectivity is present. Users can continue to work with the app offline. Of course, this is no different than with a native app. The argument is fallacious - you are imagining an architectural model that simply isn't common. Hybrid apps do not have any different networking requirements than native apps. That is, if they need access to a network, then they need access to a network. Nothing about the architecture demands servers.

  54. Re: No by BronsCon · · Score: 1

    You are correct. However, the post I was replying to was about web apps. If you want to complain to someone about getting it wrong, complain to that poster.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  55. Re: No by omfgnosis · · Score: 1

    Yeah good point that sounds trivial, like using a RumplestiltskinJS quadrilateral framework that all the cool kids are running.

  56. Re: No by omfgnosis · · Score: 1

    You can at least quit worrying about your numeric types if you use asm.js

  57. Re: No by omfgnosis · · Score: 1

    Turns out that's a reasonable expectation. http://arstechnica.com/gaming/...

  58. Re: No by omfgnosis · · Score: 1

    I would have read the rest of your comment, but you're obviously playing a terrible game of telephone. Every language is parsed. Java is a compiled (not interpreted) language.

  59. Re: No by Anonymous Coward · · Score: 0

    Back to school, man. And learn what "interpreter" is.

    Compiled language can also be interpreted. Progress was made since the times of BASIC.

  60. Re: No by Anonymous Coward · · Score: 0

    Definitely not a shitty developer experience, I have written both natives on android and mobile web apps and mobile web apps are much easier and less error-prone to write.

    Even if you wrote an "app", that doesn't make you a developer.

    Most "app"s are so primitive and rudimentary, that their creation can be probably fully automated.

    ... you add the ability for users to post a Vine video ...

    ... I feel like Slashdot is just filled with old crufty C++ coders who don't understand the state of the modern web ...

    Oh we do.

    But we also know that this shit will blow over. As it does every 2-3 years. AKA "eternity" in the web development terms.

    ... the specific performance issues they've seen.

    All over the fucking place.

    I find it quite moronic, that with every new "cool" tech it takes the top performing PC about 1 second to display a table with ~1000 rows. I remember when LAN was bottleneck. I remember when HDDs were the bottleneck. I remember when modem was the bottleneck. I remember when crappy GUI toolkits were the bottleneck. Now - it is the crappy Web UI which converts and reconverts data dozen times.

    The web ain't perfect (yet) but its getting better every day ...

    Don't kid yourself. It's not.

    It is the hardware becomes faster and more tolerant to whatever shit you throw at it.

    As it always did to accommodate the R&D whims of the day.

  61. Re: No by terjeber · · Score: 1

    The two main things that are limiting are that you can't take advantage of the unique strengths of the particular device you're running on

    There was a reason I wanted specifics. This is a generic comment and it generally isn't particularly accurate anymore. Do you know of any specific things that would suffer on any specific platform?

    performance always (and inevitably) suffers

    Again, not specific, and generally extremely far from the truth. Yes, Javascript runs slower than native code, but that isn't necessarily an issue. It depends on what your app does. Many, many apps are not calculation heavy, they collect data from a back-end server, present it to the user, allow the user to alter the data in some ways and then send the data back to the server. Any slowness in such application will be caused, by network slowness in almost all cases. In other words, the performance of the underlying GUI language is mostly irrelevant as long as it is fast enough, and Javascript is, for a huge number of applications.

    So, at this point in time you have not given any kind of arguments that supports your position.

    Have you developed applications in Javascript that suffered performance wise? Have you developed any mobile applications that you assume would suffer performance wise?

    It's easy to parrot the "wisdom" of others, that's why I asked you to be specific. You weren't.

  62. I have hopes with FirefoxOS by GuB-42 · · Score: 1

    FirefoxOS is basically a web browser with JS APIs to access the hardware.

    All apps use web-based technologies, which means that the only thing needed for any OS to use FirefoxOS apps is a web browser that support these APIs, no need for native code unless you really need performance. You can already run some apps on Android as using Firefox components.

    I really hope that the guys at Mozilla focus on the compatibility aspect by making it easy for developers to use the FirefoxOS framework on other platforms (Android, iOS, Windows Phone, Desktop, ...) rather than attempt to compete.

  63. Re: No by KingMotley · · Score: 1

    Try coffeescript.

  64. Re: No by JohnFen · · Score: 1

    Then I have no idea what you mean by "be specific". I was plenty specific enough for this discussion. I doubt that you actually want me to dive into the technical details.

    I will add a clarification about my comment about performance. If by "performance" you mean "speed", then you are (as I already said) correct that what is good depends entirely on what the app does. However, performance means a lot more than speed. It also means things like CPU cycles: an app with good performance is an app that uses the least possible CPU cycles to accomplish a task. The importance of this goes beyond speed. On mobile devices, for example, it also goes to battery life.

    Any app that is written in Javascript (or any other interpreted or semi-compiled language) burns through a lot more CPU cycles than is required for the task. That is why I say that performance inevitably suffers. This is true even is you don't notice a speed difference as the user.