-->
Who are you and what do you do?

I’m DINH Viêt Hoà (first name is Hoà).

I’m the co-founder and CTO of Sparrow. The company was created in 2010 and is based in Paris, France. Sparrow is an email client for Mac and the iPhone.

I started using Linux around 2000. I found no decent email applications on this OS and becamed obsessed with building one that would satisfy my needs. I started contributing to an email application project named Claws-Mail. I quickly wanted to add IMAP support to it but the protocol was not widespread yet. When I realized that I would have to re-architect the whole project to do it, Libetpan was born. Libetpan is an Open Source framework that I initiated in 2001 that implements all email protocols (mainly POP, IMAP and SMTP) in C language.

Meanwhile, I joined the iCal/iSync team at Apple in 2004, a group Jean-Marie Hullot created in Paris. I learned the basics about user interface design and met talented people. After 3 years there, I left to join Amazon where I worked on the layout engine of the Kindle.

In 2011, I met Dominique Leca and we agreed on the fact there was a lot of room for improvement in desktop mail applications. That’s how Sparrow was born.

You can follow myself and Sparrow on Twitter.

How did you get started in Mac development?

I think the most valuable thing I learned while at Apple aside from Objective-C coding was the importance of keeping things simple. Simplicity is about building a good user interface but it’s also creating simple software architecture. I was amazed by Apple frameworks API’s ease of use. I was also impressed by the debugging tools (except the debugger itself, gdb) that we could find on the Mac (sample, leaks, ObjectAlloc).

After starting to use a Mac for development, I never went back to Linux. Mainly because on a Mac, hardware doesn’t matter. You can put all your focus on software development.

What is your computer and workspace setup while developing?

I code with a Macbook Air 11” for now. I use no external displays, no external keyboard, no external mouse. I love the trackpad. I have headphones to listen to my favorite bands. I still have a pen and a paper notebook in case I have a difficult problem to tackle.

What are your favourite Apple Cocoa Frameworks to use within apps you develop?

Foundation has a beautiful API when we compare it with Java ones.

I think Core Animation is the current masterpiece of Apple Engineering. It provides a very good abstraction of OpenGL and allows you to easily create smooth animated user interfaces. Basic Cocoa did not allow this. It has been built for the Mac but was ported to the iPhone and has been used as the main component for the reboot of the user interface framework and made it possible to build the user interface we can use today on the iPhone and iPad.

What is some software that you use outside of Xcode for development?

I use the Terminal a lot since I started on Linux. Git versioning system helps tracking the source code, even though the command line interface could really be improved. I use Redmine for feature / bug reports.

TextMate is my favorite text editor when I work on any code that is not Objective-C (ruby scripts/webservices, shell scripts, web page). For my todo list, I use a simple task management application, Dropkick. It syncs between several devices.

What do you do to stay up to date on new iOS features, frameworks and SDK's?

I used to read RSS feeds in Google Reader, but have dropped them. For now, Twitter is the most efficient way I have found to quickly browse news.

When I discover Mac OS X or iOS new features/frameworks, I never rush into them. I discover, through Twitter, the issues people have with that new stuff and gather the solutions. For example, with ARC, in theory, you don’t have to care at all about memory management. In practice, you need to understand how it works to solve the issues you did not have with manual memory management.

From a developers perspective, what are your hopes for the next major iOS update?

Mac OS X is trying to get the user interface ideas from iOS but from the developer’s perspective, if you want to match good ideas of iOS and use lots of Core Animation, you’ll encounter lots of bugs when it interacts with AppKit.

Today, you can use half-baked frameworks such as TwUI (by Loren Brichter / Twitter) or Chameleon (by IconFactory) to do that.

I wished there was something similar to UIKit but officially built and debugged by Apple.

Finally, what is your favourite app?

Twitter’s official application for the Mac is my favorite application. It’s smooth, has good user feedback and responsiveness. Since Loren Brichter left Twitter, it is not maintained anymore. It won’t benefit from features Twitter will add in the future, it might break one day and now it won’t be fixed.