RSS

Author Archives: Johan Ho

The difference between an app and an app

Last summer (2019) I made a new “app” for summer camp (currently it only has info about the Christmas Camp in Oslo):
https://app.nccc.se

Like the previous versions of the app, it is actually basically a website. The main difference between these “apps” and a regular website is that once loaded, they could work even without an internet connection. These types of web site apps are called “Progressive Web Applications”.

Progressive Web Applications

Wikipedia lists these as some of the features that separate web apps from “regular websites”:

  • Working offline
  • Push notifications
  • Device hardware access

This allows the website to behave a lot like regular apps you can install on your phones from the app stores.

In fact, quite a few apps that you find in the app stores are actually web apps “packed” into an app, so-called “hybrid apps”, some examples are Instagram, Evernote, Uber and Twitter.

The advantages of making PWAs instead of regular phone apps are:

  • No need to code separate versions for different phone models
  • No need to pay 99USD to Apple every year to publish on the iOS app store
  • Apps can be updated immediately instead of waiting for the app stores to approve of the updates

The Camp App

The previous version of the camp app had all the camp data in the code instead of a database, so it was a bit of work to update it. For the new version I wanted to use some kind of database, so other people can also update the app info easily.

Inspired by Glide, I found out that I can use the Google Sheets API to use Google Sheets as a database instead of making my own. You can see the Google Sheets I used for the Christmas Camp here, and compare it to what it looks like in the app.

I also replaced the outdated AngularJS with React, a JavaScript framework created by Facebook.

Why not just make a regular web site?

The main reason we wanted to make an offline-capable web app for summer camp (instead of just a regular web site with information) is that the campsite is big and may not have wifi connection everywhere.

However, nowadays most people in the Nordic countries have mobile data, which also usually works across European countries without extra cost, so the need for offline is less and less important.

We do still have visitors from other continents, who may not have access to mobile data. So in the end, I did decide to try making a web app after all.

Feature ideas

Some features that I’ve considered adding to the app, but haven’t yet:

  • Let users enable push notifications (for example 15 minutes before the next session starts)
  • Combine multiple calendars/schedules in one overview, for example adult camp, children’s camp, youth camp, or even separate between youth and junior camp (usually they have the same schedule though, but then we could show only the correct rooms for each sub-camp)
  • Send important messages/alerts to people at the camp (with push notifications)

In conclusion

I am actually pretty happy about the app mainly because of the Google Sheets integration, which means it can be used just by updating the Google Sheets, without doing any more coding, and I can also let other people update the app information by themselves.

However, there were some bugs when using the app on iOS, which I hope I managed to fix, but I’m not sure if I fixed everything.

 

Posted by on 2020-01-18 in Software

2 Comments

My hair

A lot of people have asked me if I’ve bleached my hair:

I guess the hair is bleached, but it’s actually because of my acne medicine:

The medicine bleaches anything it touches if I’m not careful… including my hair. And because I’m too lazy to cut my hair more often, I get long hair that gets in the way on my face until I get tired of it and have to get a haircut. (I am stingy too, but laziness is the bigger reason why I don’t want to take time to go to the hairdresser after work, I just want to go home and relax.)

In any case, in the start I sometimes didn’t wash my hands carefully enough so I’d bleach my clothes too when putting them on.

Actually now that I look more into the medicine, it says I should ask a doctor if I use it more than a few months and I still have an acne problem. But I’ve been using it for several years now at least?

However I also realized that I just don’t change my bedsheets often enough, sometimes leaving it for a month or two (or three, my “house chores” spreadsheet says my average for bedsheets is 50 days, so sometimes less and sometimes more than two months…) So maybe I should change my bedsheets more often buy more pillowcases and try changing just them every week and see if that helps on the acne.

 

Posted by on 2018-12-09 in Life

Leave a comment

Instead of wasting your money on Steam/Black Friday sales, get a free game here!

(Quick shortcut for those not interested in reading the long blog entry: Free Steam games from Johan Ho)

Over quite a few years I’ve been buying almost every Humble Bundle, and I’ve collected a big bunch of extra Steam keys because I already own some of the games in the bundles.

The reason why I still buy those bundles even though I only play maybe 10% of the games I get from bundles, is that I can select the percentage of the money I pay that goes to charity. Basically the money for bundles are just “part of the money I’ve allocated each month for charities” so to say. (The monthly charities I donate money to besides this are currently UNICEF and Red Cross). So when buying bundles, I’ll usually select at least 50% to charity, or occasionally more if I already own many of the games in the bundle. This is also why I never wanted to join their Monthly Bundle, because that bundle only gives a set percentage of 5% to charity.

But I guess I still gave up on buying their book and most of the software bundles, otherwise it feels like there are just too much every month, and I realized I’ll never get around to read any of the books or use the software I’m not that interested in. I haven’t even read all the comic book/manga bundles that I’ve occasionally bought for series I’m interested in. For example they had two bundles for Attack on Titan and Fairy Tail that had most of the released volumes and even spin-off mangas a few years ago… Still haven’t finished those either.

 

In any case, I made a web site to collect all the bundles, and all you need to get a game is to sign in with Facebook and request the game you want!

Once I’ve approved of the request (to make sure it’s not some kind of Facebook bot or unknown person), you should get an e-mail to the game, or you can login to the web site again to see your list of games.

 

Some of the reasons I added the Facebook login is:

  • I didn’t want the game claiming to beĀ completey open to the public, making sure it’s mostly my friends who can get them
  • I wanted to test using the Facebook API I guess (instead of making my own login system)
  • Plus I thought it would be easier to see if a person is actually my friend on Facebook.
    • However, it turns out that after all the “personal information leaks” issues Facebook has faced the last year, they have gotten a lot more strict about what information developers can get, so I can’t even see if someone is on my friend list unless Facebook approves it… And they didn’t because it’s such a niche web site I guess.
      Oh well, I’ll just leave it for now and hope that not too many Facebook bots try to request games…

Notes:

  • I set the limit to a maximum of 1 request per calendar month. So once it is the first day of next month, you can request another game, and you can get a maximum of 12 games per year.
    I thought that it would be easier for people to deal with month numbers than to try to remember “30 days from now I can get another game”.
  • Also, even though some of the keys are for expansions, I haven’t currently added a system to get a game + expansions, so you’ll just have to hope that nobody else picks the expansion while you wait for next month.
  • Lastly, there is some chance that some of the keys won’t work, because a few years back I read some news about people managing to steal Humble Bundle keys by “guessing” the URL, I think?
    Unfortunately I can’t test each key to see if they still work, and even if you say that a key didn’t work, I can’t check if it’s because it was already “broken” or because you already claimed it… So the general rule is that if you request a game and it doesn’t work, you’ll just have to wait until next month to request another game.

On a side note, I finally started working on the new worship web site using Preact and PouchDB, but since this means I basically have to learn a completely new way to code a web site, I haven’t even gotten the login system to work at all… I decided I’ll just learn how to build the UI to look like it’s supposed to look for now, and try to patch actual functionality into it later. *sigh*

 

Posted by on 2018-11-15 in Computer, Games

Leave a comment