Android dev to iOS — week 3

Time passed by. Some lines of code too. Let’s see what’s what.

Crappy things first

TL;DR: Xcode

Don’t use beta

Do not learn in beta. Do not write production in beta.
Forget that word.
Ironically I use Early Access Program of AppCode for coding. Rules are to be broken, heh?

Set up Ad-Blocker

By default, XCode opens new windows with code on double click all the time. You can stop this ’97 web-browsing experience by setting proper behaviour:

They should rename it to Popup blocker

Designer is pain

I am not a big fan of WYSIWYG editors since Macromedia Dreamweaver (which is blasting 10 years ago) and there are reasons for that. First of all, it is more technical — you are not clicking monkey (but coding monkey instead, which is way cooler). It’s more effective as well, having your layouts nice sitting in their XML nodes, without boilerplate code from IDE. After day of winding up components together and using Apple’s very magical “Add Suggested Constraint” button I have to admit — developing layouts is better on Android.

iOS dev = solving first world problems one problem at a time

Editing layout file and having real-time preview (in different densities / orientations etc.) is a way to go. Which shouldn’t be that difficult since storyboards are XML already.

Designer is unintuitive

This grey list goes on and on. At the very end, there is a cup of coffee.. filled up with your tears

Yes, lot of hate about the designer. Since you must design-by-click, every single option that pop into your head is reflected by checkbox in never ending config lists.

And view constraints are taking this config hell into new dimension. Even simple layouts can have dozen of constraints — finding and editing the one that is ambiguous is no fun (I promise).

And it is hard to drag and move component over view controller…

And you need like 27″+ display to use it on a daily basis (which is kindly provided by your employer) Making connections from designer to outlet by dragging is for kids.

Man, the designer sucks (as you can see on desktop web — my hate is no match for size of constraint lists 🙂

Apple, give us some designer’s Designer (or just ask Google guys) or I will make my own, with blackjack…

Not good ~ not bad

There is one thing I noticed — every developer uses different processes / shortcuts to get things done (creating outlet connections, managing layout constraints, etc.)

I found that pretty confusing at first, but as time goes, I can make my own comfort of making things real. Not good for start, not bad for power users.

Good stuff

It rotates!

Screen rotates and you do not care about it (hello Android guys! Hope you’ll take me out for lunch tomorrow)

It has no limits!

You don’t see any of Dalvik’s 65K method restriction because you’ve just imported Support library, Guava and Mortar. No. Such. Thing.

It has no Samsung!

..well, I made my point.

Swift is thing of beauty

I like that language pretty damn much. Still not completely familiar with optionals and casting between NS* and new SDK classes. Nevertheless the language is very powerful and clean (and @joshis_tweets — semicolons are optional)

Bye if(blah==null) conditions. Let’s grow up.

Calling function with parameter names (as seen in Obj-C) supports readability a lot.

As it gets open-sourced soon I hope it will get into web dev soon (or is it already there?)


Lucky to have true professionals (2x Martin, Jirka and David) at work that are kindly helping and saving a lot of curses every day. Thanks guys!

Apart from fighting the XCode’s designer, transition from Android goes pretty well.

Life is good.