Skip to content

Instantly share code, notes, and snippets.

@brucelawson
Last active December 15, 2015 23:09
  • Star 9 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save brucelawson/5338051 to your computer and use it in GitHub Desktop.
Native app developers: what are your reasons for preferring to develop native over Web apps?
[My initial list:]
DRM
speed for superhi-perf games
app store placement
source-code secrecy
[list compiled from other people's twitter answers; thanks all!]
pushing native notifications when they're not in the "app" (several people said this)
"JavaScript is yucky". I've also heard "Unity does cross-platform better than HTML5".
Hardware access (camera, GPS, NFC etc) - presumably solved for camera (webRTC) and GPS (Geolocation) ?
monetization. it’s hard to take £1 from someone online (many said this - both getting paid when someone "downloads" or "installs" an app, and also in-app payments
"user experience"
UI fluidity — e.g., scroll physics only fairly recently supported properly (wasn't this the Facebook reason, too?)
developer tools
inability to present as installed app on non-iOS mobile platforms; cross browser dev is hard; no App Store discovery; avoid feuds
‘magic folders’ so you can’t store anything on the device (like Dropbox app)
if you want it to work offline [appcache inadequacies], also timely and concurrent audio.
place on someone’s home screen (possible with web but less intuitive)
Access to all the native device and services APIs of the platform is probably a big one. Probably ability to use native widgets too
@stefanpearson
Copy link

  • UI layout (fixed components etc, without buggy behaviour)
  • Scroll events
  • Robust view/page transitions

Web apps are capable of overcoming some of these, but there are some questionable hoops that need to be jumped through

@bjornjohansen
Copy link

Geolocation in the browser stops tracking when screen goes blank. This makes it impossible to create apps like RunKeeper and Endomondo with a web app.
NFC, accelerometer, BT are examples of common hardware that is inaccessible in a web app.

@iandevlin
Copy link

With tools like PhoneGap you can create a web app and then port it to "native" code. (At the moment) You don't get the full control and speed that a native app can give you, but access to camera, contacts and other things like that are all possible via PhoneGap's JavaScript API.

I know this isn't a "reason to choose native apps over web apps" but the fact that doing it this way can remove some of the reasons that people might have for going against a web app.

@xquery
Copy link

xquery commented Apr 11, 2013

remove js hegemony, take gateways to other languages seriously

add xslt 2.0 via high quality open source impl saxon-ce (xslt 1.0 was always broken)

definition and built in support for 'data liberation' protocol/data format

standard capability (supported) and resource manager (for introspection)

@chrisabrams
Copy link

source-code secrecy

The fact that the web is open, including the front-end code, is the reason that I was able to become a developer. I also don't see the point, as things such as Chrome's developer tools would become useless, making a developer's life harder. What exactly needs protecting on the front-end?

@bytasv
Copy link

bytasv commented Apr 13, 2013

source-code secrecy - I really disagree with this one, if you compile your code, allow to download and install it on your own device it's still vulnerable to disassembling so in any case if you have some business logic that is sensitive NEVER put it on a client anyways. Anything else but business logic is just not worth keeping as a secret IMO

@jurajantas
Copy link

@bytasv source-code secrecy, there is big difference when you are looking on source code and compiled dissassembed code (assembler in most cases). It is very easy to modify java script. it is not so easy to do the same with assember.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment