We run down 11 of the best tools for iOS developers.
A developer is only as good as the tools they use. Fortunately, iOS developers have an impressive toolbox to choose from. Whether you need to design the look and feel of your app, keep your code clean or perform some maintenance, these 11 tools will kickstart your productivity.
In a perfect world, developers would write perfectly readable code and we'd all ride flying unicorns to our jobs at the kitten cuddling factory. But this is not a perfect world. That's why documentation is crucial. Documentation means you can collaborate on your app development without worrying that other developers will be stymied by puzzling code. It also helps you become a better coder by having to explain your own logic. Plus it gives you context when you come back to a project that you've left sitting for some time. Many developers skip this process because it can be time-consuming. But there are tools available to take the pain out of documentation.
Dash can store snippets of code and search offline through its library of more than 200 APIs. It keeps documentation sets up to date, allows you to generate your own documentation sets and download or request documentation sets. It also includes more than 100 cheat sheets for elements ranging from ASCII tables to iOS device specifications.
Dr.Explain differs from the other documentation tools in that it's specifically for front-end UI documentation. The tool automatically analyzes your app's UI, screenshots all of the elements then adds explanatory callout boxes. You can edit the text in the box to describe the UI element and then export in HTML, RTF, PDF or CHM.
The UI and UX of your app are the only things end users will actually see, so it's important to get them right. It's especially crucial for iOS developers considering the high bar for approval on the Apple App Store. These tools will help you deliver an app that has beautiful form to match its functionality.
You can definitely use Adobe Creative Suite tools like Photoshop and Illustrator to design the look and feel of your iOS app, but Sketch was built specifically for UI design. Even more specifically, it was built for Mac OS. Sketch lets you create vector graphics and export some of the design elements as CSS or SVG code. It also has a rich plugin library that can speed up your workflow by performing actions like turning text or shape layers into symbols, rendering React code into Sketch components and designing custom-animated transitions.
Figma is a browser-based vector art tool that lets you collaborate with your team in real time. Think of it as Sketch meets InVision. Being browser-based means Figma will work on any platform. It also generates code snippets to help developers move their designs into their codebase. You can export properties like color, typography, spacing and design assets in Swift, CSS or XML. Figma also lets you compile components libraries for design components you and your team are likely to reuse. Any time a component is updated in the library, it dynamically updates across all designs.
Adobe XD works best in tandem with Illustrator and Photoshop, but is a powerful vector tool in its own right. It allows for easy prototyping with interactive click-through elements. It also integrates well with Slack or JIRA to keep a creative team in step throughout the design process. The downside of Adobe XD is that it doesn't have a function to export to CSS or HTML, so your prototype will have to be coded. At its heart, Adobe XD is a design tool, not a development tool.
Framer X is a powerful prototyping tool that lets you rapidly create completely responsive layouts. While it doesn't have the vector drawing capabilities of Sketch or Figma, it does allow you to import designs from Sketch using a plugin. Framer X also allows you to import elements from React without having to replicate them in production. You can also render HTML elements and use CSS to style your prototype. Design and the React code remain synchronized throughout the process.
Your beautifully written code doesn't always perform the way it should. It can be frustrating when syntactically correct language produces unexpected outcomes. But these debugging tools can help you squash the source of your problems.
Reveal is a runtime view debugger for iOS. Yes, we know. Xcode already has a built-in view debugger. But Reveal has several features that make it worth a look. Reveal lets you debug the view hierarchy of your iOS apps over USB, eliminating any pesky network issues. It also allows you to debug app extensions, a feature not offered in Xcode's pre-loaded view debugger. Perhaps the best selling point of Reveal is its beautiful and intuitive interface. You can easily navigate, rotate and zoom in on elements in your view hierarchy. Reveal even lets you make live edits to your running application.
Raygun runs in the background of your app and pushes smart alerts to you to tell you when you need to take action. You can customize your notifications, and even receive team chat alerts and emails for recurring or worsening issues. Any error event generates a full stack trace as well as information on raw data and affected users. And if there are bugs in your code that you can't or don't want to fix, you can set filters so you don't receive reports on them.
Bugsee gives you a complete picture of any error event. It will show videos of user actions alongside the system state and communication with the back end so you can identify the source of the problem and see what your users saw. The tool also has a full analytics dashboard that gives you a view of trends on similar crashes divided into device type, OS and times. You can even integrate Bugsee into Slack, JIRA and Trello to keep your entire team across crash reports.
Flexihub is more than just a debugger. It allows you to remotely connect to any USB or serial device, even cross-platform. But Flexihub does let you to debug your app remotely. You start Flexihub on a local machine and then launch your app in debug mode on a remote machine. While Xcode will allow you to debug wirelessly, both devices have to share a network. Flexihub eliminates this need.