Contact Info
- Lilongwe, Malawi
- +265 899 25 21 95 (Whatsapp)
- contact@webmobyle.com
- Working Days: Monday - Friday
Download Audio: Transitioning Into Mobile App Development
It is October 2019, and through the years as a web developer, I have discovered that if you are not learning, then you are not growing. This is not only true for developers, but for any field of endeavour you might undertake.
There is such a vast amount of knowledge out there for whatever you involve yourself in as an occupation. Some people aim to stop learning the moment they get that certificate, or diploma, or degree. I do not think it should be like that though. Lifelong learning is what we must all strive for.
Don’t get me wrong: by learning I do not necessarily mean formalised education. In this day and age, there are so many avenues for one to expand their knowledge around any subject.
You can pick up a book, go online and learn from the numerous channels, ranging from the for free such as Youtube, or the paid such as Udemy. There are even blogs and articles to learn from, that do not require a lot of time investment.
There is so much information out there about any subject, such that it is impossible to acquire it all, but it is definitely important to acquire as much of it as possible. For me, it is crucial to always seek a better version of myself in all aspects of life, and career development is one area where this can be done.
Tech, especially in software, is an area that evolves very rapidly when compared to other fields, such as accounting. As a result, there is more pressure to learn new things, otherwise you quickly get left behind and cannot compete.
The deeper I went into web development, the more I wanted to learn and get better at it. Further than that, I realised that there was an area that was missing where I could do more, and that is venturing into mobile application development.
In the blog post titled Convergence Of Web and Mobile Technologies, I discussed how technology has a tendency to converge with the progression of time. A good example of this is between the Web and Mobile ecosystems.
The Web and mobile technologies evolved separately under the common banner of the Internet. Initially and ideally, if you visited a website on a laptop or desktop, you would be served a different version of the website, than if you visited the same web address on a mobile device. Either that, or you would be presented with the same website as on a personal computer, but one that is cumbersome to use on a mobile device.
This set of circumstances proved to complicate the lives of web developers. It meant that for every website, in order to be proficient, a developer had to develop at least two versions: one for the desktop and the other for mobile devices. The setup was such that, the device accessing the site at the particular web address, would have to be detected, and the appropriate version of the site served for viewing.
A recent development in response to this problem is the Responsive Design paradigm. In this paradigm, a website is coded to automatically detect the size of the screen of the device on which it is being viewed, and alter its form to properly display on that device’s screen.
This was a remarkable development because, it meant less work for web developers and introduced an ability to design according to screen size. Since the Responsive Design is configured based on the screen size, the design can be completely altered to fit the screen size, instead of just shrinking the desktop version of the website, for example.
When I started out as a web designer, Responsive Design was just on the horizon, and when it appeared on the scene, I embraced it with a passion. Before Responsive Design, I hated the fact that you had to scroll sideways, to view parts of a website when viewing it on a mobile device, in the event that a separate mobile version was not available.
Apart from the advantages described, Responsive Design brought me something remarkable. It brought into my consciousness, as a developer, the world and concept of mobile apps. You have to understand that, until something is brought into your consciousness, you are otherwise totally blind to it.
Like I said, I embraced Responsive Design with a passion and mentioned this fact to everyone for marketing purposes. It is really cool if you fully comprehend the implications. So, from the moment I discovered responsive design, it became part of every website project.
When I discovered responsive design, I was just a web designer, and subsequently my evolution into a web developer eventually took form. What’s the difference: in short, a web designer designs websites whilst a web developer develops apps for the Web.
When I started developing apps for the Web, I tried to use responsive design to develop apps that I hoped would do well on both Web and mobile devices. In some cases this worked, because some clients were not particular about their app, and were content with only having a web app.
At the same time, there were some clients who wanted native apps on mobile platforms, or they wanted both web and native apps, in order to offer their users more options. On a mobile device, a native app runs on the operating system of the mobile device, whilst web apps run on the mobile device’s browser.
It bothered me that I could not build native apps to meet the needs of clients, who were not interested in web apps, and this led me to starting to learn mobile app development. There is traditionally a caveat when learning mobile app development, since there are two prominent mobile platforms to contend with.
The mobile market has two main competitor operating systems. Some users use Android from Google, and others use iOS from Apple, and there are also some other less significant mobile operating systems in the market.
At the time of writing, according to StatCounter, the global market share for Android is 76% and 22% for iOS, whilst in the United States, iOS has 56% market share while Android has 44%.
This presents problems for developers and clients alike. For clients, usually developing for one platform is not good enough, since they lose out on reaching users on the other mobile platform. Often a client will need to develop two apps, one for each platform. App development is expensive, and this usually means engaging two teams to develop the same app twice: one for each platform, which pushes the cost up.
For developers, this means either maintaining two development teams for each platform, or having developers that are proficient in programming for both platforms. Having developers who are proficient in both platforms is rare, since each platform uses completely different and separate programming languages, as well as tool-chains.
The idea of learning two languages and their respective tool-chains, was a daunting prospect for me. So, I looked for a workaround, and found it in cross platform mobile development. With this approach, a developer uses one programming language, and then compile the code into native apps for each platform.
This is an approach I could live with. I had some false starts, but now have found a technology I can work with. At first I tried using React Native, gave it up for Vue Native, and then went back to React Native, but I am now comfortable with Flutter. These are all exciting technologies, the details of which will be for another blog post. Until then, keep learning and keep growing.
Want to hear some more from the Webmobyle Blog? Please
Leave A Comment