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.

Thanks!

Awesome Tutorial:
http://www.shinobicontrols.com/ios8daybyday

View Controller Transition Animation:
http://www.raywenderlich.com/86521/how-to-make-a-view-controller-transition-animation-like-in-the-ping-app

Great Reading Source:
http://nscookbook.com/

Swipe and Hamburger type menu using Swift:
http://mathewsanders.com/prototyping-iOS-iPhone-iPad-animations-in-swift/

Custom control in Swift:
http://www.thinkandbuild.it/building-a-custom-and-designabl-control-in-swift/

Swift Constraints with Visual Format:
http://makeapppie.com/tag/constraintswithvisualformat/

Property List (plist):
http://nscookbook.com/2013/02/ios-programming-recipe-13-using-property-lists-plists/

Avatar Pie Slice:
http://blog.pixelingene.com/2012/02/animating-pie-slices-using-a-custom-calayer/

Core Motion Gyro and Accelerometer:
http://nscookbook.com/2013/03/ios-programming-recipe-19-using-core-motion-to-access-gyro-and-accelerometer/

Using Node.js and Websockets to build a chat service:
(Related to the backend processing of iOS apps)
http://code.tutsplus.com/tutorials/using-nodejs-and-websockets-to-build-a-chat-service–net-34482

Push Notification:
http://www.ioscreator.com/tutorials/local-notifications-ios7

https://parse.com/tutorials/ios-push-notifications

Sibling Horizontal Scrolling Views:
http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view

Login Screen:
http://dipinkrishna.com/blog/2013/12/ios-login-screen-tutorial-xcode-5-ios-7-storyboard-json/

Sliders/Hamburger menu:
http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path

http://kingscocoa.com/tutorials/slide-out-navigation/

Random Objective-C Tutorial that I found helpful:
http://rypress.com/tutorials/objective-c/

!! Workspace and Projects !!

http://blog.harbinger-systems.com/2011/11/workspace-%E2%80%93-better-way-of-organizing-your-xcode-projects/

!! MVC – Model Object !!

http://angelolloqui.com/blog/26-MVC-in-Objective-C-I-Introduction

http://angelolloqui.com/blog/27-MVC-in-Objective-C-II-Model

!! Automation for Apps !!

http://appium.io/

!! Creating Unit Tests with Xcode !!

http://www.preeminent.org/steve/iOSTutorials/XCTest/

http://www.tuicool.com/articles/FrAB3a

!! Library Sub projects and Submodules !!

Install RestKit as a Git Submodule

https://github.com/RestKit/RestKit/wiki/Installing-RestKit-v0.20.x-as-a-Git-Submodule

Using CocoaPods to Modularize a Big iOS App

http://dev.hubspot.com/blog/architecting-a-large-ios-app-with-cocoapods

http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial

http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules

http://www.brianjcoleman.com/tutorial-using-sub-projects-git-submodules-to-create-a-framework-in-ios/

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 !!

http://www.raywenderlich.com/336/auto-complete-tutorial-for-ios-how-to-auto-complete-with-custom-values

!! Creating Collection View Cells – Multiple cells !!

Use this for possible calendar grid:

http://www.raywenderlich.com/22324/beginning-uicollectionview-in-ios-6-part-12

http://kttailor4u.blogspot.com/2013/11/how-to-create-collectionview-without.html

http://www.appcoda.com/ios-programming-uicollectionview-tutorial/

Swift Keyboard appear

http://ios-blog.co.uk/tutorials/developing-ios8-apps-using-swift-create-a-to-do-application/

GIT and iOS Development:

http://nvie.com/posts/a-successful-git-branching-model/

Another Swift Tutorial:

http://www.raywenderlich.com/tutorials#swift

Deserialize JSON to objects:

http://iosdevelopertips.com/core-services/ios-and-json-part-2-deserialize-json-to-native-objects.html

AutoComplete TextField:

https://github.com/EddyBorja/MLPAutoCompleteTextField

AFNetworking:

http://afnetworking.com/

Type Ahead:

http://www.raywenderlich.com/59255/afnetworking-2-0-tutorial

RestKit:

http://restkit.org/

http://www.raywenderlich.com/58682/introduction-restkit-tutorial

Best Practice/MVC:

http://www.raywenderlich.com/55384/ios-7-best-practices-part-1

http://stackoverflow.com/questions/18805981/how-do-i-identify-a-model-view-and-controller-in-objective-c

http://www.eytanlevit.com/post/65368808441/our-simple-yet-effective-implementation-of-mvc-for-ios

Asynchronous Image Loading

https://github.com/rs/SDWebImage

Dependency manager:

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

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

rm -rf “`pwd`/Pods/”

pod update

http://cocoapods.org/

Install CoCoaPods on a workspace/project:

http://www.raywenderlich.com/64546/introduction-to-cocoapods-2

Localization and Internationalization:

http://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014

Mods to EZAudio:

https://github.com/eugenehp/EZAudio/commit/848b9909523b222f6501522bd0db2c65c153c23d

Provisioning a device:

http://www.brianjcoleman.com/tutorial-provision-your-app-to-run-on-a-device/

Create project using only xibs/nibs:

http://adoptioncurve.net/archives/2013/10/removing-storyboards-from-xcode-5-s-default-single-view-app-template/

http://michiganlabs.com/xibs-nibs-ios7-and-xcode5/

Important if you have no desire to use Storyboards.

PODS/Frameworks used:

URL/Rest calls

https://github.com/AFNetworking/AFNetworking

Xcode 6:

Issues with Xcode 6 and CocoPods

http://stackoverflow.com/questions/24018355/cocoapods-with-xcode-6-and-10-10-yosemite

Switch command line tools use:

$ sudo xcode-select -s /Applications/Xcode6-Beta.app

Custom Configuration file:

http://code.tutsplus.com/tutorials/ios-quick-tip-managing-configurations-with-ease–mobile-18324

iOS Human Interface Guidelines:

https://developer.apple.com/library/iOS/documentation/userexperience/conceptual/mobilehig/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1

Avatar/Pie Slice UIBezierPath:

http://blog.pixelingene.com/2012/02/animating-pie-slices-using-a-custom-calayer/

http://ronnqvi.st/thinking-like-a-bzier-path/

Loading NIB (.XIB) file:

http://eppz.eu/blog/uiview-from-xib/

Animating circular UIBezierPath

http://stackoverflow.com/questions/20132707/animating-a-circular-uibezierpath

Recreate Skype action sheet up:

http://holko.pl/2014/06/26/recreating-skypes-action-sheet-animation/

Animation game with Explosions!

http://www.raywenderlich.com/33808/how-to-make-a-letter-word-game-with-uikit-part-3

http://www.raywenderlich.com/2454/uiview-tutorial-for-ios-how-to-use-uiview-animation

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:

http://www.sourcetreeapp.com/

Detecting Images in UIWebView

http://fuzionpro.com/2014/02/04/ios-detecting-images-in-uiwebview/

Collection View Calendar

https://github.com/monospacecollective/MSCollectionViewCalendarLayout

Long Gesture w/Move

http://www.raywenderlich.com/63089/cookbook-moving-table-view-cells-with-a-long-press-gesture

Mesh Transforms

http://ciechanowski.me/blog/2014/05/14/mesh-transforms/

Color Selector:

http://uicolor.org/

Great links for general learning of iOS techniques:

http://www.appcoda.com/

http://www.ioscreator.com/

YouTube guy is really good!!!

https://www.youtube.com/watch?v=4_0Ao11zrtM&list=PL406FF94B1208CABD

Learn Objective-C

http://ios-blog.co.uk/tutorials/beginners-ios-development-objective-c/

http://cocoadevcentral.com/d/learn_objectivec/

http://rypress.com/tutorials/objective-c/index.html

http://www.raywenderlich.com/tutorials

Core Text:

Fine grain control of text placement.  Magazine layout.

http://www.raywenderlich.com/4147/core-text-tutorial-for-ios-making-a-magazine-app

iOS and Sinatra API

https://devcenter.heroku.com/articles/getting-started-ios-development-sinatra-cedar

Navigation Controller:

Bubble Images with cap insets

http://stackoverflow.com/questions/20494660/uiimage-how-to-resize-bubble-image-with-capinsets

Animation:

http://www.raywenderlich.com/30200/avfoundation-tutorial-adding-overlays-and-animations-to-videos

Watermark Image:

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

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

UIGraphicsBeginImageContext(backgroundImage.size);

[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();

UIGraphicsEndImageContext();

Rounded Images for Chat and Profiles:

http://www.appcoda.com/ios-programming-circular-image-calayer/

Slide Out Menu:

http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

UITableView – with sections

http://owenandrewsblog.wordpress.com/2012/01/29/uitableview-sections-tutorial/

http://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1

http://www.appcoda.com/ios-programming-tutorial-create-a-simple-table-view-app/

Snap Behavior View:

http://www.ioscreator.com/tutorials/add-snap-behaviour-view-ios7

Dynamic Buttons

http://www.guilmo.com/how-to-create-a-uibutton-programmatically/

http://docs.xamarin.com/recipes/ios/content_controls/scroll_view/create_a_horizontal_scrolling_button_list/

http://stackoverflow.com/questions/18348026/ios-auto-layout-dynamic-button-placement

Wrapping Buttons Auto Layout:

http://stackoverflow.com/questions/19808739/how-to-use-autolayout-to-position-uibuttons-in-horizontal-lines-wrapping-left

Subclass UIView

http://www.hjyssg.com/os-tutorial-create-a-subclass-of-uiview-with-xib/

Gradient View Layer:

http://nscookbook.com/2013/04/recipe-20-using-cagradient-layer-in-a-custom-view/

http://belencruz.com/tag/cagradientlayer/

Dealing with Gestures and Taps with Subviews:

http://www.idryman.org/blog/2012/06/18/handle-touch-events-in-uiwebview/

Swipe limiting to pixels – Scroll up and down hiding panel

http://cs354dory.wordpress.com/code-examples/swipe-animation-and-limiting-gestures-to-a-range-a-pixels/

Background Tasks:

http://chrisrisner.com/31-Days-of-iOS–Day-23%E2%80%93Using-Background-Threads

Animation PNG:

http://www.appcoda.com/ios-programming-animation-uiimageview/

http://stackoverflow.com/questions/7715361/ios-animation-for-a-png

Pan Gesture

https://www.youtube.com/watch?v=Z_lZPd8PtjQ

Swipe

http://stackoverflow.com/questions/6562016/ways-to-switch-views-by-swipe

Single Tap on View:

https://www.youtube.com/watch?v=LCl_EeawiY8

Slide Out Navigation

http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path

SEARCH -> ios7 navigation controller multiple views -stackoverflow

View Controllers:

http://www.sitepoint.com/ios-application-development-view-controllers/

Control multiple views

Best example below.

http://ios-blog.co.uk/tutorials/ios-custom-ui-series-tabbar-navbar/

http://code.tutsplus.com/tutorials/navigation-controllers-and-view-controller-hierarchies–mobile-14052

http://www.sitepoint.com/ios-application-development-modal-navigation-view-controllers/

http://docs.xamarin.com/guides/ios/getting_started/hello,_mvc/

http://iphonedevsdk.com/forum/iphone-sdk-development/89326-how-to-use-multiple-custom-view-controllers-with-a-navigation-controller.html

Pass data between view controllers

https://teamtreehouse.com/forum/how-to-pass-data-between-two-view-controllers-when-you-have-tab-bar-and-navigation-controller-in-between

Custom TabBar – NavBar

http://ios-blog.co.uk/tutorials/ios-custom-ui-series-tabbar-navbar/

Color Icons – Tint Color:

http://www.captechconsulting.com/blog/steven-beyers/ios-7-tutorial-series-tint-color-and-easy-app-theming

Custom Transitions

http://www.scottlogic.com/blog/2013/09/26/tabbar-custom-transitions.html

Custom Tab Bar Notification:

http://www.appcoda.com/ios-programming-how-to-customize-tab-bar-background-appearance/

http://idevrecipes.com/2011/03/08/how-does-the-instagram-iphone-app-implement-a-custom-tab-bar-notification/

http://ios-app-development.tumblr.com/post/32321250434/how-to-create-a-fully-customized-tab-bar-in-your-ios

Notification Center:

http://9to5mac.com/2013/10/10/ios-7-how-to-customize-and-use-notification-center/

Send SMS Text Messages:

http://www.appcoda.com/ios-programming-send-sms-text-message/

Fetch Parse JSON:

http://www.appcoda.com/fetch-parse-json-ios-programming-tutorial/

Import Contacts using Address Book Framework:

http://www.appcoda.com/ios-programming-import-contact-address-book/

Add Search Bar Table View:

http://www.appcoda.com/how-to-add-search-bar-uitableview/

Splash Screen:

http://www.appcoda.com/how-to-add-splash-screen-in-your-ios-app/

Badge Application Icon:

http://www.touch-code-magazine.com/how-to-add-a-badge-to-the-application-icon/

AppDelegate Global Variables:

SEARCH -> ios global variables appdelegate events -stackoverflow

Gradients:

http://danielbeard.wordpress.com/2012/02/25/gradient-background-for-uiview-in-ios/

NSURL:

http://codewithchris.com/tutorial-how-to-use-ios-nsurlconnection-by-example/

Swipe:

http://www.pushplay.net/2010/09/swiping-and-sliding-multi-view-framework/

http://www.raywenderlich.com

Java + Obj C

http://www.drdobbs.com/mobile/java-meets-objective-c/229402465

Nice Stuff:

http://kingscocoa.com/

Slide-Out Navigation Panel:

http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path

http://kingscocoa.com/tutorials/slide-out-navigation/

AFNetworking:

http://afnbook.github.io/2-first-contact.html

XMPP and iOS Tutorials and stuff:

https://github.com/robbiehanson/XMPPFramework

http://maniacdev.com/2011/08/building-an-aimicqjabber-client-on-ios-open-source-frameworks-examples-and-a-tutorial

Tools

http://code.tutsplus.com/articles/ios-tools-of-the-trade–cms-19820?utm_content=buffer7bb4e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

COLORS:

http://www.computerhope.com/htmcolor.htm

http://www.mobileaware.com/core-animation-tutorials/

http://www.appcoda.com/ios-programming-animation-uiimageview/

Objective-C wrapper for video:

https://wiki.videolan.org/VLCKit/

https://wiki.videolan.org/LibVLC/

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:

viewDidLoad

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.

viewWillAppear

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).

viewDidAppear

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.