Tag Archives: BlipADeal

Technologies on “Blip A Deal”…

I am what you would call a bit of a geek and love to play with different types of technology. For the last 8-9 years I have worked in corporates doing either development, design or architecture on either software projects, hardware projects or a combination of both whilst also in my spare time tinkering with all sorts of crazy stuff 😛

After years of working in larger companies about 1.5 years ago I (along with a friend of mine) decided to venture out and develop our own technology to hopefully make a living building and doing our own thing.

So it’s been one hell of a roller coaster ride but we are doing OK, it has its ups an downs but I wouldn’t have it any other way. One things for sure is it definitely beats the norm ! Also, as a result of building this business life has changed (in many ways) for the better in lots of unexpected ways.

We developed a site called BlipADeal found at http://www.blipadeal.com which is a platform for consumers around the world to find the best deals and coupons around. We also provide a large repository of deals and coupons for developers to access via our API’s. You can visit the site to get more information but in this particular post I mainly want to discuss the technologies that we used to build the service both on the mobile and web fronts.

The website

So the website was built using multiple different technologies which include, python, php, javascript, CSS, JQuery and HTML. Mainly the backend was developed using python frameworks and functions as an API so whenever the front end needs any new data it will make ajax requests and will receive only the specific information that it needs.

PHP is used to develop the front end dynamic pages. We could have used a python template library but decided that it would be best to use PHP so that updating designs on the fly would be much easier and would allow us to split the architecture much easier as traffic starts to grow (I might go through the architecture in another post later on).

JQuery and CSS is used for all the communications between the rendered HTML and the backend business logic and processing whilst also being used to render the presentation layer that interacts directly with the user. All data passed between the backend and the frontend is done through JSON objects. Its a nice little architecture and easily extendable to handle mobile requests also.

All of the software sits on top of the amazon cloud which runs EC2, S3, RDS and a whole host of other little services conveniently handled by amazon. Amazon is great and I think many founders can attest to how easy it has made their lives !

The Mobile Applications

In addition to the website we have also developed mobile applications so that users can easily receive their deals and vouchers on the go. So far we have supported mobile applications on both the main platforms, Android and iPhone. To save time we wanted to develop the application for both platforms using the Titanium (TA) framework but discovered that for android development there are very serious limitations.

We developed the iPhone application using Titanium pretty quickly and easily. All the code was developed using javascript and it was clean, easy and fast to test however once we came to developing the BlipADeal application for android we found the following limitations which actually where a pretty big deal.

Number 1 problem is that it would compile the whole javascript V8 engine into the APK binary file. So in essence this made the binary 20MB + where the binary should only be about 1 meg in total. This might not be a concern in places such as Australia and US where the mobile internet has pretty decent speeds but in some other asian regions (where we have a substancial user base) a 20MB file will simply be to large to download for everyone.

Number 2 problem is that its really difficult to have it supported on most of the devices and screen sizes, it just does not scale as well as if it was a native android app. This again is a big deal in Asia where many people purchase the more esoteric Android devices with weird screen sizes and models that Titanium complied applications simple wont run successfully on.

As a result of these pending problems we executed the mobile development in the following way, iPhone completed and done in Titanium whilst Android done natively using Android java.

The question always gets asked as to whether its better to develop natively or to use titanium. The answer to this is it really depends. As I described above, developing for Android using Titanium is a nightmare in my own personal experience. You have to develop many exceptions in your code and in the end to have a code base that works on both devices becomes really messy internally. This is simply not because of Titanium along but also because of the fact that there are some widgets that are not transferable between different devices.

If you want to develop for iPhone and want to get something up quick smart and you have existing skills in javascript using Titanium will exponentially increase your productivity. This means you could hook up and app in a week and have it on the store approved and ready. As far as my own experiences go with playing around with Titanium there has never been anything that I couldn’t do on the iPhone however I have never developed games and extremely complex layouts so there could be some limitations which I have not yet hit upon.

In terms of achieving a native looking app that functions well and is responsive, titanium can do this without any issues or problems on the iPhone platform. If you want to get something out as an MVP and don’t want to spend to much time on the MVP just to test the idea and want to do without spending more time developing the application natively,  its the perfect option that in the intrim will buy you time to redevelop the application natively later.