My name is Tim Roadley and I’m a ‘married-with-child-self-professed-IT-nerd’.  I do computer stuff for both work and play.  I work for an Australian financial services company called Cuscal where I’ve gone through the ranks as Desktop Support, Server Support, Senior Server Support,Team Leader and now Infrastructure Manager.  11 years through and it is way too interesting to give up, even though heaps of people say that’s too long to be in one place.  Cuscal have an enormous company changing project going on right now that is awesome to be immersed in every day,  especially to have my name all over many design aspects.

A couple of years ago I released a public website called  The idea of the site was to try to give back to people who help others on question forums.  The way that was supposed to happen was for someone with an issue to put up a $10 bounty on a question (any topic).  Whoever could solve that question to the askers satisfaction would receive $5 and the question solution would then be locked.  Others could then pay $5 to unlock, split royalties from that going to the asker and solver.  Unfortunately I had to shut down the site due to the expense of running a merchant account, which is required in Australia for accepting credit card payments online.  While the site may not have been a great success it was a large driver for learning database and web site design from the ground up.  AskEarn was essentially a custom-built forum with a secure payments section.  The ‘from scratch’ sql web development I now re-use and customise for any purpose that presents itself.

One of the main beneficiaries of this new-found ASP/SQL coding has been my work.  Our team now has a real-time portal we use every day. The job of our Infrastructure team is to ensure that all systems Cuscal runs are performing at their best.  If issues occur, or are going to occur, we need to know ASAP so we can react.  The portal not only has hooks into many databases for real-time information, it also has procedures, wiki, team contacts, a knowledge-base etc.

ASP/SQL coding is fun, however it’s got nothing on iOS coding.  iOS is the operating system used on iPad, iPhone and iPod Touch.  The language is Objective-C, which is object oriented C code.  By the way, you can still use normal C or C++ code in objective C if you like.  I’ve been learning Objective-C for over a year now and have released an iPhone game ‘iHeals’ in that time.  It’s certainly no Angry Birds that’s for sure!  Regardless, as long as I’m having fun and learning at the same time I don’t see it as a waste of time at all.

More recently I’ve been delving into Box2D.  What is Box2d you ask?  It’s the reason Angry Birds is so awesome – physics.  Now box2d is written in C++ code so to start mucking around with it I had to write a ‘wrapper’ for it.  I’ll explain that in a how-to one day. Hopefully someone points me to a wrapper someone has already written, I can’t help but feel I’m re-inventing the wheel.  (EDIT: I am, it’s called CCBox2D, that”s now on the to do list to look in to).

Anyway I think that’s enough for my ‘About Me’ post.  Now it’s time to get on to some proper articles.

Thanks for reading


Be Sociable, Share!

    43 Responses to About

    1. Andreas Low

      August 13, 2011 at 7:01 pm


      nice blog ;-)
      Do you want to get a free license for my TexturePacker and PhyscisEditor?
      If so just contact me at and send me your real name and postal address. I’ll create a free license for you.


      • Tim Roadley

        August 13, 2011 at 8:17 pm

        Wow that’s very kind of you Andreas! I’ll send you an e-mail – those tools defiantly look very useful :)


    2. okayra

      November 13, 2011 at 9:53 pm

      Well I just discovered your blog today(13Nov2011) and One word that I will tell for everyone , “it is really simple to understand for the people who do not have a non programing background and English is not the native language.” Well Done Tim.

    3. Chris

      March 30, 2012 at 7:48 am

      I am trying to make an app that has an rss feed and can display data from a website. The website has php so the data can be generated in almost any format. I am new to the whole iOS thing and have been struggling through some tutorials and found yours to be the best so I was wondering if you had any good pointers.


    4. alexander sharma

      April 15, 2012 at 10:12 am


      I am learning xcode and your tutorials are superb.

      What is your email address or facebook

      mine is

      Please email me with any tutorials im very interested in ui interfaces story boards and sqllite core data stuff if you can please send me any tutorials or source codes.

      do you also have a youtube channel?

    5. John

      July 22, 2012 at 12:54 pm

      Hi Tim!
      I really like your tutorials and they are really helping me out but I have one request! Could you please upload a tutorial which includes implementing sections, with delete support? Please could you make a tutorial, I really need it!

    6. Cao Jiannnan

      August 18, 2012 at 8:38 am

      Hi, I’ve read all your articles about this core data project. I am very happy because you teach me some more interesting techs. So I learned carefully and I bought your iSoccer app for thanks.

      I found your code has a serious question, that you double – defined a fetchResultsController in many ViewController. For example, the PersonsTVC. PersonsTVC has already had an fetchResultsController from its super Class: CoreDataTableViewController.

      So in your code, you defined two fetchResultsController, one is linked with PersonsTVC, one is linked with CoreDataTableViewController. So the problem is, when you set a fetchResultsController in PersonsTVC -setupFetchResultsController method, (self.fetchResultsController = …), you just set it to PersonsTVC. the CoreDataTableViewController will not receive the new fetcherResultsController setter message.

      Then, the fetchResultController you set in PersonsTVC, will have no delegate. So you must use [self performFetch] to update the tableView.

      THE SOLUTION IS: delete @property and @synthesize of fetchResultController in PersonsTVC, and all [self performFetch] in PersonsTVC.

    7. Cao Jiannnan

      August 18, 2012 at 8:44 am

      THE SOLUTION IS: delete @property and @synthesize of fetchResultController in PersonsTVC,

      and you can delete all [self performFetch] in PersonsTVC.
      after that , change the delete data code like this:
      if (editingStyle == UITableViewCellEditingStyleDelete) {

      // Delete the person object that was swiped
      Person *personToDelete = [self.fetchedResultsController objectAtIndexPath:indexPath];
      NSLog(@”Deleting (%@)”, personToDelete.firstname);
      [self.managedObjectContext deleteObject:personToDelete];
      [self.managedObjectContext save:nil];

      [delegate personChangedOnMaster:self];

    8. Mike

      September 1, 2012 at 12:55 am

      Greetings Tim!

      I bought iSoccer and I have to say its so amusing when playing multiplayer. The only issue I discovered is that sometimes when you pause the game or you exit the app (by tapping the home button), one of the players freezes, leaving one user with only one player available to move throughout the screen while the other one sits steady. Some times the glitch goes away after a while, but thats not always the case.

      I also wanted to thank you for the wonderful tutorials!

      Keep them coming :-)

      • Tim Roadley

        September 2, 2012 at 7:47 am

        Hi Mike,

        I am aware of that glitch and I think it is with the box2d engine. If spent hours trying to fix it to no avail unfortunately :(

        I’m glad you are getting some entertainment out of it though!


    9. Cornelius

      November 3, 2012 at 2:59 am

      Jut wanted to say thank you for awesome blog and very helpful Core Data tutorials!

    10. Aaron

      November 12, 2012 at 1:04 am

      Hi Tim, Gig Fan of your site… I need some help displaying search results in a app Im creating. Could you help me when you have some spare time? After clicking on the search results its displaying the wrong detail view. Thanks again.

      • Aaron

        November 12, 2012 at 1:04 am

        * Big

    11. Juan

      February 25, 2013 at 5:14 am

      Hello Tim,

      I really enjoyed your Core Data tutorial and I will be interested in a tutorial on how to store big images using Core Data. I’ve tried several approaches but none gave me the confidence I need. Please consider sharing your expertise with us.

    12. Pierre

      March 21, 2013 at 8:12 am

      Hey Tim,

      The blog is excellent and I have been following the core data tutorials. I want to modify it a little in my project and I am running into an issue. Where you are creating the role detail I want to put a tab view controller there. The issue I am running into is with the segue part of the code I don’t know how to write that because the previous segue movement refers to core data information but all I want to do is show the tabs. Thanks a lot if you can help!

    13. imaginativeperson

      May 20, 2013 at 4:59 am

      Three more chapters and an earlier release date!! Way to go! :-) :-)

    14. Trevor

      August 2, 2013 at 11:49 pm

      Hi Tim,

      “Discovered” your site a little over a year ago. I really like the way you present material. You take the time to fully explain concepts and make sure it looks good as well.

      Really enjoying the Rough Cut over on SBO and can’t wait until it’s finished. I only wish more authors on such complex topics could approach the work as you do.


      • Tim Roadley

        August 5, 2013 at 9:22 pm

        Thanks Trevor, I appreciate your kind words :)

        The second pass I’m doing on the book now for iOS 7 is almost done. I’m looking forward to ‘Xcode Automatic Configuration’ coming back online so I can finalise the iCloud chapters. The first half of the book has been submitted to production and the last half is due very soon. The Apple dev site being down has slowed things down unfortunately.



    15. imaginativeperson

      November 1, 2013 at 4:19 am

      Is the final draft available on

      • Tim Roadley

        November 2, 2013 at 6:56 am

        Yes! They updated it on the 31st of October.



    16. Diego

      November 5, 2013 at 9:40 pm

      Let me introduce myself, my name is Diego Caridei and I’m the administrator of the blog, The following is community programming topics (Obj-C, Java, C / C + +, Python, VB, PHP, etc.) and a few months ago we opened a new section concerning the review of manuals. If that’s okay we want to review your manual (iOS Core Animation : Advanced Techniques). Upon confirmation please send few chapters of reference or a copy of the text.
      Diego Caridei

      • Diego

        November 5, 2013 at 9:44 pm

        sorry i wrong the book’s name I wanted to say
        Learning Core Data for iOS: A Hands-On Guide to Building Core Data Applications.

    17. Dimitri

      November 29, 2013 at 6:21 pm

      Thanks a lot for having written the clearest and best documented tutorial about core data. It was a great help for me, saved me a lot of time and was pleasant to read (which is rare).

    18. emilypriddy

      December 26, 2013 at 4:12 am

      Thanks for the great book!! I am trying to go through your tutorials, but if I attempt to access your site on any PC web browsers (and I have tested on a few different devices) your site won’t open and alerts pop up saying a threat has been removed (Exploit Blackhat SEO type 1720). I can, however, access your site on my mac. Just wanted you to be aware!

    19. jmuchmore

      February 20, 2014 at 3:59 pm

      Wrapper for C++? Why? I use C++ in my iOS app as is. Add your *.h and *cpp to your project. To use the functions in your .cpp file in an Object C class, just name that implementation file with *.mm instead of *.m. #include the C++ .h file in your .mm file and away you go. The .mm extension tells Xcode to run that file through the C++ compeller. The class using the .cpp code is normally non-UI and inherits only from NSObject. Also need to #import . I use these class with the .mm extension as data classes for my UI. Example a custom UIViewController class can #import the companion .h of the .mm file.

      BTW: I am currently learning CoreData with your book. This book is AWESOME!!! Thanks!

    20. Clive dancey

      August 9, 2014 at 5:38 pm

      HI Tim , really enjoyed the Staff Manager tutorial and learnt a lot about core data from it.
      I am trying to add a view controller before the tab bar controller as a sort of front end controller that will be able to access the table views but whatever i try it crashes out.
      Any pointers would be fantastic..
      thanks again

    21. kunalbalani

      August 13, 2014 at 4:08 am

      Hi Tim,

      I have read your book on core data and built my own version of GroceryDude app. I am pleased with your book. you covered most of the important use cases. However, I feel there is one part which could be very more valuable to add in next edition. i.e Encryption using core data.
      There are many ways to approach this but I would like to know your thoughts on that. Also, apple introduced NSIncrementalStore in iOS 5. If you could highlight about its uses that would be very useful to everyone.

    22. Stephen Kavanagh

      April 13, 2016 at 5:08 am


      I recently purchased “Learning…with Swift”. I found the source for the Objective-C version, but I can’t find the source for the Swift version. Can you tell me where I can find it?



    23. Steve Hicks

      April 21, 2016 at 11:13 pm

      Hi Tim

      I’ve been trying to purchase your Core Data with Swift latest book from the Informit web site. It is showing as “Not for sale”. Where can I purchase a copy in PDF please.


    24. Marco Almeida

      May 8, 2016 at 4:45 am

      Hi, Tim I am writing this to let you now that the link id not working, ok? Can you fix that?

    25. Tim M

      June 17, 2016 at 5:00 am

      I ordered your book through Amazon, evidently the “first edition,” and am having some problems getting some of the code snippets to work. I’m wondering if I need the 2nd edition, which isn’t available on Amazon, but Infomit. Is there a possibility of getting a discount on the second edition? Thanks.

    26. Tim M

      June 17, 2016 at 8:14 am

      I’m having some problems cutting and pasting code snippets from the ebook to the Xcode application. Has anyone else had this problem?

    27. Doug S

      October 6, 2016 at 10:08 am

      Hi Tim:
      Are you planning to update your book for Swift 3?


    Leave a Reply

    Your email address will not be published. Required fields are marked *