Web -> iOS

I recently started developing for iOS and I thought I’d write this short post on it. I first learned javascript/web development through DevMountain in January and was working some freelance gigs when I became enticed by iOS. Among developers it held a little more prestige, plus it had a higher starting salary so I was excited to learn it and develop my first app. I mean, I loved javascript and kinda believe it will take over the world one day with its many inciting, delicious, and easily accessible libraries. All with their many-fold tutorials and code snippets found on stack overflow for achieving virtually ANYTHING imaginable.

Nonetheless, I wanted to learn iOS and if you’ve ever had similar urges here are some pointers to clear up misconceptions answer some questions, and make general comments about the difference between iOS and web development.

1. What makes iOS more difficult than web development? #

Both are difficult. However, in addition to dealing with traditional development problems, those that choose to develop within the iOS framework must also have to deal with the expectations Apple has put in place. The best way to describe it is if you imagine that you have begun building a car from scratch. With web development you have your option of multiple different engines, tires, and windshields etc…. each with its own manual and you can pick and choose which one you like best before you start. However, if you start to develop for iPhone you have only 1 engine, 1 windshield, and 1 set of tires that Apple has provided for you. Some of the pieces have very specific instructions for you to follow too. In Apple’s car to start the engine you must clap both hands on the steering wheel, tell it how many people are in the car, if they are male or female, and also the final destination of your trip or else it won’t start. In my opinion, that’s the hardest part about iOS, just learning how to develop in the manner which Apple wants you to develop

2. Learning web development before iOS. #

Learning web development first will allow you to understand some fundamental programming methodologies. Really any sort of analytical learning will prepare you well for iOS development. So would I recommend learning how to develop for the web before learning iOS? Of course! Are people that skip web development and go straight to iPhone sub-par iOS developers? Not even close! In learning iOS it’s probably more important to understand core computer science principles like class inheritance, data types, and the “Model View Controller” structure none of which are necessary for web, but can be applied when needed. Most of my iOS mentors have never developed for the web at all and overall, I don’t think it matters which one you learn first. However, if you have never developed before and are new to programming I do think javascript is an easier language to start with.

3. Front-End Web vs iOS #

The existence of HTML and CSS is awesome… and iOS doesn’t use anything even close to those languages. So if you think they will translate over, think again, because they have their own system for displaying content on the screen. They even have multiple ways in which you can define where it will be displayed and if you’re used to one style, but work with someone that uses the other style it will be difficult to work together. Here is a link talking about the differences. Basically “display centric” development and responsive web design is definitely easier with CSS, but*. However, iOS does have one bonus point in that the devices used to view your iOS apps are the same so you don’t have to worry about things like different web browsers, screen sizes, and the like. All said and done… visual development is easier for the web.

4. Entrepreneurs looking to do MVPs #

Doing a web app in Angular/Ember then converting it over to iOS/Android/Blackberry/WindowsPhone/WhateverPhone via Phonegap is going to be WAY more time and cost effective rather than spending time in developing specific applications for all those other platforms. Rather than hiring developers for each mobile platform, spend that money on marketing (my humble opinion) and wait until you’ve really nailed your solution to start building device specific apps.

5. Swift vs Objective-C #

Remember the example I used above about the car (see the section titled “What makes iOS more difficult than web development” above) isn’t the language, but rather the restrictions and requirements Apple inherently has. Therefore, the actual language in which you code is not the most difficult part, but rather the framework.

Those are my initial thoughts. If you have any other questions about this just send an email to johndangerstorey at gmail dot com or send a lil ole tweet in the direction of @johnDANGRstorey. Good luck learning and long live the mighty coder!


Now read this

The Costs of Making it Happen

As you most likely know I’ve started building my own tiny house in the back of a FedEx truck I adoringly call the Make it Happen Wagon. I’ve decided to follow the pattern set by Thoreau in Walden This blog post is to give a brief... Continue →