For an index to all my stories click this text.
My last post regarding my new book raised some questions from readers of this weblog.
So I am going to explain what web apps are as clear as possible.
You have an idea for building a program. That can be anything: something for your family, a business application, a game etc. etc.
Let's say your main computer is a Windows machine. So you start building your program on that.
The platform dilemma; Android, IOS, Windows or Linux.
However a program that runs on a Windows computer will not work on a Linux machine or an Apple. And it certainly will not work on Android phones/tablets or Apple pones/tablets. That might not be a problem if you build your program for a small group of people you know personally. You will know what kind of computers they own.
But what if your program will be used by a larger group. Like the club you are a member of, or customers from a company. You might not even know how may users will use the program and on what platforms. And some even might not have a desktop machine anymore !!
So that's your first problem: for what platform will you develop.
Of course you can develop for all these platforms, but then you need to learn all kinds of programming languages. Android apps use Java or Kotlin, Apple uses Swift for it's phones and Objective C for it's desktop computers. For Windows computers you can write in C# (.NET) and you can use C++ for Linux. Anyway: you need to learn a lot of different languages.
This is where web apps make life easy !!!
You just have to learn one language: Javascript.
For good looks add some simple HTML and CSS code and you're done !!
You can write your program on a Windows machine and it will run happily on an Apple, Linux computer, an Android Phone or an Iphone. And that works the other way around to. My main computer is a Raspberry Pi5 running Linux and I build web apps that run on my phone, Iphones and on Windows and Apple computers !!
Imagine being able to write a program just once and it runs on every device !!!
To build web apps you need expensive equipment (and software).
No, no, no !!
You can develop web apps on any computer that has a simple editor.
I write my apps on a Linux machine (a Raspberry) with Kate. On Windows you could even use Notepad. TextEdit on a Mac does the job equally well.
So web apps are webpages ??
You might wonder if web apps are just simple web pages that run in your browser.
The above picture shows a JavaScript program running in a browser
And this is how the same program runs as a web app !! No browser window. Just a program window like most programs have.
Not so!! Web apps can be as complicated as you like. With multiple pages, data collecting and sending data to sites (or home automation systems) and whatever you can think off.
And best of all they run in their own window. So they do not look like websites.
To make a html page with javascript behave like a normal app you need to add a few things. First you need to supply an icon and then there are two small additional programs needed which are easy to make: a manifest and a service worker.
No Wifi and no cookies
Web apps can run completely off-line. You do not need wifi or mobile data to run a web app. And even better: there is no need for cookies.
So your web app can keep users completely anonymous !!!
However when you build a web app that needs real time information like weather forecasts, stock market prices, or access to your sensors for home automation then you need to activate wifi or mobile data.
A normal program or app has its own icon.
Web apps come with their own icons. You can design your own icon or download one from one of the many websites that provide them. Just like you would for any app for your phone or computer program.
The picture on the left shows the clock icon on an Android Phone and the picture on the right on a Linux computer screen. Same app !!! No modifications !! Program once run everywhere !!
Just click the icon and the web app starts. And best of all: looking at the icon will not tell you if it is a native program or a web app. So most users will even never know that they are using a web app.
How about updates.
If you build a program and there are just a few users, you can mail them when there is a new update. Or you can put a new version on your website and hope they will look at the site and update.
Web apps have a build in update mechanism.
A web app is stored on a website. When you, as a developer, upload a new version all users will automatically get an update !!
Distribution
Maybe you have heard that Google is restricting app distribution. If you are a new developer and want to put your app on the Play Store you first have to have it tested for 14 days by 12 testers. This is mandatory !!! There are now even websites where you can hire (for money) testers to tackle this problem.
Besides that you will need a developer account and that will set you back 25USD (one time fee).
And it gets worse. On this weblog are some Apps I build for Android and they are downloadable from a website. On your Android Phone you donload them, click on them and Android asks if it should install the app. This is called sideloading. And guess what: in the new Android updates this will be turned off. There goes your freedom !! And even worse: alternative app stores like Fdroid, apkmirror and apkpure will be out of business. You just can not simply download app's from these and install them.
Yes I know there will be a way to keep sideloading but that is so complicated and deeply hidden in Android that no ordinary user will use it.
This implies that you can not simply build an APP for Android and distribute it from your own website, by mail or alternative play stores !!
For Apple's apps this gets even worse. You need a developer account and that will set you back 100USD a year !!! Then your app needs to confirm to their rules concerning looks and behaviour.
And when all this is solved you app is one of the approximately 2.5 million apps on either one of these stores.
For web apps there are no rules!! And there is no developer account required.
Anyone can build web apps and distribute them through their own website. And if you do not own a website: no worries there are plenty free distribution methods available.
And at the moment there are even several web app stores around.
Yet for Windows, Linux and Apple computers there are no web stores. And still people find their way to the millions of available programs. So if your marketing is OK (or have a great solution for a problem) people will find your web app anyway.
Web apps are about freedom.
Who paid for that phone or computer. So who owns it ??
And if you are the owner YOU should decide what you can install and not the manufacturer !!!
Suppose we had this in other parts of our life. Like you buy a car and the manufacturer decides what brand of fuel you can use. Not just what kind of fuel but also what brand ! Nobody would accept that. So why should we accept that with our phones and computers.
Summarising:
- you do not need expensive equipment
- you do not need expensive software
- you only have to learn one programming language
- write once, run everywhere on all platforms
- web apps look like normal apps in their own window
- web apps have their own icons
- updates can be done automatically
- web apps can run stand alone without wifi
- you can guarantee your users privacy (no cookies)
- you do not need developer accounts
- you do not have to comply to app store rules
- there are many easy ways for distributing your web apps
All these points (and more) are addressed and explained in my book.
My book is a hands on, do it yourself, tutorial that shows how to build web apps yourself. By buying the book you will get your freedom as a developer back.
The book: Web Apps simplified
The books starts with a small Javascript program. Then that program is turned into a web app. Next the book shows easy ways for distributing the web app. And bit by bit the app is expanded with more functionality. And each time a new functionality is added the web app on your phone and computer are updated automatically !! There is a large chapter describing the extra functionality a phone offers like taking pictures and videos, working with the GPS, getting names and addresses from your contact lists, using the gyro etc. etc. etc.
By reading the book and following the chapters you will learn step by step how to build programs that run on every platform on and offline !!
The book is at this moment (internationally) available through Lulu.com
Have fun building apps !!
Till next time
Luc Volders


