A Means to an End…
It’s no secret that the device/brand/OS class wars have been going on since the dawn of the personal computer, but nowadays the landscape is even more diverse. Users browse the Internet on Android phones, iPhones, tablets of varying OS, Windows PCs, Macs, even the occasional Linux system or game console. With all of these devices, how do we write code that works well on every device, but still provides that native application look and feel? How do we make something that looks just as good on a 5″ phone screen as it does on a 40″ ultra-wide monitor?
It seems that the industry has two answers to this problem. The first answer is to hire more developers and port your applications to multiple different languages. For obvious reasons, this is probably the more performant answer, however it adds to the amount of boilerplate code that must be written. You might have the best Java user interface ever in your Android application, but now you need to completely rewrite that interface, most likely in an entirely different language (Swift, maybe?) with an entirely different UI framework, so that you can create an iOS app, that functionally, does the exact same thing as the one you already wrote.
Maddening, right?
Another big trend in the industry, of which I am a big fan, is to develop responsive web applications. A responsive web app is typically built around some implementation of a stylesheet language like CSS and then either a server side web language like HTML5 or PHP, or a client side web language like JavaScript and libraries built on top of JavaScript like ReactJS. The real magic in responsive applications ability to look good comes from their stylesheet language. We as programmers can detect your screen size and determine how many pixels we have to work with, and then render our views to the best of our ability. On phone screens you typically want your component to be larger, and easier to work with using touch controls. On large desktop screens, you can focus more on telling your components to spread out in an aesthetically pleasing pattern.
As with the first methodology this second methodology is not without its drawbacks. When coding an application for a singular device type and using that devices natively supported language(s) you usually have a larger set of native tools to work with, that aid in the design of your application. When working with responsive web technologies, you rely on standards, some of which aren’t implemented by various manufacturers, browsers, operating systems, etc. In addition to that, it can be very frustrating to write code that will adapt perfectly to the environment where it is being run, because the sheer number of variables can become overwhelming.
One of my favorite things to sit around pontificating about is how to make the universal application. I want my code to look good everywhere. I want my code to function well, everywhere. I want my code to run on anything. As we get deeper into this blog, I hope to provide some useful tips and tricks for how to build the best responsive applications.
Until next time!
0 Comments