A lot of people think that Apple has put the virtual equivalent of the world’s supply of padlocks on iOS app development, but that’s only half the truth. Yes, developing “proper” apps for release via the App Store requires a developer’s license, Mac, Apple’s approval, and so on. However, Apple has also done more than most companies to make sure there’s an alternative: web apps.
I’m not really a developer myself, as I’m not well versed in any programming language. I am however capable of using Tasker in some rather unique ways, including creating fully standalone, anywhere-installable apps that are indistinguishable from real ones, so I guess it really comes down to how you define an app and a developer. Another thing I have is some basic knowledge of using HTML and CSS, two of the three components of a web app.
I’ve been wanting to try my hands on a web app for a while, and the recent changes to AutoRemote – the communication platform that allows various devices and platforms to talk to one another, primarily based around Android – gave me the perfect excuse. The ability to send simple and advanced AutoRemote commands to an Android (or other OS) device from iOS home screen shortcuts, as well as receive notifications back, are things I’ve started using more and more. Home screen shortcuts are great, but I always felt that at some point, the system would be so complex that a web app would be better suited. As such, I set out to learn how that works.
The HTML and CSS parts of creating a web app were easily Google-able based on my previous knowledge of CSS and HTML. Enabling full screen disable zooming/scrolling, specifying startup images, and even specifying separate CSS styles for portrait and landscape mode are all ridiculously simple things to do if you have a basic understanding of CSS and HTML. I found this and this to be particularly helpful in that respect, and also used a ton of other sources via Google for the minor questions I had.
I also installed the trial version of a development app that was recommended to me, WebStorm. Unlike WYSIWYG editors – which in my opinion won’t do you any good in this situation – WebStorm is instead designed to give you nice tools to better write the code from scratch. In particular, its automatic file upload allowed me to save changes and have them published on my server in just a few seconds. Since a lot of the code is iPad-specific, I really needed to be able to load up the page/app on my iPad for each change, rather than use a desktop browser.
Before too long, I had the basic skeleton for my web app. It’s designed to run in full screen on my iPad mini, and it’s designed with orientation-specific CSS code so that it doesn’t scale or otherwise mess up anything if I rotate the device. I will probably revisit the design at a later date, but just as a starter project, I decided to simply use the icons from my home screen shortcuts in my web app. Since the rounded corners and shadow effects are applied by the device, I had to use this generator to get the finished icons as PNG images I could use in my web app.
- “Success!” confirmation “animation”
- Loading AutoRemote URLs asynchronously, i.e., clicking a button loads a URL but doesn’t redirect the user. This is done with jQuery.ajax, via the help of a friend.
- The confirmation box for clearing the universal list (which is there since that list is really never empty).
- Hiding/showing the to-do list controls. This was also done using a script I found online.
- Loading this key variable into the URLs when icons are clicked. Since the URL the icons point to is incomplete without the proper key variable, I can’t just use HTML links.
On the other hand, I don’t think web apps and Tasker creations should be underestimated. If it looks like an app, works like an app, and does what you need, does it then really matter how it was made? In this particular case, a web app was really the only option in any case, as there’s no way Apple would approve an app designed specifically to remote control an Android device. Either way it was an interesting experience, and aside from a better design from the app, I might end up creating more web apps in the future – either for personal use, or for teaching, as I’ve found that the ability to create apps, albeit simple ones, can really make students wake up.