Coding is hard

Mitter.io | The Chat API Reimagined
Mitter.io Blog
Published in
3 min readJul 16, 2018

And not for the reasons you might think

Photo by Fahrul Azmi on Unsplash

It’s not just the act of coding that’s difficult, but choosing the right technologies that’s a real challenge in itself. That’s something I realized the moment I jumped back into the vast world of programming. It was also a sobering realization that my choices at this point could impact my future in the field in a pretty significant way. It was evident early on that in order to become a full stack developer in the shortest amount of time, mastering Javascript and following the NodeJS route was the first thing I had to do.

Coupled with Express and MongoDB, I felt like I had a decent grasp of modern day programming for the web and what that involved. All that was left was to choose a front end framework and I would be on my way! Or so I thought. Angular was the big boy, visible pretty much everywhere as part of the preferred MEAN (MongoDB, Express, AngularJS, NodeJS) stack. The developer community however seemed to be moving towards ReactJS, and I decided to follow it. ReactJS also had a more gentle learning curve, which made my decision a little bit easier.

That’s it! I was done. I had gotten a foot into the door of full stack web development, and I couldn’t be happier…

That is, until I got a client request to build a mobile app. That’s when I realized that a service or a product that doesn’t have a presence on the major mobile platforms might as well be invisible in some respect. And a full stack developer who can’t code for mobile is definitely going to have some difficulty finding clients in today’s marketplace.

The search for the right technologies continued and it was pretty evident that I was in way over my head. Some of the technologies that I came across included React Native, Nativescript, Xamarin, Phonegap and mobile-native programming languages like Objective C and Java for iOS and Android. I decided at this point to focus my efforts on web development and tackle the problem of mobile development at a later time.

Fast forward 6 months, I am now working on Mitter.io, and we had a problem: We needed to deliver an app for our client on Android, iOS and the Web. Since our team was already familiar with React and would use it for developing the Web App, React Native was chosen as the preferred technology to develop its iOS and Android counterparts. Although the interfaces would largely be the same, it would still take — at the very least — 2 separate codebases that we would then have to maintain.

Enter, React Native for Web — an open source project that enables React Native components to be rendered on the web using ReactDOM. And just like that, a unified codebase with minimal code duplication was now within reach! No longer would we have to maintain separate codebases for the web and mobile.

Of course, there are still challenges! We are constantly faced with new problems and our team has to come up with innovative ways to make things work the way they should.

Still, is this easier than writing and maintaining separate codebases? Definitely!

And is this the future of programming? I sure hope so.

This blog was written by Naveen, our full-time Fun Guy who occasionally steps into his Project Manager shoes. Watch this space for a more in-depth look at the challenges of using React Native for Web.

Follow our blog for more stories from the Mitter.io team, and their quest to find the right tools and the best solutions for all things dev.

--

--

Mitter.io | The Chat API Reimagined
Mitter.io Blog

Think outside the chat bubble! Build amazing apps & experiences around a new messaging core to power your real-time digital communications.