Listen

Description

Tweet Shoutouts

@iOhYesPodcast Length is fine! More rants!— Rauli Rikama (@raulirikama) September 3, 2015

@iOhYesPodcast I actually have a zip library too (UnzipKit). Don’t let the name fool you, it zips also https://t.co/nDppHOge6Y— Dov Frankel (@DovFrankel) September 4, 2015

@AshtonDev Thanks for the quick PRs to add Mac OS X support to ZipUtilities. // cc @iOhYesPodcast— Nolan O'Brien (@NolanOBrien) September 5, 2015

Note: He actually added Mac OS X Framework, iOS Dynamic Framework, Carthage and CocoaPods support!

Note: The conference Ashton spoke at that Darryl mentioned is DevWorld. He spoke about designable and inspectable views. Ashton’s slides/code can be found here: https://github.com/Ashton-W/devworld-designables

Discussion

What are some nice patterns or not-so-nice anti-patterns/bugs you notice in iOS apps? How can devs go about fixing those problems?

Nolan notices

Requiring login/signup to use the app

My wife’s personal pet-peeve
Old Fab.com app vs Zappos app

Suboptimal table views

Stuttering

Get off the main thread: includes networking and UIImage rendering

Content flashing in once it scrolls into view

Prefetch content before it comes on screen: can be easy with table view buffering

Requesting all permissions on first app launch with no context!

On demand prompting
Interstitial

Even better: don’t indicate they will be prompted, rather outline the feature and why it needs the permissions and have the user explicitly ask to grant permissions (Periscope does something like this )

Example: (User selects post a photo) Prompt says something like: “A picture is worth a thousand words. We’d like for you to be able to share any of you iPhone’s photos. By enabling us to access your photo library, you can choose from photos you already have to share with friends and family.” Below is a empty checkmark with text “Enable access to photo library” and below that is a “Close” button. Hitting the checkmark will ask for access and user knows exactly why they were prompted. Hitting close will save the setting as “on” or “off” based on if the checkmark was successfully checked.

Chad notices

Social login (FB/Twitter) only to ask for username/password/email afterward anyway
Bad pull-to-refresh implementations (Apple, Twitter)

Darryl notices

Lack of accessibility
Not conforming to the design language of the platform (Note that I didn’t say HIG)
Re-inventing system-provided controls/mechanisms for the provider’s gain, not the user’s
Facebook/Twitter/SocialMediaX sign-in as the only option
Crappy validation. Example: + is perfectly legal in email addresses
Collecting address book information to build a social graph

Picks

Chad

Reverse-Engineering iOS Apps: Hacking on Lyft
Recall - new iOS Game by Chad

Darryl

Protocol Oriented Programming in the Real World - Matthew Palmer talks about his experience rewriting Locksmith to be Protocol-oriented.

Nolan

GitHub - nixzhu/Proposer - Proposer - Swift 1.2 project for asking for permission
Racing the Beam - By Nick Montfort and Ian Bogost

Platform Studies - MIT Press

Alternative show title suggestions

Chad’s Right
My Two Favorite Words
I agree with Chad
Stop Crapping Up Your Apps