The year is 2012, at I was working as web developer and learning android in my spare time, planing to become mobile developer but one day I read a fantastic article that totally change my mind: The Making of Fastbook: An HTML5 Love Story. That was the day I left Android and decided to work only on the web platform.
4 years later, so many things changed, nowadays we have hundred of browser API’s that can use to make web apps better, however I still asking myself why people continue to create and maintain native apps ( don’t get me wrong, there are some cases where native is preferred but in general I don’t see any benefits ).
List of some pros:
- Web is linkable, so anyone can share just a link to certain page.
- Web is searchable & discoverable, no need to have any kind of marketplace.
- Web is platform agnostic, it runs everywhere on any OS and device, from smartwatch to washing machine.
- Web is accessible, super easy to start creating content.
- Web is has small size, no need to download 50mb app which will use only once a month.
Some interesting Web APIs:
- Offline: we have a magical tool, called ServiceWorker which works like network proxy and can push every resource in cache.
- Push Notifications: engagement is quite important part which was one of main reason people to create native apps. Fortunately, we have push notifications to send messages down to the browser.
- Background ( and periodic ) sync: We can sync data in background in the same way as native, even when browser is not open.
- Web Payments: making payments easy on the web is really important for e-commerce.
- App icon and splash screen: your app could be lunched from device home screen / desktop / app drawer or even add to windows app store.
- Access to inputs/sensors: you have access to device camera, microphone, storage, GPS, gyroscope.
- Bluetooth api & physical web: you can connect any website to any bluetooth device and read all kind of data.
- WebVR: Virtual reality is coming to web, it is gonna be a platform for all different VR handsets.
- Web assembly: the idea of building web apps on other languages (C/python for example ) and compiling to JS is really powerful, especially for things like games.
That is small list, however it makes me so excited about future on the web. I do not want to live in world where everything is native ( basically we all did it ~2000 when we had to install every program to hdd ).
In 2017+ everything should be one click away.