Xcode is an integrated development environment (IDE) and code editor that supports a wide range of programming languages, including C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and Swift and works with a multitude of dedicated Xcode developer tools (apps, plugins, extensions, etc). Apple provides Xcode for programmers who create software for iOS, macOS, tvOS, and watchOS devices. App developers use this tool to build and edit their projects and work with them from the initial idea to publishing the solutions to the App Store. The first Xcode release was in 2003, and the latest version is v9.
Millions of developers from all over the world find Xcode an extremely helpful tool and use it to create their advanced solutions. However, sometimes, it may be necessary to modify some of its functionality so that the IDE can fit the developer’s workflow.
In the older versions of Xcode (until v7), there was a possibility to create plugins by injecting the code into the IDE while it was running. Working with plugins, developers used a special Xcode dev tool - Alcatraz that allowed plugins submission and distribution. Starting from Xcode 8 this option is no longer supported.
As a security precaution, since version 8 Xcode offers library and bundle validation. Now, once started, Xcode does not allow plugins which were previously installed with Alcatraz to be loaded. It’s not really all that bad though, according to the announcement made by Apple at WWDC, it is possible to create Xcode source editor extensions which can improve your workflow and speed up the development process. Below we will have a look at 8 best Xcode extensions and Xcode dev tools which are most commonly used today, read on to know more.
This Xcode source editor extension offers easy access to a number of places you may need for your project. The tool provides you with an additional menu in Xcode and lets you go to various locations, which is extremely helpful during Xcode app development. For example, you can open Finder to the Project folder, Provisioning Profiles, DeviceSupport, CodeSnippets Folder, Themes, and more. Also, it will help you easily check and open GitHub page for the project repository in your default browser. And if, while working on a file, you find that any destination is missing, you can add it and submit a pull request.
FlexiHub is an efficient software solution designed to redirect iOS devices over the network. This reliable app will become a great addition to Xcode iOS development tools allowing accessing iPhones, iPads, or iPods from any network computer, which makes it possible to test and debug iOS apps remotely. FlexiHub is able to virtualize USB devices and forward them across LAN, Ethernet, WIFi, or the Internet quickly and securely.
PlayAlways is one of Xcode development tools that allows creating iOS or macOS Swift playgrounds. Thanks to this menubar app, you’ll be able to create iOS, macOS or tvOS playgrounds with nothing more than a couple of clicks or keyboard shortcut just after you have specified the path of where you want to save them. The solution also comes with Xcode extension which helps create a playground from Swift code that you've currently selected. This significantly simplifies testing your ideas in Swift before using them in your projects.
It’s not uncommon that developers need to add an import module but scrolling up seems to be just a waste of time. In this case, a good idea will be to use Import - a simple Xcode source editor extension. This tool will help you in your Xcode app development by offering you a simple keyboard shortcut and menu item to move any import from a selected line to the required position at your file’s top.
Injection is an Xcode plugin that has become a standalone app after Xcode stopped supporting plugins. This Xcode tool for Mac serves for injecting changes to class method implementations into an app running in a simulator or a macOS program. The app’s main feature is "swizzling" the new method implementations onto the original class so that they take effect at once and the developer won’t need to relaunch the app. Another great advantage of Injection is the Xprobe viewer used for browsing an app's memory or creating a memory snapshot which can be exported as a separate web page for later analysis.
An Xcode tool to analyze the build process. If compile times become an issue, the BuildTimeAnalyzer is a great solution to identify potential bottlenecks. The tool needs to be enabled in Xcode via compiler flag (Xcode 8) and runs as its own application. The solution uses the log files generated by Xcode when building to display a function by function list detailing exactly how long it took the compiler to build your project.
Refactorator is another example of popular Xcode tools for Mac. If you have no possibility to install it as a plugin (e.g. you utilize Xcode 8) or just don’t want to do this, you can use this tool as an app. The application will allow you to refactor Swift code in Xcode. With this solution, you will be able to not only rename public or internal vars, functions, enums and so on but also generate a complete standalone static website of navigable code from your Xcode project with linked entities between the files.
Formatter is a handy Xcode development tool for Mac that gives an easy way to reformat JSON files in order to make them more human-readable. Once you drag and drop the required file onto the convenient app’s window, the tool reformats it immediately. Alternatively, you can drop your files onto the dock icon to reformat them. The solution also provides Xcode extension which will let you use a shortcut key to reformat files in your Xcode project. The extension can be enabled in System Preferences. In addition, you can preview the reformatted JSON files using a Quick Look plugin. Since version 1.1 the tool offers a new command for reformatting pasteboard without creating a new file.