Learning iPhone Development

Every time I’ve started to work on a new project I’ve been fortunate enough to have the opportunity to learn a whole new set of technical skills. At Frogmetrics it was Python, Pygame, Maemo Linux, and the world of early stage mobile performance constraints. In the early days of JumpPost and Hyperpublic it was web development – Ruby, Rails, Javascript, server administration. As Hyperpublic’s data platform grew and we moved on to join Groupon it was higher performance/scale data processing tools like Storm, the Java ecosystem, and a variety of databases and data processing techniques. And this time around, as we’ve been getting started on Wildcard, I’ve picked up iOS development, in order to tackle the problem of creating the fastest way to interact with the internet on your phone.

So far it’s been good times. Apple has created a great platform that makes it possible for developers to create beautiful, fast, polished applications that live up to the promise and expectations created by all of the great apps you interact with every day. However, getting up to speed, getting comfortable, and getting confident with iOS development has definitely been a different process and different challenge than getting up to speed on some of the other mobile, data, and web challenges that I’ve tackled in the past – in particular, the process has been more isolating than usual.

Why is learning iOS development more isolating than web, api, or data processing based development? Because it is just as much an art as it is a science, and as many artists will attest – the creativity must come from within.

When you’re trying to learn science you can surround yourself by the reference material of a previous generation of scientists – in this case books, stack overflow posts, IRC channels, github repositories. The actions that you’re trying to take when you build a web application are largely mechanical. You read in a request, interpret it, load data from a database, and plug it into your response. The interesting code you write is your business logic, and you let the framework handle the rest. You can always piece this together via all the available reference material, and if you’re confused as to whether you’re doing it “the right way”, you can always fall back to your basic knowledge of the internet and databases (HTML, CSS, SQL). Failing to understand all of Rails doesn’t mean that you’ll fail to produce a web application that does what you need it to.

But when you’re trying to learn an art form, equal parts design, user experience, and engineering – and the bar for an impressive user experience is set really high – there’s nothing to fall back on. Implementing the business logic is still a requirement that should be fairly straightforward, but creating beautiful UI, custom controls and actions, transitions, and animations are not something you can follow directly from a blog post or stack overflow thread. Programmatically creating and keeping the UI up to date based on a series of gestures, user actions, and external notifications within the rules and frameworks that Apple has made available is not something you got experience with doing anything else. There are a series of great meetups, events, and a bulk of material available online and in print to try and teach you the basics, but when it comes down to implementing the experience that you want for your users, the reference material won’t help. You and your team are on your own.

That’s why I believe that a more effective way to learn iOS development is the mentor-mentee relationship. The ideal pairing is a developer with good fundamentals and a confidence that they’ll be able to pick up the basics of any technology, working closely with someone who’s gone through the trials and tribulations of learning the nitty gritty details, design patterns, various techniques for impacting the “art form” of iPhone development. I think pair programming is always a good idea when reasonable, however in an early stage startup it’s not always possible due to limited resources and developers needing to split responsibilities across skill-sets. However in the case of iOS development, I believe that as much pair development as feasible in the early days is the most efficient way to learn.

Now that I’ve gone through the struggles of getting myself up to speed over the past few months, I’d love to bring on an aspiring entrepreneurial engineer to work closely with me to own mobile product development at Wildcard. If you believe in our vision, and you see yourself as someone who wants to learn mobile development, and one day start your own tech company, then I believe this is a great place to learn. Please get in touch.

iPhone Dock

iPhone Dock

 

I was talking with a smart dude yesterday who told me that people are very lazy when it comes to choosing what tool to use to accomplish a given task. They’ll generally opt to use what they’re comfortable with, and what’s immediately available to them, rather than using just a little bit of extra effort to find the more reasonable tool for the job.

In the case of iOS this manifests itself in users choosing to use the app that is sitting on their homescreen instead of scrolling to a separate screen, opening a folder, and choosing the app that will make their life easier. And going one step further than the homescreen, you would assume that users would be obsessive about what apps they give space to on their dock – the four apps that sit anchored to the bottom of every screen.

But while I’ve anecdotally observed that people are decent about organizing their homescreen, I’ve found that either out of laziness, forgetfulness, or naivety, users are less likely to organize the shortcuts in their docks. I myself took two weeks after upgrading to iOS 7 to realize that I don’t even use the baked in Music app very often, yet I was dedicating one of my four shortcuts to it.

This morning I gave some thought to what I was using frequently, and what I needed access to quickly, and did a little dock reorganization. Out was Music, and in was Google Maps – which I need quick access to sometimes if I’m sitting at a red light, or stuck in traffic. Swapping out Mail for Mailbox is something I did on day one. And Chrome for Safari is an improvement for me because I appreciate sync with my desktop browser within Chrome. I thought about iBooks, as one of the most frequently used apps on my phone, but I don’t think I ever need lightning quick access to it. Camera would be another likely candidate.

Anybody using any “dock hacks” out there? Any outside of the box apps or tricks which are invaluable to have quick easy access to from every screen?

Why I’m excited for Square vs Verifone: The Revolution

Normally I don't like it when startups describe themselves as, "Trying to revolutionize X." Everyone is trying to start a revolution, and very few companies really end up affecting massive revolutionary change in the world. Instead, it may be more appropriate to be honest and say that a startup is, "Trying to carve out a small piece of market X." After all, a small piece of a large market is generally good enough.

In the case of Square, the new mobile credit card processor from Jack Dorsey, I really do believe that there is major potential for a revolution brewing. I'm even more excited that Verifone rushed out PAYware mobile to compete, and force the pace of innovation and competition. The revolution that I'm looking forward to however has nothing to do with the ability to accept credit cards from a cell phone however. Instead it's about the changing paradigm of paying for things, and organizing all the information associated with the purchase.

Consider this lists of wants as catalysts for the payments revolution:
  • No paper receipts – why would I want a 3 inch piece of paper when I buy a soda?
  • Searchable online receipts tracked at the item level and not the merchant level.
  • Centralized online transaction manager containing said receipts so that you only have to go to one place to organize all your spending.
  • Automatic expense report generation and tie-in.
  • Electronic submission of expenses and receipts to IRS.
  • Don't have to carry 6 different credit cards.
  • Don't have to carry even 1 credit card.
  • Ability to pay anyone, anywhere.
To me the mobile payment hardware war that is about to be waged behind Square with it's smart founders and investors, and Verifone with it's enormous pockets and commercial connections, will be less about who wins the ability to accept payment on the iPhone, and more about the race for building a platform that can support all of the above from the consumer side. People use credit cards because they're convenient, but there's been very little iteration in the area for many years. Now all of the sudden there are new conveniences that customers are looking for, and whichever vendor allows businesses and individuals to provide their customers with the greatest level of convenience will have a good chance of creating a real revolution.

iPhone Proximity Sensor Mystified

Apparently my buddies and I missed it when Steve Jobs showed off the proximity sensor during the unveiling of the iPhone 3G, because we recently spent about 30 minutes sitting around the table at a bar trying to figure out how the hell the iPhone turned off the display when the phone approached your ear.

Rather than googling for the answer, we took turns making conjectures at how it may work. Summary of the dialog follows. (Names have been changed to protect the innocent.) 

Warning: Reading on will rob you of a few minutes of your life that you’ll never get back.

Mr. Red: Ambient Noise.
Mr. Pink: What?
Mr. Red: The iPhone detects ambient noise in the room, and as you move it closer to your ear the ambient noise becomes less audible, and the iPhone shuts the display.

Mr. Pink: There’s a temperature sensor built in, and as it detects to warmth from your face, the display turns off.

Mr. Yellow: SONAR!

Mr. Black: Infrared Light.
Mr. Yellow: Yeah right, that’s almost as ludicrous as SONAR.
Mr. Black: It just detects quick movement (…starts shaking phone rapidly with no effect.)

I believe in the end we decided to google it. Apparently there is an infrared sensor built in right around the speaker. Conversation then moved on to which gym class games we missed the most. Nominated contests included kickball, dodgeball, speedball, kill the man with the ball, smear the queer, running bases, pickel, parachute, ambulence, tennis baseball, and others.

Pastedgraphic

How to Eliminate Desktop Speaker Interference From Your IPhone

Wanna hear the most painstaking noise ever? Turn your desktop speakers up to a reasonable volume, put your IPhone on the desk near them, and then call your IPhone number. Prepare for agony.

Many people who place their IPhone on their desk near speakers have complained about this noise. Well, there’s a simple way to get rid of it without leaving your cell half way across the room while you work.

1. Make a little tin foil bed the size of your IPhone.
2. Put said “bed” on your desk.
3. Place IPhone in “bed.”

That’s it. I’ve included a picture of my bed below, but I’m sure many of the artistic among you can definitely create better ones. Feel free to share pictures of yours.

Img_0070