
How we built the new Exec iPhone App - mjdipietro
http://blog.iamexec.com/post/36088710407/how-we-built-the-new-exec-iphone-app
======
eps
I'm sorry, but I don't like this UI at all. It looks foreign on the iOS as if
it were designed for some other device and the ported over. Such neglect for
the consistency with a native look and feel is not a "fun experience", it's
really quite annoying.

My iPhone is not an empty canvas for you to drop an arbitrary UI style on. It
comes with Helvetica and a whole bunch of well designed controls. I insist you
use them.

~~~
potatolicious
That ship has sailed a _long_ time ago. Pull-to-refresh, that-slide-out-
navigation-from-the-left, fan-out-navigation, parallax scrolling, all are now
common iOS UI tropes that originated nowhere near Apple.

Personally I hate that back button - it's _huge_ , but that's a pretty minor
gripe in the grand scheme of things. This UI is clean, functional, and its
functionality is intuitive. Pretty decent win, all things considered.

Not to mention at the very core it doesn't stray very far from Apple's
guidelines - it's very clearly built around the standard navigation stack,
uses segmented buttons for radio choices, puts large oversized buttons towards
the bottom of a flow for completion, defaults finishing actions to the right
side of the screen, uses a minimally styled version of UIActionSheet...

I'm struggling to find anything here that hasn't been seen in a hojillion
other iOS apps, or even functionally different than the "standard" iOS flow.
But all I see is a fairly minimal, tasteful skin over the default elements.

~~~
namank
_I hate that back button_

I have never been able to used to the back button or the bluish-gray top nav
bar Apple insists on using. If I ever spend time thinking about it, I feel
like puking, no exaggeration.

But my dislike for the bar is offset by rest of the device.

------
bsaul
Really curious to know why you had to reimplement Uikit uiview subclasses
instead of just extending them and use ib to position them. Drawrect
overriding has always been the recommended approach, and at least you can
position buttons and panes and tableviews using ib , simply changing the name
of the class in IB...

~~~
hboon
I'm a big fan of not using IB because code is easier to read, extract
(constants, functions, component-ize), copy & paste, and version control. I
also build a UIView class hierarchy so I can stash all my view-related code
there instead of putting them in controller classes.

A major reason of using IB is you can position and view their layout visually.
But when you build iOS apps that have (1) custom UI components, (2) uses a
good amount of animation, or (3) have different enough portrait and landscape
views, you can hardly see anything useful when looking at that nib in IB.

NB: re-reading this, I was more responding to Chad's point "Having over 30
screens to program (no Interface Builder here) meant that an overwhelming
majority of the time on the app was spent writing interface code." rather than
why not extending existing UIKit classes like UIAlertView/UIActionShet which
MaxGabriel answered.

------
MaxGabriel
I wish this post had more specifics about the coding or design. As is, it's
screenshots and generic descriptions of difficulty. It would be good to hear
why you made specific design decisions, why you didn't want to use IB,
breakthroughs you had creating custom UIAlertViews etc.

~~~
josephlord
Can you use IB when you have gone for custom UI components rather than the
UIKit ones?

~~~
MaxGabriel
Yes. If the custom UI is primarily imaged-based it is easy to make with a
storyboard/xib. For example, the brushes in iPhoto for iOS are made with a
xib.

------
mvkel
You know it's built this year because of its heavy usage of Proxima Nova :)

Overall, pretty clean, but could definitely be cleaner. I'm seeing four
different button styles with no discernible justification for them.

------
KaoruAoiShiho
This is a great looking app. I'm gobsmacked by all the negative comments in
this thread. Wow. Anyway, nice job.

------
jordanthoms
Funny to see him talking about reading the header files of the built-in
classes to guess how they work - One of the things I prefer about Android
development is being able to easily dig into the source, most of it is easily
understandable and it gives a good authoritative reference.

------
marknutter
Apple has stagnated on pushing their UX design, so more and more developers
and designers are breaking free from the boilerplate objects and creating
their own, unconstrained interfaces that evolve beyond the patterns Apple
established.

~~~
rimantas
Except in this case there is no evolution just different looks. And imho a lot
of wasted effort with dubious results. If you want a good example of
customization done well take a look at Tweetbot (or other apps by Tapbot).
This app? Meh.

------
ianstallings
Is this real? Not trying to be a jerk but it seems kind of crazy. Also I need
a sugar cookie from harlem.

------
MatthewPhillips
For those unaware, Chad Etzel is behind this, founded the much-loved Notifo
(YC backed).

------
codyko
Downloaded the app earlier today. The 'Sign up or sign in' with Facebook
button does nothing. Does this happen for anybody else? If this is a
reoccurring bug you should work to fix this ASAP.

iPhone 5 running iOS 6.0.1

~~~
jazzychad
Yes, this is a known bug for a certain set of users (iOS 6+ with logged in
Facebook credentials in Settings app) - we have shipped a fix today already.
For now the only workaround is to use the "sign in/up with email" flow.

~~~
codyko
Cool, glad you guys are aware. I like the custom UI implementations. Seems
like you guys spent some good time polishing up all of the core animation and
stuff. Nice job!

~~~
jazzychad
yo, just an fyi, we just updated this bug and it is available now in the app
store. one thing you might have to check is go to the Settings app -> Facebook
and make sure Exec is switched to On, then the fb login button should be
functional again in the app!

~~~
codyko
Cool, thanks man. Does exec work in Palo Alto or only the city?

------
maz29
Hey, great write-up. I feel that if you're creating a simple app you can only
get so far with the built-in theming. Custom animations/themes are critical to
make a fun, useful, and simple apps. I would love to see a blog post/tutorial
on this topic.

------
artursapek
So... it's a to-do list and text messaging?

