Whether you're new to the platform or a long time veteran, one of the skills that you will need to have when creating your iOS apps is the ability to successfully debug your code. This course covers all of the various ways to organize, debug, and interrogate your code so that you can make your iOS app ready for deployment in no time. In addition to covering the fundamentals, we will be discussing several advanced tips and tricks that can help you jumpstart your debugging experience.
Matt Kruczek is the VP of Mobile, Web and AI at Tallan. Matt has extensive experience in the software industry and is responsible for creating and maintaining any and all architectures and strategies pertaining to the mobile, web and AI disciplines. He has architected and developed several end-to-end Line of Business applications using a variety of Microsoft Technologies including WCF, WPF, ASP.NET , C#, VB, MVC, SQL Server, Microsoft Bot Framework and Entity Framework.
Fundamentals Hi. This is Matt Kruczek with Pluralsight, and in this module we'll be focusing on the fundamentals of iOS debugging. This is the first module in the series of modules that will be a deep dive into some of the tricks and techniques that'll make debugging your iOS applications much easier and more efficient. The first thing we're going to cover is a little history of the debuggers used in Xcode and how they've evolved to today. The next thing we're going to do is get familiar with navigating the Xcode environment. I'll go over all the various ways to get where you need to be in your code so that when you're looking for problem areas during debugging you can access those places quickly and easily. Then I'm going to focus in on the Debug Area window and investigate all the tools available to you at debug time that will allow you to interrogate and analyze your code with ease. Next, I'm going to review some of the various behaviors that you can apply to the different events that occur inside Xcode, which will ultimately help to streamline your processes and make your debugging more efficient. And finally, we will talk about some of the great techniques to help you annotate your code so that once your problems are found during the debug process you can quickly locate them during the bug fixing stage.
Exceptions Sooner or later every developer is going to run into an exception. Knowing what that exception means and why it may have occurred is critical to being able to fix the problem, so in this module I'm going to review Xcode exceptions in all of their many forms. So, let's have a look of some of things we're going to talk about in this module. The first thing we're going to cover is the NSException class. The NSException class is the base class for every exception that gets called in an iOS app, so it seems like an appropriate place to start building our exception knowledge. Then we're going to move on to some of the predefined exception types provided by Objective-C and Xcode. Next, we'll move on to signals. When an exception occurs, it sends out a signal. Signals are important because when Xcode sends out a signal due to an exception and that signal is not properly caught, we get an application crash, which is something we're trying to avoid at all costs. There are many different types of signals, and we will go over what those are and what they mean. Then I'm going to go over some of the ways to handle exceptions when they occur so that your app can respond to them gracefully. And finally, I'm going to talk about some of the ins and outs of crash reporting when your debugging on your device as opposed to the emulator.
Breakpoints Knowledge of breakpoints is an essential skill to possess in order to effectively interrogate and debug applications, so in this module I will be discussing in depth breakpoints and their many uses. The first thing we will talk about is just what breakpoints are and why you should be accustomed to using them throughout your code. Then we will jump into an overview of some of the different types of breakpoints available in Xcode and what each type's specialty is. And finally, we will walk through some demos of each of these types in action, explain how to set them up in Xcode, and go over some of the more common scenarios where they might be utilized.
Instruments The Instruments Suite is a product designed by Apple to be a companion to Xcode to help you through your debugging. Knowing how it can help you and how to utilize it to its fullest potential can greatly augment your debugging skills. In this module, we will be discussing the following topics. The first thing I'll go into is just what the heck Instruments are and what they're used for. Then we will jump into an overview of the Instrument's UI and how to navigate your way around it. And then finally we will discuss each of the various Instrument types, their templates, and what their purposes are.