iOS Mashup of the Best Links and Tutorials

Mashup of some of the Best Tutorials and Links for iOS/XCode Development

This will be the weekly updated list of some of the best tutorials and links that I can find on iOS Development.  I figured I’ll just save someone out there the time of searching for endless sources of old and outdated information.  Let me know if you find a quality link that others might find relevant and useful. Remember this is a “living document“.  I will periodically come back and update it withe the latest links that I find useful.


Awesome Tutorial:

View Controller Transition Animation:

Great Reading Source:

Swipe and Hamburger type menu using Swift:

Custom control in Swift:

Swift Constraints with Visual Format:

Property List (plist):

Avatar Pie Slice:

Core Motion Gyro and Accelerometer:

Using Node.js and Websockets to build a chat service:
(Related to the backend processing of iOS apps)–net-34482

Push Notification:

Sibling Horizontal Scrolling Views:

Login Screen:

Sliders/Hamburger menu:

Random Objective-C Tutorial that I found helpful:

!! Workspace and Projects !!

!! MVC – Model Object !!

!! Automation for Apps !!

!! Creating Unit Tests with Xcode !!

!! Library Sub projects and Submodules !!

Install RestKit as a Git Submodule

Using CocoaPods to Modularize a Big iOS App

Sometimes you get some unexplained errors in building.  This is how to fix that:

!! Modify since Precompiled Header was Built FIX !!

  1. Need to clear the derived data cache
  2. $ rm -rf ~/Library/Developer/Xcode/DerivedData
  3. Xcode -> CLEAN
  4. Xcode -> BUILD


!! Autocomplete !!

!! Creating Collection View Cells – Multiple cells !!

Use this for possible calendar grid:

Swift Keyboard appear

GIT and iOS Development:

Another Swift Tutorial:

Deserialize JSON to objects:

AutoComplete TextField:


Type Ahead:


Best Practice/MVC:

Asynchronous Image Loading

Dependency manager:

Clear CocoaPods cache, re-download and re-install all pods

rm -rf “${HOME}/Library/Caches/CocoaPods”

rm -rf “`pwd`/Pods/”

pod update

Install CoCoaPods on a workspace/project:

Localization and Internationalization:

Mods to EZAudio:

Provisioning a device:

Create project using only xibs/nibs:

Important if you have no desire to use Storyboards.

PODS/Frameworks used:

URL/Rest calls

Xcode 6:

Issues with Xcode 6 and CocoPods

Switch command line tools use:

$ sudo xcode-select -s /Applications/

Custom Configuration file:–mobile-18324

iOS Human Interface Guidelines:

Avatar/Pie Slice UIBezierPath:

Loading NIB (.XIB) file:

Animating circular UIBezierPath

Recreate Skype action sheet up:

Animation game with Explosions!

To join the session, please click on the link below within 30 minutes of the session start time.

More random GIT stuff:

git commit -a -m “MOB-0000 Some text

Git client for Mac:

Detecting Images in UIWebView

Collection View Calendar

Long Gesture w/Move

Mesh Transforms

Color Selector:

Great links for general learning of iOS techniques:

YouTube guy is really good!!!

Learn Objective-C

Core Text:

Fine grain control of text placement.  Magazine layout.

iOS and Sinatra API

Navigation Controller:

Bubble Images with cap insets


Watermark Image:

UIImage *backgroundImage = [UIImage imageNamed:@”image.png”];

UIImage *watermarkImage = [UIImage imageNamed:@”watermark.png”];


[backgroundImage drawInRect:CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height)];

[watermarkImage drawInRect:CGRectMake(backgroundImage.size.width – watermarkImage.size.width, backgroundImage.size.height – watermarkImage.size.height, watermarkImage.size.width, watermarkImage.size.height)];

UIImage *result = UIGraphicsGetImageFromCurrentImageContext();


Rounded Images for Chat and Profiles:

Slide Out Menu:

UITableView – with sections

Snap Behavior View:

Dynamic Buttons

Wrapping Buttons Auto Layout:

Subclass UIView

Gradient View Layer:

Dealing with Gestures and Taps with Subviews:

Swipe limiting to pixels – Scroll up and down hiding panel

Background Tasks:–Day-23%E2%80%93Using-Background-Threads

Animation PNG:

Pan Gesture


Single Tap on View:

Slide Out Navigation

SEARCH -> ios7 navigation controller multiple views -stackoverflow

View Controllers:

Control multiple views

Best example below.–mobile-14052,_mvc/

Pass data between view controllers

Custom TabBar – NavBar

Color Icons – Tint Color:

Custom Transitions

Custom Tab Bar Notification:

Notification Center:

Send SMS Text Messages:

Fetch Parse JSON:

Import Contacts using Address Book Framework:

Add Search Bar Table View:

Splash Screen:

Badge Application Icon:

AppDelegate Global Variables:

SEARCH -> ios global variables appdelegate events -stackoverflow




Java + Obj C

Nice Stuff:

Slide-Out Navigation Panel:


XMPP and iOS Tutorials and stuff:



Objective-C wrapper for video:

Format and internationalize a number and display:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];

NSString *numberString = [numberFormatter stringFromNumber:@(1000000)];

_salesCountLabel.text = [NSString stringWithFormat:NSLocalizedString(@”Yesterday you sold %@ apps”, nil), numberString];


ViewController methods with basic explanations of when to use:


Whenever you are adding controls to a view that should appear together with the view right away, put it in the viewDidLoad method. Basically, this method is called whenever the view is loaded into memory. For example, if your view is a form with a couple of labels, you would add the labels in this function. The view will never exist without those forms.


You should use viewWillAppear just to update the data on the form. For the above example, you would use this function to actually load the data from your domain into the form. Creation of UIViews is fairly expensive, and so you should avoid doing that as much as possible in the viewWillAppear method. The reason is that when this gets called, it means that the iOS device is ready to show the UIView to the user, and anything heavy you do here will impact the performance in a very visible manner (like animations being delayed, etc).


Finally, you should use the viewDidAppear to start off new threads to things that would take a long time to execute. For example, doing a web service call to get extra data for the form above would fall into this category. The good thing is that because the view already exists and is being displayed to the user, you can show a nice “waiting” message while you get the data.