Click here to share this article on LinkedIn »

Background

I may study computer science but the school don’t teach you web development. Nonetheless, through work experiences, I realised that web apps are actually very prevalent and high in demand in the commercial world. Unlike Native apps e.g iOS app, Android apps, web apps have far greater reach because web apps may be accessed on both desktop and mobile devices.

People at Google also pinned high hopes on web apps, possibly thinking that Progressive Web Apps will one day ameliorate the sticky issues faced by the native app developers — developing a piece of software for various platforms (e.g iOS, Android). Not to mention the compatibility issues caused by the varying platforms which the software operates on. Like the folks at Google explained, web platform would be a great solution to developers’ distribution problem but so far web apps’ capabilities have yet to match that of the native apps. Read more over here.

To create a fully functional web app, you need to know how to manage both the frontend and backend of the web app. Fortunately, there are many reliable Backend as a Service (BaaS) providers whom can relieve some of your stress. I’ll talk about it more later.

Where to Start?

There are so many prevailing web development technologies like Angular.js, React.js and more available to choose from. How did I know what is best suited for me?

Angular.js is a frontend web application framework mainly maintained by Google and a community of developers. It adopts a framework known as the model-view-controller (MVC) to render the components in a single page application. Angular.js is quite well maintained and there are many angular modules at your disposal. As of January 2018, Angular.js has evolved from version 1 to version 5. You can tell there are many improvements to the framework over the works, and that’s a generally a good thing for developers! (although the learning curve also quite steep)

React.js is also a frontend web application framework mainly maintained by Facebook and its community of developers. It also adopts the MVC pattern to render the components in a single page application. There are many Javascript libraries out there supported by groups of dedicated developers.

Both Angular.js and React.js are not easy to pick up and even more so if you do not have a programming background. Nonetheless, there are many great tutorials out there that helps you get familiar with the frameworks. I believe in paying to learn the web development frameworks because paid content tend to be of better quality than free ones (duh!) Anyway, there are many Udemy courses available for USD$10 during promotional periods. (just look for high rated courses and you’ll be fine) I bought a course to learn React.js + Redux and my journey to creating a full stack web app begins!

Difficulties I faced while learning React.js/Redux

*you may have a different set of experience learning Reactjs/Redux

1. Outdated/Broken Packages

Not just React.js, for many web apps the packages get updated very fast. That’s generally a good thing because the features get updated and the web app gets optimised.

However, many packages have dependencies (meaning the packages themselves need other packages to work) which updates over time too. If the author of the package decides to update his dependencies without checking for the compatibility with his own code, the whole package may break. Developers using these packages will see trouble to no end.

In my own web app, I integrated the Paypal payment option for my users and I had my fair share of debugging there. Paypal API scripts written specifically for React.js doesn’t say much so I decided to turn to other packages for help.