• Check if GestureRecognizer added

    One of my new projects dynamically generates a UI based on a DSL entered by the user. This leads to a host of defensive coding challenges since there is multiple code paths that can add controls and their associated gesture recognizers. I found it helpful to add guard statements that… Read more ⇢

  • Removing CGPDFDocument Passwords

    Working with PDFs on mobile is a pain. On the bright side at least Apple provides us CGPDFDocument On the bright side Apple does provide CGPDFDocument. If you’re on Android you are left to 3rd party alternatives such as iText and PDFBox. However examples on how to use CGPDFDocument are limited… Read more ⇢

  • Checking if device Passcode is enabled using Swift

    If you spent any time building apps for the Enterprise or business space odds are you have turn into the requirement to check if the device has a passcode enabled. Mobile Device Management (MDM) Solutions are full of tools that handle this for you.  More often I’m finding that organizations are… Read more ⇢

  • Simplifying using Keychain Access Groups

    Keychain sharing is an easy and secure way to share information between apps on the same device. This is even more useful when you think about sharing information between an app and it’s extensions. In my opinion Keychain is just as easy as using NSUserDefaults but provides a greater level of… Read more ⇢

  • Solving Appcelerator Studio’s “Invalid Request” when Compiling

    I use Titanium for many of my projects and have found it a great framework. Just like with any tools every once and awhile you run into some interesting errors. I am often switching networks and every once and awhile I get the below error in the Appcelerator Studio console… Read more ⇢

  • Logging Exceptions to Google Analytics Using SwiftyBeaver

    There has been an avalanche of Swift based logging frameworks lately.  After trying several, I found SwiftyBeaver was both flexible and simple enough to move all of my apps onto.  Similar to most of the other logging frameworks, SwifyBeaver is extensible. But, unlike many others, there is no real magic… Read more ⇢

    Logging Exceptions to Google Analytics Using SwiftyBeaver
  • Using OpenURL to launch links in a UIWebView

    UIWebView in great for displaying HTML formatting information in your app.  In many cases you might be displaying fragments you didn’t create opening the door for links your user might action.  By default your embedded UIWebView will follow the link which can lead to an odd user experience.  There are… Read more ⇢

  • UIWebView Background Experiments

    UIWebView is one of the most useful controls in UIKit and has almost a limitless amount of options you can configure.   My use case isn’t all that unique I’m simply displaying snippets of HTML email messages in a full screen UIViewController.  The need to set the background color of the… Read more ⇢

  • A simplistic approach to using Google Analytics in your Swift UIViewControllers

    I use Google Analytics to collect usage statistics across both my web and mobile applications.  There are a few great AngularJS and other libraries that track page usage automatically when a controller is initialized.  Using these concepts I wanted to create my own similar approach in Swift.  The end result… Read more ⇢