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.
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.
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.
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.