Browse Month: February 2013

100 Apps & Counting ….

I remember a line by my one of my favourite professor “Inch by Inch Life becomes Cinch, Yard by Yard Life becomes Hard ….”. But today, after Nanostuffs crossing development milestone of 100 Apps in a span of 16 months, I doubt does this really apply to Startups in todays competitive tech world? Atleast did not for me & Ankita (co-founder, Nanostuffs), we tried to take steps by yards instead of inches making our lives harder but enjoyed the experiences overcoming all pitfalls & achieving this target 🙂

The journey started in mid 2011 when we received one inquiry for iPhone app development. Through good marketing skills, we did bring this project to table but for almost 1 month after that we were still stuck deciding which development environment to choose – Mac VM on Windows machine to save cost on Macbook or buying a Macbook itself? It was pretty difficult & slow development through VM, so Macbook was definitely an investment to be made. Frankly, we neither had enough funds nor had any experience of using Mac OS. Initially literally hated Mac for not having Refresh menu option as Windows but then slowly realised its actually not required in Mac 😉 Today our entire team of 20+ iOS developers are using Macbooks or Mac Minis and are always updated with latest releases of iOS, xCode, etc. So, this being our 1st pitfall, we would suggest all fascinated iOS developers to go for this investment if you need to do mainstream iOS development.

The backbone behind Nanostuffs success in achieving this milestone goes primarily to Ankita, if it would not have been for her conviction & diligent efforts we would have never reached so far. Programming for iphone is like going back to ages of Dennis Ritchie or lets say early college days & writing the native C language code. Before we hired more people for these jobs, Ankita learned the language meticulously on her own & this really helped us solving many technical issues that our employees used to come across. Understanding this new, old fashioned, revised way of programming can become cumbersome sometimes & finding help on internet was also difficult. Now everything is available on forums but a direct guidance is always better which we learned from our experience.

Soon after completing few iOS apps, we started taking efforts on learning Android & Blackberry apps. We initially created some of our own inhouse simple apps to add them to our portfolio. One advantage that mobile apps development business has is if you develop one good app on one platform, you can convince client to create similar ones for others, so probability of repeat business usually gets privileged.  But then there were possibilities of creating cross-platform apps, using technologies like Titanium or Phonegap. At the 1st sight, this sounded really lucrative idea for us, put effort only once & get paid for twice. But unfortunately, it didn’t work out so perfectly for kind of apps we were developing, especially complex Gaming applications. We haven’t tried them since last one year almost, but before that there were some limitations to create dynamic apps & compatibility issues with upgrading Android & iOS versions.

Fortunately things went well & we got opportunities to work on several kinds of applications in the area of Gaming & Business apps. Both iPhone/iPad & Android have splendid controls to ease operations on handhelds. Programming issues, although sometime tough, we could always find a solution or alternative without spending a lot of time on it. But a majority pitfall in mobile apps development is Designing Issues. I guess every mobile company would agree to this, wish this could have been like HTML where we set width=100% and our <table> will automatically fit to any size. We initially used to follow resizing programmatically based on ratios but if you want highest quality for your app, the best practice is to apply different images sized for each screen resolution. We have generally seen that the time it takes to do programming, almost similar effort & time it takes for creating these images in PSD or other formats for perfection. But stunning design is an essence for your app success.

Choosing the best way to develop a gaming application can be another major difficulty. Instead of programming everything from scratch, its advisable to use third party libraries. We made extensive use of Cocos2D in developing our games. They provided almost all functions we needed, especially the algebraic & geometric algorithm implementations.

Not every risk is worth taking & we faced such penalty once undertaking a complex low-level operations based iOS & Android app which we failed implementing. Some part because of limitations of iOS & other because we were bit naive in accessing & processing the underlying hardware on the mobile devices. This still remains a challenge for us & are working towards it. Have also recently started developing some apps based on Apple MFi program interfacing iPhone with external hardware.

Finally, a hurdle was making your app live on iStore. Understanding robust requirements related to certifications, provisioning profiles, icon & image sizes, keywords, descriptions, design guidelines, game center integrations, apple standard maintenance, & so many other things is something where no theoretical knowledge is adequate, rejections of apps is a must to get acquainted with the process 🙂

To conclude, the road of life is full of twists and turns and no two directions are ever the same. Yet our lessons come from the journey, not the destination. We are proud of below achievement & at the same time the entire voyage was indeed memorable. 100 Apps & Still Counting ….

46     Games (
27     Business Apps (
3     3D Games (
23     Miscellaneous Apps (
5     HTML5 Apps (

…. Nishant Bamb, Director/Co-founder, Nanostuffs.

Buttons not working on visualforce pages in partner or customer portal. [solved]

Recently I came across this weird problem for which I couldnt find any help on Internet. I created a visualforce page having several buttons & input fields. Some of the buttons were redirecting to other pages & some doing processing on same page.

This page when logged in from Salesforce were working perfectly, the buttons were behaving properly as supposed to but when accessing the same page from Customer or Partner portal were not executing any button click event.

After a lot of review & trial & error methods I finally solved the problem. There are usually two solutions for this:

1. Check if required=true is mentioned for any input field. If yes, the page will not be redirected.

2. Distribute & Group buttons/links in several <form> & </form> tags. Usually we embed entire visualforce page code into one form tag. I tried to logically groups buttons in separate form tags & it solved my problem.

Hope this helps you because I was going nuts trying to solve this issue.

Incoming mails notification on android

I am looking for a way to programmatically intercept incoming emails on Android, no matter their source (gmail, exchange, IMAP, etc.). My main concern is to have a look at the mail headers rather than the mail body. It can be done for GMail only using the following code –

ContentResolver cr = getContentResolver();
Cursor unread = cr.query(Uri.parse("content://gmail-ls/conversations/"), null, "label:^u", null, null);
int subjectIdx = unread.getColumnIndex("subject");

do {
String subject = unread.getString(subjectIdx);
} while (unread.moveToNext());

Is somethink like this available to non-gmail accounts? I know that theoretically I can ask the user for the username and password and connect via imap, but I can’t do it from the business aspect.

Any solution that is possible will be welcome, i.e. Java SDK, NDK, undocumented API or whatever means necessary.