Friday, December 12, 2008

Story behind Mail2Group

Why did I develop Mail2Group? App Store Link
* Though, not a heavy email user, I often find myself sending emails to more than one and usually with almost same information. As a Consultant, I email out weekly time sheets, reminders, progress updates to my managers and clients. Doing so, I found myself entering the same email address, subject and body texts most of the time. And, as you all know though iPhone is a great piece of work, it still misses some nice key features. One such feature was being able to create a group that you could use for email or SMS. The release of iPhone SDK inspired me to create an app to fulfill my personal need and fill the gap that was missing out in iPhone. Hence, Mail2Group was developed. I spent close to 2 months developing, as the app went through several iterations. I spent most the time thinking about the UI as I wanted the users to be able to use my application without any instructions. Hence, a lot of care was taken to make the app look similar to iPhone's Phonebook UI which all the users are familiar with.

Why create new groups instead of using the one in Phonebook?
* When I started to develop, I wanted to make sure to give the user a lot of flexibility in how they would like to use my application for their needs. One of the most important thing was being able to configure To, CC and BCC labels to contacts, set subjects, and also be able to add email address of contacts that are not part of your phonebook (personally, I didn't want to add my clients information to my phonebook). After some research, I found if I use the Groups framework in iPhone SDK, I will be running into a lot of synchronization issues and it also raised a lot of UI questions like:
  1. What happens when a contact has multiple email address? Should, I add them all to the list or let user choose one.
  2. What happens when a group gets deleted externally through some other app? Should, I still keeps the details or discard it. If i discard, should I inform the user that a group doesn't exist anymore.
  3. And finally, load up time and performance. Since my goal was to provide a nice user experience I was not willing to sacrifice performance.
and many more......

So, I found out that even I use the existing groups in the phone book, I would still have to hold the same anount of information that I would have to hold if I don't use the phonebook's groups.
Hence, I decided to go with the option of creating groups that are only available to Mail2Group application.
But, I am still trying my very best to add the ability to use the phonebook's groups without scarificing any of the features or performance.

How your reviews helped me?
I am very thankful to all the reviewers on the App Store and users who had sent me their feedbacks and helped me add some great features. Few such features that were implemented based on feedback/reviews are:
  • Sort Groups by Name
  • Exclude a Contact without deleting him/her from group
  • Copy an existing group to a new group (i.e., using existing group as template)
Who are my App users?
After developing, I spent quite some time on thinking about pricing and marketing options. I realized that my app is not meant for all the iPhone users out there (Although, I will be extremely happy if everyone uses it). So, I decided my goal is reach the users who will be really benefited by an app like "Mail2group" and serious users don't mind spending couple of bucks for a quality app. After all, we all bought an iPhone in spite of the high cost Why? It has quality in it.
So, after careful consideration, I decided on a dollar amount.

Hope you enjoyed reading my story, feel free to leave any comments as you like. Good or bad. It's always welcomed.

2 comments:

Jon said...

I just updated my iPhone to v 3.1 and the transferring of email addresses when forwarding problem still exists. So I guess Apple has not addressed you concerns? Any idea on when a work around is possible?

Stephen Kafoury said...

I am trying to solve a problem with Mail2Group, and cannot find any contact information for support.