Who are you and what do you do?

I'm Marthin Freij, a 31-year old developer from Sweden and one of the two guys at Amazing Applications.

My first contact with computers was when I got a used Commodore 64C on my 7th birthday and a huge bunch of tapes with pirated games. My mother, who was a 24 year old poor single mom at the time, bought it from some guy she found in the classified ads in the local newspaper. I loved playing games on it, especially The Great Giana Sisters, but I also found the code examples in the back of the manual very interesting, which I copied character by character without knowing what I was doing. Now, 25 years later, it's kind of amazing that I work with this stuff.

My first real contact with programming was a few years later when I bought a used Compaq 16 MHz Intel 80486 machine from one of my mom´s old friends. My intention was to play games on it, even if I told my mother I needed it for schoolwork. It turned out to be to slow for games, so I started to look into web development instead. I helped everyone with building webpages almost for free. One of my greatest sources of inspiration came from a guy in my own hometown called Jimmy Poopuu. On his site, Kishiro, he made the most beautiful innovative web designs I've ever seen back then. Me and Jimmy, who had the same social background and interest in computers and music, became friends and today we are the founding partners of Amazing Applications.

So, to make a long story short, I started with web development back in the mid 90's with HTML, Perl (I loved Matt's Script Archive), ColdFusion and Classic ASP. I was fascinated by Internet and the new ways to communicate with people, so I built two communities (think Facebook lite) together with some friends. In 2000, when I graduated from high school, I moved to Stockholm and started at a small consulting firm. Since then and to last summer I've been working mostly within the Bank and Finance sector, building Internet banking for a Swedish bank called Ica Banken and been systems architect for some of the biggest news-sites in Sweden.

At the moment I'm working with Amazing Applications first client, a startup from Sweden called Njuice. Njuice collects links that people share in social networks and rank them by how viral they are. In that way they can get a pretty good snapshot of what's happening on Internet right now. The service will also learn what you are interested in and create a personalized newsfeed for you. We are currently helping them with an iOS client for iPhone and iPad.

How did you get started in iOS development?

Amazing Applications started as a creative free zone for me and Jimmy. I had been to WWDC two times and thought it was time to build my first app. My problem is that I always dream about doing the big things which takes tons of time and sadly, for that reason never gets released. So for this one time I decided to scoop down as much as possible. My idea was to use local notifications in iOS 4 to update the badge of the app icon and let it represent the current week number, since we are crazy about week numbers in Sweden. So I contacted Jimmy and asked him to do an icon for me. Jimmy, who had been on paternity leave, was starving on creative inspiration at the time and extended his scope and designed the whole app concept, interaction design and interface design. Wkly was born and so was Amazing Applications. Wkly got featured by Apple on the New & Noteworthy list and we now have a comfortable amount of loyal users.

Both me and Jimmy loved to work together and we immediately started to look for new projects to do together. We both wanted to build an iPad app (we tried that for Wkly, but it didn't work out) and Jimmy was pushing for building a vegetarian cookbook, since we are both vegetarians. Jimmy's girlfriend, Susanne Möller, was following the vegetarian blog Green Kitchen Stories and we fell in love with their beautiful photos and delicious recipes. Jimmy contacted them, in english because we though they were located in California or something, and was surprised when they replied in Swedish. It turned out that they were located in Stockholm as well! So we started to work with them and the result was Green Kitchen, an inspiring source of organic and tasty vegetarian food. Green Kitchen has been a great success so far. Besides being mentioned in international press we have been featured in the App Store world wide for four weeks now, most recently in the Get in Shape and Go Green campaigns.

What does your computer and workspace setup look like while developing?

Over the years I have mainly worked on hardware that is provided by the client, so I have always tried to have as portable personal gear as possible to bring back and forth to the customer. I have went through several 15 inch MacBook Pro's and my latest computer was a 13 inch MacBook Air (2.13 GHz Intel Core 2 Duo, 4 GB 1067 MHz DDR3, 256 GB SSD) which I hook up to LED Cinema Displays (one 24 inch at the Amazing office and a 27 inch at my home office where I send most of my time). Then I use the standard stuff, a wired Apple keyboard and a wired Apple Magic Mouse. In addition I use the small Companion 2 speakers from Bose, a 1TB Time Capsule for backup (in addition to Dropbox) and maybe ten different iPhone/iPad/iPod Touch/iOS combinations for testing.

When I bought the MacBook Air, my plan wasn't to develop full-time on it, but it turns out to be really, really good. I will probably go for an updated MacBook Air as my next computer rather than an iMac or a Mac Pro.

What are your favourite Apple iOS API's to use within apps you develop?

Being relatively new to Cocoa development, I must say I love Cocoa in general. In most of the cases, you can really tell that Apple sees Cocoa as an interface, just like their hardware and software. Sometimes it feels like they have iterated over names, signatures, interfaces over and over. I think the interaction between developer and machine is strategically important for Apple. If I someday get to work for Apple, I think my dream position would be in the Cocoa Frameworks team.

I really like Core Data and how simple it is. I have used several .NET-based ORMs before, like LINQ to SQL and NHibernate, and I think Core Data is maybe the easiest of the three. I love how everything fall in to place with the data model, NSFetchedResultController and the new concurrency support in Core Data. Unfortunately Core Data falls short on querying. It do happens that I get frustrated and long for LINQ or HQL. .NETs LINQ/IQuerable in general are really interesting stuff that would fit nicely into Apples development workflow.

Another area that I think has made iOS more mature and powerful is the introduction of blocks and GCD. Writing concurrent code is really simple these days.

And of course I love UIKit. It's a really straight forward model that is easy to learn, fun to work with and with iOS 5 fairly easy to customize.

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

I do most of my development tasks in Xcode. When I started to look at Apple development, Xcode 3 felt very awkward. Mostly because it was different from what I was used to. But now I really like Xcode 4. Sure, it's been buggy, but I think it getting better and better with each release. The Xcode team does a great job right now.

Besides Xcode I use the following software mostly:

  • Coda for simple web development tasks.

  • AppViz 2 to keep track of our sales, comments, rankings etc in App Store.

  • Keynote for presentations and communicating ideas visually with Jimmy.

  • Mail for all my project management tasks and contact with clients. A really simple mail client with good search capabilities beats most of the project management systems out there.

  • Spotify for a constant stream of punkrock through my Companion 2s.

  • Pixelmator for doing a bare minimum of design work (in my world that is measuring distances between objects in Jimmy's sketches).

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

I try to go to WWDC every year. I've been there three times and I think it's the best and most inspiring way to get a quick update on all the new stuff. And it's a good way to connect to other developers as well. I found out that I love California. Me and my girlfriend Viktoria stayed for two extra weeks last year and tried to see as much as possible by car. We visited my American relatives in northern California and had a great time there.

The rest of the year I try to visit as many local CocoaHeads meetings as possible, read the documentation and look up stuff at Stackoverflow.

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

One really big thing I miss in the whole app eco-system is the possibility for developers to connect with their users through the App Store. I love the comments on our apps but it's frustrating to not be able to answer questions if there are any.

Other areas of improvement would be the querying support in Core Data as I mentioned earlier and I still don't think Apple has nailed notifications in the best of ways yet. The lock screen is such a waste of pixels right now.

The ability to update the app icon (like the built in calendar app) would make Wkly a much better looking and more useful app.

Finally, what is your favourite app?

I don't use so many apps, but the few I use, I use a lot. Except the built in ones like mail, calendar and camera I use Tweetbot, Remote, Instagram, Spotify and iBooks a lot!

Stockholm is a really inspiring place for developers and startups right now. We have a lot of great creatives and developers here that do amazing stuff, Wrapp, Spotify, iZettle, ReadMill (now based in Berlin) and Toca Boca just to mention a few. And Njuice of course, the startup of all startups! ;-)