So, this will be my first blog post writing about programming. Let’s start! This past few months, me and my team has been discussing on writing an application (both web/mobile apps) with same code base and we went through a lot of discussions, research and arguments.Some of the main concerns of the discussions are the time taken for the first release of the application, reusability and the learning curve of the framework.
As I was an avid Android Native Programmer myself, I was inclined towards coding in native java for android, MEAN stack for the web and follow by a cordova app that will replace both android and i-OS app. The justifications behind my inclination was that I strongly believed hybrid apps won’t be able to compete with native applications. Moreover, we have some experience developing in MEAN Stack before. This would project the team to be in a much better shape and a faster timeline compared with learning a new language/framework. But as I don’t want to be restricted by my narrow mind and would like to challenge myself, I ventured into one of the popular “Write Once, Use Everywhere” Framework which is meteor.
So, before I dig into the framework myself, I did some research on online forums, stackoverflow and quora for the comparisons and pros/cons of meteor framework. To my surprise, there are very few blog post encouraging meteor to be used as the mobile app framework. But I would say we have to discredit some of the articles that are negative towards the framework as they were reviewed and feedback for the early years of meteor. They usually mention about the unstability of the plug-ins and minor/major bugs as soon as the application becomes complex.
But we agreed that why not we just try out first before judging anything as it is getting no where. So do we try the framework and we were discouraged by different terminologies and learning curves. We found out that we are not very familiar with the structure and the way meteor package the application. During the try-out, we find out that the previous bugs that were bugging others are not that much of an issue anymore but rather fixed now and the framework has now become more adaptable.
The real problem comes when we try to structure our project. We would like to structure for a large project with supporting both web/mobile. And there are very few examples and discussions on that matter. The most structured answer/tutorial I would like to point out would be the socially app from meteor-angular website(https://www.angular-meteor.com/tutorials/socially) . This one has pretty detailed folder structre on how to have different layouts for mobile and web but at the same time using one business logic. Even then, it worries me that in later part of the application, the codes between mobile and web will become more dependent to each other and very hard to maintain and understand. One more concerning factor is that for deployment, you might want to look into the advanced packaging APIs and methods so that your web application and mobile application didn’t have unnecessary codes.
I wouldn’t say that the meteor framework is a bad framework but I do have to agree that if you are aiming for a complex project, you might want to prepare a bit more and have thorough time to layout the project so that it would be easier to work on in the later part of the project. As we would like to release our first application as soon as possible, we wouldn’t want these overheads. So, if given enough time, I would say that meteor is a platform worth investing your time in.
PS: This is a very biased and novice point of view regarding with the meteor framework which may not hold true everyone. We decided to go with MEAN Stack + React Native for our project.