My mind grapes


Popovers. Not only are they a super-tasty pastry, but they’re also a really cool tablet-only UI element.

If you’ve ever used an iPad, then you’ve almost undoubtedly seen popovers before. But just in case you need to refresh your memory, here’s what they look like:

– Popovers are an iPad-only UI element.
– Usually activated by tapping on some element on the screen.
– They can be used to either display information for a user, or to gather information.
– They can be pretty much any height/width as long as they are not larger than the tablet’s screen.
– Popovers are more lightweight and cumbersome than a modal view that takes up the entire screen.

Bam! Pole!:



Do you need your iOS application to allow users to swipe left and right to change pages? Then a UIPageControl element might be just what you need! Dots at the bottom of the UIPageControl give a visual indication of the number of pages open, as well as the currently selected page. Fun!

You can find examples of this user interface element all over iOS, including switching between open pages in Safari and switching between pages of applications in the iOS home screen (fun fact: the iOS home screen is actually an iOS application itself, and it’s referred to as “Springboard” in the iOS code).

An Example:

And a pole:


Ah, UISegmentedControl. When horizontal pixels are at a premium, you’re always there to help us maximize the number of similar controls we can display.

There are a few different styles that UISegmentedControl can be displayed in, and the basic idea is that we:

– Use UISegmentedControl to group together buttons that are closely related.
– There are always at least 2 segments in a UISegmentedControl, and at least 1 segment must always be “selected.”
– UISegmentedControl elements are always displayed in a horizontal manner, and are usually used for filtering within a view.

Here’s some examples of the different styles of UISegmentedControl:

And, of course, the pole:

There are two main techniques for deleting UITableViewCells (rows of data) in iOS.

One way is to have the user tap and “edit” button, then present them with the controls to delete items. An example of this is the Safari bookmarks editing feature:

In this example, you have to first tap an edit button to enter “Editing Mode.” Then you tap the red icon that appears on the left side of the cell you want to delete. Then you actually tap the “Delete” button to confirm the action. It’s 3 steps to delete a single item, but it’s obvious that the functionality exists.

The second way is to allow the user to swipe on the UITableViewCell to remove it:

For this functionality, you must first swipe on a cell, and then press the “Delete” button to confirm. Only two actions, which is a little bit more elegant. However, there is no indication given that swipe to delete functionality is available, so the user might get confused how to delete items in the table (or if the functionality is present at all!).



This week’s UI Element is one of my favorites, the UIActionSheet!

You can use the UIActionSheet to:
– Present the user with options on how to proceed in the application. (ex: an “Export” button might prompt the user on where they would like to export to. Facebook, Twitter, Email, etc)
– Confirm a potentially dangerous action. (Are you sure you want to delete Jane McGee from your contacts list?)

The UIActionSheet often presents the user with a title message, but this is not required.

Here is this week’s pole:

And, an example from the internets:

New Directions

The following domains now redirect to this blog:

iOS Analytics Platforms

Over the last couple of weeks, I’ve really been digging into a bunch of different analytics solutions for iOS. I’ve been kind of underwhelmed by the information available on the internet though, and thought that the information that I’ve found might be of use to somebody else who happens to be in my situation in the future.

First off, the best *list* that I can find of Analytics is available here. I gave each of those solutions a look, in addition to a couple others, and this is what I came up with.

Winner: Google Analytics

I initially disregarded Google Analytics because the platform is built for webpage analytics and is not iOS specific. So the first awkward step is to create a “fake but descriptive” web page name for your iOS application.

– Highly customizable.
– Able to auto email customized reports.
– Customizable dashboard.
– Since it’s Google, you don’t have to worry about the service disappearing.
– Free.
– Sure to be updated and enhanced in the future.

– Certain metrics do not apply to iOS at all.
– Updates only happen once a day. Not a huge deal once things get rolling, but it makes testing difficult.
– Graphs and charts do not display on iDevices.
– Default

Runner Up: Flurry

I *almost* went with Flurry as my analytics platform. The Analytics portion of the site is super clean and responsive. And the stats update pretty regularly (every few hours or so). The only reason I didn’t go with Flurry was that events have a maximum number of parameters that they can keep track of (100ish) and I needed to keep track of much more than that.

– Free
– Build specifically for mobile applications. And it shows.
– Updates several times a day.
– Fairly easy to implement on the code side.

– Limit on custom events and event parameters.
– Somewhat limited on advanced metrics.

Second Runner Up: Localytics

If Flurry and Google Analytics aren’t your cup of tea, the only other platform that I found to be worthwhile was Localytics. Again, the layout is clean and because it’s based around mobile applications, so there’s no unneeded information cluttering things up for you. The support is also excellent – I had a really good conversation going with these guys and they seemed genuinely interested in my feedback.

In the end, though, they didn’t work for my purposes because of the same limits on custom events that Flurry has.

– Free.
– Clean layout.
– Great support response.
– Supposedly instant

– Limits on custom events.
– Servers were going slowly for the first few days I was using the service. I would imagine (hope) that this will improve, though, as time goes on.

The rest:

Mixpanel: Looks really really really cool. But hostly, $150/month (minimum, after a certain number of events) is way too expensive. Especially with so many free alternatives out there.

Admob: Seemed very focused on Ads (unsurprisingly, I guess). Also, does a lot more than just mobile tracking so finding information on their site was a pain. Pass.

AppClix: Requires you to use their product to gather data and then store it on your own servers. According to them, this is the only way to be in compliance with Apple’s rule that you can’t send device data to a 3rd party. In practice, it seems like it would be more work than it’s worth to me.

Bango: Bright pink banner, demo video has static and is at a low resolution, costs money after 30 days. 3 strikes and you’re out.

Medialerts: Seems ad centered. Plus, the poorly designed site doesn’t make it obvious what the metrics part of the site looks like or where you go to download the library. In my opinion, nobody should waste time on a site that makes getting started such a hassle.

Capptain: Seems very new. And I don’t like the fact that you have to sign up for an account before you get any useful information about what their analytics look like or how the implementation works.

Tag Cloud