The Hanx Writer app, built with Xamarin, was released today after several months of work. I had the great pleasure to get the scoop on what it took to build this nostalgia-inducing app from a very cool developer at Xamarin Premier Consulting Partner, Hitcents.
Jonathan Peppers is a Xamarin MVP, Senior C# Developer and App Specialist at Hitcents, and will be speaking about in-app purchases, piracy protection, localization, culturalization, and more in his, “If You Can Ship Your app in China, You Can Ship it Anywhere,” talk at Xamarin Evolve this October. Here are some questions from my Q&A session with Jonathan:
Can you please describe the app and how you got the idea?
The app is called “Hanx Writer.” That’s Hanx, with an “X”, but sounds like Hanks as in Tom Hanks. An agency that represents a lot of celebrities contacted Hitcents on behalf of Tom Hanks, who has an interest in collecting vintage typewriters, but also regularly uses an iPad. He wanted an app that made him feel like he was using a typewriter; he wanted that nostalgic feeling, but to still have the app function as a word processor to send emails, write letters, that sort of thing. So, we built an app that feels, looks, and sounds like a real typewriter for iOS.
How long did it take you to develop it?
It’s been about 5 months. But a lot of that time was refining and I was not working full time on this. My younger brother, Nick Peppers, also worked on the app. He did the iOS layouts and some of the UI stuff. There were 2 of us that committed code, and we also have a designer, Adam Diestelkamp, to do the cool graphics and a 3D artist, Matt Lester, do some of the 3D Models.
Tom Hanks basically said, “I want an app like this,” and you wrote it?
Yes, basically. He really just had the concept for the app, but our team took the idea and had to figure out how to translate the typewriter onto a flat screen. What things do we make like a real typewriter? What things do we make like a word processor? People are used to doing a copy and paste, so we didn’t want to get in the way of that. People know how to use word processing, but we still want to provide that cool vintage feel.
That was one of the reasons we chose Xamarin. We now have the option to share code with other platforms, so we’ll look at iPhone next and see if it makes sense there, and Android after that.
What API’s are you using?
We used iOS TextKit for entering text and saving. You can also go beyond the end of the page, and you can copy and paste and it splices it by page automatically and word wraps. There is a lot of text processing work going on in this app.
There are many items in the app that move around, the page flips in and out, and the keys dip when pressed. The keys need to look just like a real typewriter key when pressed down, for example. I use a lot of CoreAnimation for these effects.
I also used NSKeyedArchiver to save and read rich text.
Did you use Shared Project or Portable Class Library (PCL)? Why?
Parts of the app are in a PCL. We are using MVVM so all of our View Model classes are in a PCL. The app does have a lot of native iOS API calls, so these are not in the PCL. I prefer PCL over Shared Projects. I just get a better feeling passing around the same DLL that I know always works. I feel #IF can easily be abused with a developer using it too freely.
Anything else you want to tell us about your app and the experience?
It was definitely a cool app to work on. In the beginning, we tried to get a solid concept. All we knew is we were trying to make a typewriter. We really re-iterated and prototyped and added some different concepts along the way. It was fun to work on and I think it was a great choice to use Xamarin because we were able to complete development quicker.
To learn more about Hanx Writer, join @TomHanks for a live Twitter Q&A online this morning:
— App Store (@AppStore) August 14, 2014
And to learn more about building apps with Xamarin, come see Jonathan Peppers present at Xamarin Evolve 2014.