The greatest iOS development tools, including websites, desktop and mobile apps, and back-end services.

A weekly update delivered right to your inbox. Sent once a week. No spam, not ever. Unsubscribe at any time.

If you have any suggestions for tools that you would like to see added to the list, please let me know by email, Twitter or Facebook.

Sponsorship

The iOS Dev Tools audience includes some of the most engaged iOS Developers looking to find the best tools and services to help them build the next top app. If you've got something awesome to shout about that developers are going to love, then iOS Dev Tools is a great place to promote it. Learn more.

A debugging tool to help you identify retain cycles and memory issues while running your app. LifetimeTracker requires just one line of code to integrate into your app, and it'll give you a floating bar that lets you know when it identifies an issue. Tapping the info button gives you full details of the issue including the leaked object type and address. Unlike other retain cycle detectors that rely on Objective-C runtime magic, this small tool simply focuses on tracking lifetime of objects which means that it can be used in both Objective-C and Swift codebases.

Other Similar Tools

A linter tool to normalize Interface Builder and Storyboard files. IBLinter is simple to configure using a YAML file and can be run directly from the command line or included in your project as an Xcode Build Phase. Currently you can use the following rules: custom view controller class names in a storyboard should be the same as the file name; forbid the use of the relative to margin option; display error when views are misplaced; force the use of the useAutolayout option; and display warning when view has duplicated constraint.

A drop-in in-app design debugging tool. Hyperion is a hidden plugin drawer that sits discreetly under your app and is designed to make inspection of your app quick and simple. It includes three default plugins for debugging your designs including the View Inspector to inspect the properties of any view, the Measurements plugin which lets you measure distances between two views, and the Slow Animations plugin to reduce animation speed in-app. You can also create and contribute your own third-party plugins by following the plugin creation guide.

A drop-in framework and online service that aims to make debugging your iOS apps a more pleasant experience. The Bugsnag Cocoa library automatically detects crashes and alerts you via Slack. You can sort errors by users impacted, or use advanced filtering (by version, user, and more) to prioritise the most harmful bugs first. All debug info is captured including a stacktrace (with support for dSYMs). Support for Swift and Objective-C. Monitor your backend and frontend applications, too, to proactively improve your software quality.

A Mac app for filing Radar bug reports and optionally crossposting them to Open Radar. Brisk is written in Swift and uses Sonar to communicate with Apple's Radar web APIs. Once logged in with your Apple ID, you are given a form to complete your bug report including attachments. You can save your report to a file as a draft or submit it straight to Radar. If you have an Open Radar account and API key, you can also choose to crosspost the bug report there.

An in-app debugging tool that gives you enhanced logging, networking information, crash reporting and more without having to exit the app. Dotzu is simple to add with a single line of code. It then gives you a button that floats over the top of your app giving you quick access to a lot of debugging information. It automatically overrides print calls so you can view all logs without having to change your code. It also works by default with the shared URLSession or you can add the logger to custom configurations. It even works with Alamofire.

A drop-in debugging library for iOS apps. DBDebugToolkit is simple to set up with just a single line of code. After setup, a shake of the device will present a menu with a huge array of debugging information. This includes everything from performance including realtime graphs of CPU and memory usage, user interface with options to show frames and slow down animations, to networking with a list of all requests sent by the application, and loads more. You can also set up other triggers if shake isn't right for your app.

A remote logger for iOS and Android apps. Bugfender stores logs created by your app and sends them to their server, which you can then view in real time on the online console. You can set tags and levels for each line logged to later search and filter entries within the log viewer, and you can get information about the device for each logging session and review OS versions and device features. You can get started for free with unlimited app installs, app users and sessions, or sign up to a paid plan to remove logging restrictions.

A free SDK for bug and crash reporting of iOS, Android and the web. Bugsee allows you to report a bug directly from the app by just clicking the screenshot. Reports include video of the last minute, full events log, console logs and network traffic along with all environment details. In the case of a crash, Bugsee will auto report the video leading up to the crash, including the reason, method, and the file and line number that caused the crash. Everything is available to view online with video synchronised with all system events and logs.

A drop-in SDK and online service that provides crash reporting and real user monitoring. Raygun's error and crash reporting silently monitors your app, collecting all error and crash events that are affecting your users. When issues are found they are presented on your dashboard, with detailed diagnostic reports about every single error and crash. Real User Monitoring gives you detailed data on how every user interacts with your app, including complete user sessions and journeys, so you can find problem areas well before they affect more of your users.

A powerful runtime inspector for view debugging iOS apps. Reveal gives you 2D and 3D visualisations of your view hierarchy and allows you to change view properties at runtime on the fly to see the effect immediately. Reveal 2 has recently been released with many new features including the ability to debug applications running on devices connected by USB, making inspection easier and more reliable; support for inspecting App Extensions such as messages, notification, keyboard and widget extensions; filtering of views and constraints by name and memory address; and an all-new design.

A super simple free web service for testing push notifications with your iOS or Android app. Pushtry lets you send push notifications to your devices using Apple Push Notification Service or Google Cloud Messaging service without requiring you to run your own backend. Push notifications can be sent as plain text of complete JSON so you can test all remote notification features. They have also provided a comprehensive step by step guide to setting up push notifications on iOS and OSX including managing certificates and provisioning profiles, and how to configure your app.

An open source library that lets you easily check your application against your user interface's specification guides. Once added to your app, Peek is activated by tapping the volume buttons. You can then tap on any UI component to see its layout information. Double-tapping presents the Peek Inspectors where you can find a staggering amount of contextual information about the view you're inspecting, including view, layer, layout and view controller attributes, along with application, screen and device level information.

An open source OS X app to help with debugging the Apple Push Notification Service. Knuff, along with the companion app for iOS, lets you send push notifications to the Apple Push Notification Service with no configuration needed. It can grab your certificate right from your keychain and get the device token automatically, load and save documents including token and JSON payload, and has support for error response codes, universal certificates and custom JSON payloads.

A drop-in SDK and OS X app that enables untethered debugging of your iOS apps. Endo receives and displays all debugging output via WiFi using Bonjour, making debugging your app easier when plugging in your device isn't possible. It also provides a command line prompt that allows you to setup and remotely execute commands that trigger blocks of code in your app. A built in file system navigator also allows you to remotely view the device file system including uploading and downloading files. Endo is quite expensive, but a free trial version is also available.

A drop-in SDK that lets your users or testers report bugs directly from your app. Buglife will automatically take a screenshot when you shake the device, which can then be annotated with arrows, magnification and blurring for sensitive information. Bug reports are sent directly to you by email or can be accessed from the Buglife dashboard, where you can view device environment details and console logs. There's also several third party integrations including Slack, HipChat, JIRA, Pivotal Tracker, and more, so Buglife can fit into your existing workflow.

A really useful view debugging tool that measures view positions with accuracy. ViewMonitor is a drop-in library that gives you an activation switch that floats on top of your interface. Once enabled, it displays a overlay giving you useful information about any selected view, including frame, background colour, font size and text colour. Obviously not a tool to be left your production app but certainly handy if you're having some layout issues.

A debugging framework for iOS applications. Alpha combines multiple debugging tools built on top of a simple, unified API. It lives entirely in your app sandbox and collects information during your application lifetime. It offers many really useful features including: viewing app wide events such as background state transitions, view controller appearances and push notifications; inspecting active object instances on the heap and any other class or object in the app; logging network connections made using NSURLSession and NSURLConnection; and loads more.

A static analysis tool built by the engineers at Facebook. Infer can inspect Objective-C, Java or C code to intercept critical bugs before they have shipped to people's phones, and help prevent crashes or poor performance. It currently supports several types of errors including memory leaks, null dereferencing, parameters and ivars not null checked, premature nil termination arguments, and retain cycles. Facebook is running it continuously on the main Facebook apps for Android and iOS, Facebook Messenger, Instagram, and others, so it's probably worth using on your projects as well.

A fast and simple yet powerful and flexible logging framework for Mac and iOS. CocoaLumberjack is really easy to use as it's DDLog macros use the exact same syntax as NSLog, but is an order of magnitude faster and offers many more powerful features. You can configure it send log statements to multiple loggers such as a file, the console, or a custom logger to send your log statements to a database or over the network. It's also extremely configurable with options to change log levels per file, logger or Xcode configuration and also to compress archived log files and upload log files to a central server.

A free iOS console log viewer for OS X. iOS Console is a viewer inspired by the built-in OS X Console app, making it familiar and simple to use. It displays all messages logged by any connected iOS devices and, unlike the (difficult to find) log viewer built into Xcode, adds filtering and text highlighting to narrow down the logs. You can also quickly add a marker in the console log to make finding your place easier, and there are shortcut buttons to quickly access Crash Logs, Terminal and Activity Monitor.

A collection of LLDB commands to assist in the debugging of iOS apps from the engineers at Facebook. Chisel includes commands for auto-layout debugging, adding breakpoints and watchpoints, performing actions on views and layers, logging and loads more. Some of my favourites include 'border' and 'unborder' to add and remove a border to any view and 'fv' to find a view in the hierarchy whose class name matches the provided regex. Chisel is open sourced on GitHub and the authors welcome pull requests if you have any commands you would like to add.

A powerful in-app debugging tools from the team at Flipboard. FLEX (Flipboard Explorer) is a drop-in library that runs entirely inside your app, so you don't need to be connected to LLDB/Xcode or a different remote debugging server. You can inspect and modify views in the hierarchy, view and modify the properties and ivars on any object, dynamically call instance and class methods, view NSUserDefaults and the file system within your app's sandbox, access any live object via a scan of the heap, and more. It's an essential debugging toolkit.

A remote debugging toolset that uses Chrome Developer Tools on your browser to debug your application's network traffic and managed object contexts. PonyDebugger combines an iOS client and gateway server to send your app's network traffic through a proxy so you can use Inspector's Network tools to debug in the same way you would on a website in Google Chrome. You can also use PonyDebugger and the Chrome Developer Tools to browse entities and managed objects in a Core Data managed object context, display your app's view hierarchy as an XML tree, and remotely log text and object dumps.

A reverse engineering tool for OS X, that lets you disassemble, decompile and debug your 32/64bits Intel Mac, Windows and iOS executables. A lot of what Hopper does goes straight over my head, but the feature list seems pretty powerful. It lets you extract procedural information such as basic blocks and local variables, view a graphical representation of the control flow graph, and it's fully scriptable and extensible.

A service that makes it really easy for your users to report bugs. Instabug provides a drop-in SDK that presents an in-app bug reporting interface when the user shakes the device. Each bug report includes a screenshot that the user can annotate with text or drawings, written feedback, and all the current device stats. It also integrates with loads of popular bug tracking tools so can easily become part of your workflow.

An in-process crash reporting framework for use on both iOS and OS X. PLCrashReporter powers many of the crash reporting services available for iOS including HockeyApp, Flurry, and Crittercism. If you don't want to signup to a crash reporting service, PLCrashReporter is probably the best open-sourced drop-in framework you can use.

A simple Apple Push Notification Service (APNS) debug application for Mac that lets you send push notifications to APNS with no configuration needed at all. It automatically grabs the certificate out of your keychain and discovers device tokens via bonjour. It also supports error response codes, switching between development and production environments, custom JSON payloads and can export identities to PEM format.

Another Mac app for submitting bug reports to Apple's Radar. Kamakiri comes in the form of a full app with a menu bar item to get quick access to your bug reports. It automatically updates your bug reports in the background and will notify you in Notification Center when anything changes. Kamakiri isn't free but it's definitely one of the more fully featured bug reporters.

A menu bar app that makes submitting Radars quicker and easier than using Apple's Bug Reporter. QuickRadar runs in the background on your Mac, giving you a keyboard shortcut to instantly open a window to type your bug report. The code is BSD licensed and hosted on GitHub so the developer welcomes contributions.

A useful little utility to get bug reports from users. The drop-in SDK allows users to shake their device to send a report. You can also download the backend component and deploy it on your server to have your reports collected and classified.

Lightweight mobile crash reporting tool. Includes a Mac menu bar app the makes integrating the framework and monitoring crashes really easy. Crash reports can be viewed on the website and include full stack trace and device stats.

It's difficult to describe Spark Inspector - it seems to work by magic. It is a real-time runtime debugger that gives you a clever 3D view of your app's view hierarchy and allows you to change view properties at runtime. It can also monitor all NSNotifications being sent.