logo
Mail
EN

Developing web and mobile apps sounds pretty straightforward and not that hard at first, but unfortunately that is not the truth. Building something truly good is very difficult and there are so many requirements and demands from the modern web that must be covered if you are aiming for the best. The main idea of a website, webshop or a mobile app is for the people to see and buy from your business online. In other words one of the most important aspects of your app is to be seen. Now, that is where it all starts. Let's cut off the small talk and speak about Google. They are the undisputed leader in Search Engines and they set most of the standards and the bar. In order for them to put you in a higher position, there are some set standards that you need to follow, so that they can gather what they need easier and so on.

    Just to name a few of these standards

  • The application needs to be very fast.
  • Your pages have to be accessible.
  • Mobile friendly.
  • Structured data.

    Those are all things that will separate you from the competition, but they are also difficult to achieve. To cover most of them you would need to use the latest and greatest technologies and to stay on the edge of development. There is also the fact that if you cover all of those points, you automatically cover your users expectations and paired with some best practices and great UI/UX you will run circles around your competition. And we are talking 2020, you win online, you win everywhere.

Let's dive in

90% of the applications of today are written with front-end and API architecture which makes sense for scalability and further native development. The clear winner in the front-end is React JS. It has the biggest community and support, but not only that, it is fast, reliable and it gives you the possiblity to build anything.

Even though it is the greatest Front-end technology, React has its flaws. One of the major ones in React is that all the code is executed client side, which is very inconvinient for various of reasons like SEO and fetches. In order for your content to be read by Google/Facebook/Twitter and others, they have so called crawlers/robots which will go to your web app and try to read everything what is there. It is all good, but the crawlers have no browsers, which in react means, if you don't have a browser I can't execute the code, there for there is nothing to read. This results that your website won't be able to score in SEO. The other consequence is that the apps loose on performance, because when the code is executed on the client side, many times the code would wait for some request to go somewhere and return, which will be slowing down the load times.

Sounds nasty and programmers like myself fought a lot with solving this issue which resulted in a techinique called SSR(Server-Side-Rendering). This solves both of the problems, by compiling the code on the server side by NodeJS server. It looks like we solved it, but it was a sort of a hack and not structured way of doing things. Then the NextJS framework came along which literally saved us a lot of effort and time to build things. In my opinion there is no better front-end than React JS paired with NextJS, because it covers all of the criteria and doesn't slow down the development.

The NodeJS server is not an optimal solution for serving on the web, even though there are many libraries like express and so on. I am not a fan of them for the basic reason that there is NginX - the fastest web server for serving static content, which includes caches and many features which I find very useful. After all is done it is also a good idea to choose wisely your cloud provider and make your users feel comfortable by providing servers near them.

Back-end

On the back-end of things, the situation is a lot different. Even though there is this clear standard of building APIs which is very useful for scaling and building. But there are tons of languages that you can write them in - Java, JS, Python, C++, Go and so on. C++ and Go are the fastest working languages and best performent, but they have a major flaw, which is slow development. Any company developing in those langugages will require a lot of people and a lot of time to build something relatively simple. On the other hand when you pick up something like Python, this will be developed a lot faster and the margin between performance is not that much. Therefore it makes sense to use python, especially paired with one of my favorite frameworks - Django Rest Framework. The beauty of Django/DRF is that it 'glues' to your database and it is converting every table and query into python objects and functions which not only helps a lot with the performance, but also saves a lot of time and effort to build complex solutions. Not to mention the big community, libraries and support.

Writing quality code is no easy task. In TeamYotov we preach that the less code you write and the more readable and easy it is written, the better it is. This can be easily confirmed by tests for performance and ease of collaboration between programmers. Setting the bar and caring for every space and every name on a function and class plays a big role in developing clean code.

Conclusion

I would conclude that creating complex solutions, requires a lot of though and carefully consideration what is best and what results it will bring to you. But nevertheless no one should underestimate how hard great programming is. I am talking about the people who write WordPress and think themselves programming.

"It can be explained very simple, Lamborghini and Lada are both cars, but you can see the difference."

—Tsvetomir Yotov