Programming for iOS from the point of view of a python developer

I gave a talk at Prague's python user group meetup. It was about my experience of learning and using Obj-C to develop iOS apps as a python developer. You can check out the recorded video below. Slides are on Speakerdeck (I tried to embed them but Posterous doesn't play nicely with Speakerdeck).

A huge thanks to Jiří, Aleš and Jakub for inviting me and everyone else who attended.

Why you should create your app for iPhone first

We have a wide range of clients and projects going on at Wildfuse at any time. If we're builiding multiple mobile clients as a part of the same project, we always recommend to have the iOS application built first. It's not because it's faster or cheaper. There is one simple reason for it:

Influential people have iPhones.

By influential, I mean people who can help you. Investors, advisors, bloggers, connectors. People with a loud voice, opinion makers, passionate people who can spread the word. You will want to show them the progress you're making first.

There's nothing more to it. It's simple, but it works. Stick to this rule, it will help you.

Beginning my online education

The world of online education is booming right now. It feels like we're at the beginning of a major disruption of higher education. Although I don't think this will put the top universities out of business (but they might have to transform to more of an R&D institutions rather than "only" providing education), I believe the less prestigious universities do have a problem.

The whole boom started with the excellent Khan academy. Salman Khan paved the way and inspired other people to provide education through a web browser to thousands of individuals all around the world. I too felt a hunger for new information and reading HN just didn't cut it anymore so of course I jumped on board. Here are the courses I'm taking:

  • Fundamentals of entrepreneurship at General Assembly - I cannot recommend this course highly enough. If you're starting a company, spend time going through the lectures. Seriously, it's the best you can do for your business right now. I'll blog about this later in more detail.
  • Design of computer programs at Udacity. This course, together with 3 others, starts April 16th, so you still have time to enroll. Udacity should also provide a Distributed systems course later in the year which I'm looking forward to.
  • Technology entrepreneurship a.k.a venture-lab.org. You can find more about it in Chuck Eesley's blogpost.
  • Human-computer interaction at Coursera. Although it was supposed to start in January, it has been delayed due to some licensing/administrative issues. However Coursera provides a wide range of other topic. I was also thinking about taking the Natural language processing, which started just recently, but that would be overwhelming. I'll keep that one for next semester.
  • I also visit pyvideo.org often to learn about new technologies and techniques. The quality of speakers at conferences differs widely, but the topics covered are very interesting. Similary, I found Google Tech Talks to be ok, but usually the name of the video is much more promissing then the actual talk.
  • There's also MITx, but it's just getting started. There's only Circuts and electronics course available at the moment. I'll pass for now, but I'll keep an eye on them.

These are, of course, all technical. I'm a developer after all. Coursera promises to cover non-IT topics like chemistry or physics later on. For now, you can find a ton of material on diffrent topics on the aforementioned Khan academy.

I'll report back with my opinions about each of these courses on this blog so be sure to follow me if you're interested.

Disrupt - the book

The word disrupt has lost its meaning in the recent years as thousands of tech startups are using it to look cool and hip, as if it would help them to succeed. If you look at new companies pitching their ideas at the TC Disrupt conference, only a minority of them are disruptive.

However, finding industry-transforming ideas isn't all that hard. In his book Disrupt: Think the unthinkable to spark transformation in your business Luke Williams introduces a solid and easy to understand framework how to come up with disruptive ideas. It is applicable to any industry or product. If you follow the steps outlined in this book, you will learn how to formulate a set of disruptive ideas, improve upon them, pick the best and most meaningful ones and test them in the real world.

The book is suitable for entrepreneurs thinking about a new product as well as establishes companies looking for reinventing themselves. It's a book I highly recommend.

Boyscouting

Boy scouts have one rule: "Leave the camping place in a better condition than you found it."

At Wildfuse, we apply this rule to programming all the time. It's quite straightforward. Any flaw in the code is fixed, usually immidiately by the developer who encountered it, regardless if it is he who introduced the error. It doesn't matter if it's just a typo fix or something more substantial like creating a new abstraction. You leave the code in a better condition.

It's obvious this approach has multiple advantages. First, our code is really clean, efficient and highly maintainable. As wine, it get's better with age. Because we often have to touch code written by a fellow programmer to boyscout, all developers have good orientation in the whole codebase of the project they are participating on. Also, I personaly get a pleasant self-satisfaction feeling doing this.

What about you, do you boyscout?

The global power shift

This is the best TED talk I've seen in a long time. At TEDxBrusseles, Paddy Ashdown talks about the ongoing change of power not only between nations and states (from the Atlantic circle to the Pacific circle), but also to and between international and global corporations and institutions.

He also makes a point that because of this global shift, we're interconnected and interdependent and praises cooperation: "In the modern age where everything is connected to everything the most important thing about what you can do, is what you can do with others." Well worth watching.

Steve Jobs on life

From the video:

"When you grow up you tend to get told that the world is the way it is and your life is just to live your life inside the world, try not to bash into the walls too much, try to have a nice family. Have fun. Save a little money."

"That's a very limited life. Life can be much broader once you discover one simple fact and that is: Everything around you that you call life was made up by people that were no smarter than you. And you can change it, you can influence it, you can build your own things that other people can use."

"Once you learn that, you'll never be the same again."

Flaws in Path

Yes, the new Path app is amazing. Everyone's been going crazy about all those smart user interface tweaks that make you smile. You can read about that elsewhere. I on the other hand have some critique. So far I've found two flaws, both visible on this screenshot:

 

Photo

 

First, the app does not recognize and hyperlink links. Second, it does not support national characters (the word with question marks on the screenshot should be "prší"). These are relatively cheap to fix, yes, but with the attention to detail that went in, I'm surprised these bugs are present at all.

On Android market share and lack of developers

Yesterday evening, I attended For Mobile at HUB Prague. It's a regular meeting of local mobile developers. One thing that struck me was the dominance of iOS developers amongst attendees. There were almost none Android devs there.

This obsession with iOS is a common theme here in Czech Republic. There are various reasons for it, e.g. loud advocates, local success stories or historical lack of Android against iOS. This lead to wider iOS adoption not only by developers, but also by clients who were, sometimes mindlessly, ordering only iOS apps.

With the widespread adoption of Android, times are changing. At Wildfuse, we have clients from the Western Europe and overseas and we could see the turn already about half a year ago. It is only a matter of time when the regional media houses, advertising agencies and other institutions core to the business of local mobile studios will acknowledge the size of the Android market. I think it will come in about 3 to 6 months. I'm really looking forward to seeing how the locals will adapt to this market turn, more so with the current lack of Android devs.

If you are a developer playing with the idea of "going mobile", we're hiring. Non-experienced devs can learn from one of the best Android developers in the country. We're also looking for iOS programmers. Don't hesitate to say hello.