The iOS Dev Diary: Recent Episodes

Jay Versluis

Fantastic Adventures in Objective-C

View Details

In this series I’ll show you how to create a simple Day Counter on iOS, using Objective-C and Xcode 9. The idea is to set a date in a settings screen, and then see how many days have elapsed on the main screen right after launching the app. This is a 3-Part Mini-Series: Part 1 … Continue reading Building a Day Counter on iOS – Part 3 →

View Details

In this series I’ll show you how to create a simple Day Counter on iOS, using Objective-C and Xcode 9. The idea is to set a date in a settings screen, and then see how many days have elapsed on the main screen right after launching the app. This is a 3-Part Mini-Series: Part 1 … Continue reading Building a Day Counter on iOS – Part 2 →

View Details

In this series I’ll show you how to create a simple Day Counter on iOS, using Objective-C and Xcode 9. The idea is to set a date in a settings screen, and then see how many days have elapsed on the main screen right after launching the app. This is a 3-Part Mini-Series: Part 1 … Continue reading Building a Day Counter on iOS – Part 1 →

View Details

The second part of this mini-series about presenting another UIViewController on top of a UISplitViewController in iOS 9 and Xcode 7. Check out the first part here, complete with code snippets and a link to the full project. Enjoy! Watch the full course in one convenient playlist:Catch this episode on my iOS Dev Diary Podcast:

View Details

Since its introduction in iOS 5, our good friend the UISplitView Controller has always had a really annoying habit: it has to be the root view controller in our apps. This means that it cannot be presented from any other view controller, nor can the split view controller present other view controllers. This sucks because 99% … Continue reading How to present a view controller on top of a UISplitView Controller – Part 1 →

View Details

In this final part of our project we’ll finish off the app by implementing a little Key Value Observation magic. This will let us update our second UITableViewController when new search results are to be displayed. Check out the first part here, as well as a link to my demo project. Enjoy! Watch the full … Continue reading Building a searchable UITableView in iOS 9 – Part 4 →

View Details

In this part of our series we’ll take a look at how we actually filter the data that is displayed in the searchable table view. We do that using an NSPredicate. Check out the first part here, as well as a link to my demo project. Enjoy! Watch the full course in one convenient playlist:Catch … Continue reading Building a searchable UITableView in iOS 9 – Part 3 →

View Details

In the previous part we’ve setup our project and the relevant graphical bits to make the app display the table view. Now it’s time to implement the UISearchController object that will be at the heart of letting users sift through our search results. We’ll do that in this part. Check out the first part here, … Continue reading Building a searchable UITableView in iOS 9 – Part 2 →

View Details

In this 4 part course I’ll show you how to build a searchable UITableView using iOS 9.1 and Xcode 7.1. Part 1 will talk you through how to build a UITableView with dummy data In Part 2 I’ll show you how to use a UISearchController to display a second table view In Part 3 we’ll … Continue reading Building a searchable UITableView in iOS 9 – Part 1 →

View Details

A while ago I’ve written an article about how to load different storyboards depending on the screen size of an iOS device. Back in those days (2013) it was all a bit simpler than it is today, and I looked into it mainly because I loathed Auto Layout so much. I felt it was time … Continue reading How to load UIStoryboards depending on screen height in iOS →

View Details

In this episode I’ll show you how to build a UICollectionView from scratch in Xcode 6. The class is available for both iPhone and iPad since iOS 6. If you know how to build a UITableView then building a UICollectionView will be familiar to you. I’ll start with a single view application, delete the ViewController … Continue reading How to build a UICollectionView in iOS 8 →

View Details

The Unwind Segue was introduced in iOS 6 to make retrieving data from a dismissed view controller easier. A regular Segue allows us to send data from one view controller to another, but it’s not easy to bring data back if the user has changed or added details in that view controller. That’s where an … Continue reading How to create an Unwind Segue in iOS 8 →

View Details

In this episode core data I’ll talk you through the lingo of Core Data: those scary classes and expressions that you’ll frequently come across. In fact, this is the start of a new series: Core Data Nuggets are bite-sized chunks about the framework. Dip in and out or watch them all in a row and … Continue reading How to speak Core Data →

View Details

And finally in the last part I’ll show you how to restore purchases. Note that you must implement a restore option for non-consumable products or the review team will reject your app. Demo Project You can download the full source code of what I’m building in this screencast on GitHub: https://github.com/versluis/In-App-Purchases/ Further Reading I’m following … Continue reading Creating an In-App Purchase in iOS 7 – Part 6: Restoring →

View Details

In this part we’ll see our hard work comes to life on a real device while we’re performing our purchase in the App Store Sandbox. Demo Project You can download the full source code of what I’m building in this screencast on GitHub: https://github.com/versluis/In-App-Purchases/ Further Reading I’m following my earlier two articles almost to the … Continue reading Creating an In-App Purchase in iOS 7 – Part 5: Testing →

View Details

Learn how to make the purchase in this part of our series about in-app purchases. Demo Project You can download the full source code of what I’m building in this screencast on GitHub: https://github.com/versluis/In-App-Purchases/ Further Reading I’m following my earlier two articles almost to the letter, here they are for reference: http://pinkstone.co.uk/how-to-create-a-single-in-app-purchase-in-ios-7/ http://pinkstone.co.uk/how-to-restore-your-single-in-app-purchase-in-ios/ https://developer.apple.com/library/ios/technotes/tn2259/_index.html Watch … Continue reading Creating an In-App Purchase in iOS 7 – Part 4: The Purchase →

View Details

In this part we’ll setup the observers needed to react to responses from the App Store. Demo Project You can download the full source code of what I’m building in this screencast on GitHub: https://github.com/versluis/In-App-Purchases/ Further Reading I’m following my earlier two articles almost to the letter, here they are for reference: http://pinkstone.co.uk/how-to-create-a-single-in-app-purchase-in-ios-7/ http://pinkstone.co.uk/how-to-restore-your-single-in-app-purchase-in-ios/ https://developer.apple.com/library/ios/technotes/tn2259/_index.html … Continue reading Creating an In-App Purchase in iOS 7 – Part 3: StoreKit Observer →

View Details

In this part I’ll talk you through building a custom shop class and how to make “first contact” with the App Store. Demo Project You can download the full source code of what I’m building in this screencast on GitHub: https://github.com/versluis/In-App-Purchases/ Further Reading I’m following my earlier two articles almost to the letter, here they … Continue reading Creating an In-App Purchase in iOS 7 – Part 2: Custom Shop Class →

View Details

In this 7-part screencast series I’ll show you how to create an In-App Purchase in iOS 7 with Xcode 5.1. The course will run you through everything from setting up your product in iTunes Connect, creating a custom shop class for easy re-use, making “first contact” with the App Store and how to deal with … Continue reading Creating an In-App Purchase in iOS 7 – Part 1: Setup →

View Details

In this series I’ll show you how to create Popovers on iPad. They’re fairly easy to create once you get the hang of the inner workings of the UIPopoverController. I’ll show you how to create basic Popover in code and in your Storyboard, and we’ll discuss how you can retrieve data from a Popover when … Continue reading How to use Popovers on iPad – Part 3: Image Picker →

View Details

In this series I’ll show you how to create Popovers on iPad. They’re fairly easy to create once you get the hang of the inner workings of the UIPopoverController. I’ll show you how to create basic Popover in code and in your Storyboard, and we’ll discuss how you can retrieve data from a Popover when … Continue reading How to use Popovers on iPad – Part 2: Storyboard →

View Details

In this series I’ll show you how to create Popovers on iPad. They’re fairly easy to create once you get the hang of the inner workings of the UIPopoverController. I’ll show you how to create basic Popover in code and in your Storyboard, and we’ll discuss how you can retrieve data from a Popover when … Continue reading How to use Popovers on iPad – Part 1: Code →

View Details

Sometimes it’s just easier to start from an existing Storyboard rather than build everything again from scratch. Especially so when you want to create an iPad version of your iPhone app. When you change your deployment info to Universal, Xcode even offers to copy your existing storyboard for you. That’s really nice – but even … Continue reading How to convert your iPhone Storyboard into an iPad Storyboard →

View Details

In this final part of the series I’ll let you in on a little secret that will help our app synchronise iCloud Core Data for the first time when it’s installed on another device. Some devices it appears don’t display existing iCloud results upon first launch. To remedy this, I’ll show you how to re-fetch … Continue reading iCloud in your iOS Apps – Part 5: Initial Import Hack →

View Details

In this part we’ll talk about how to make your Core Data powered app work with iCloud. This involves adding an option to your persistent store coordinator which will allow Core Data to write log files to iCloud. When changes are detected, the local Core Data store can merge them using those log files. Here … Continue reading iCloud in your iOS Apps – Part 4: iCloud and Core Data →

View Details

In this part I’ll show you how to use your app’s ubiquitous folder to store arbitrary files in a user’s iCloud store. We’re not going to cover the UIDocument class here because it adds a layer of complexity to an already difficult subject, and for simple files it’s just not necessary. We’ll also cover how … Continue reading iCloud in your iOS Apps – Part 3: Document Storage →

View Details

In this part I’ll show you how to store and retrieve data using the NSUbiquitousKeyValueStore singleton, and how to receive the relevant notification so that your app can react if data has changed in iCloud. Watch the whole series Part 1 is about Setup and Prep Work Part 2 is about using Key/Value Storage Part … Continue reading iCloud in your iOS Apps – Part 2: Key/Value Storage →

View Details

In this 5-part series I’ll show you how to use iCloud in your iOS Apps. We’ll discuss the whole picture, starting with how to setup Xcode and your app, including App ID and Provisioning Profiles and I’ll demonstrate how to use all three flavours of iCloud: Key Value Storage Document Storage and iCloud with Core … Continue reading iCloud in your iOS Apps – Part 1: Setup →

View Details

In this episode I’ll show you how to dismiss the iOS Keyboard, which is commonly brought up by a UITextField – but doesn’t want to leave easy once summoned. It’s easy to overlook a step in this procedure, so I thought a screencast is in order. We’re discussing two dismissal options here: when the DONE … Continue reading How to dismiss the keyboard from a UITextField in iOS →

View Details

I’ve previously shown you how to populate an NSTableView using Bindings and an array controller. Today I’ll show you how to do it in code. It’s relatively simple and very similar to powering a UITableView. The main difference is that in Cocoa we don’t have a controller object that comes bundled with our view, so … Continue reading How to populate an NSTableView in code →

View Details

In this episode I will show you how to bind a Table View to an Array Controller in Cocoa, using Xcode 5.1 and OS X Mavericks. We’re using Core Data to save our entries and – check it out – we’re not writing a single line of code! Cocoa Bindings is one of the most … Continue reading How to bind an NSArrayController to an NSTableView →

View Details

You may have heard this expression before: “You need to tear down your Core Data stack before you do xyz”. It’s frequently mentioned in the Apple documentation – sadly without telling us what on earth this means or how to do it. I had assumed that it means rebuilding every aspect of Core Data, which … Continue reading How to tear down your Core Data Stack →

View Details

In this episode I will show you how to use the Git Branch feature in Xcode 5.1. Branches are helpful if you’re developing your app. You can isolate a “working” version, create a new branch and fiddle with new features that may destabilise your project. You can then commit your changes – working or not … Continue reading How to use Git Branches in Xcode 5.1 →

View Details

In this episode I will show you how to make use of Tags in Git. This is not supported in Xcode or GitHub for Mac at the time of this recording (April 2014). I will also show you how to utilise the Tag/Release feature on GitHub.com. Tags are a useful feature if you want to … Continue reading How to use Git Tags in Xcode 5.1 →

View Details

In this course I will show you how to create a searchable table view in Xcode 5.1 and iOS 7. The app will also be compatible with iOS 6. There are six parts in total: Part 1: an overview of what we’d like to achieve Part 2: we’ll build the table view and populate it … Continue reading How to create a searchable UITableView (2014) →

View Details

In this episode I will show you how to push an Xcode project to GitHub.com. This is useful if you want to share code you have written with others. The GitHub for Mac app makes this a breeze because it talks to GitHub and creates a remote repo on your behalf. It also sets that … Continue reading How to push a local Xcode Project to GitHub.com →