Apple platforms developer Rudrank Riyam chose the must-have tools for iOS developers and Kätrin Sibul illustrated it with an infographic.
An Apple platforms developer’s journey begins from learning about it and progresses to using an IDE to write code in, working with design, using open-source projects so as to not reinvent the wheel, debugging their app and finally testing it before release. To help you with this process, here are 25 must-have tools that can benefit you as an Apple platforms developer.
The article is divided into the following categories:
- IDEs and editors
- Open-source projects
- User testing
So, let’s start exploring some exciting tools!
We’ll start by learning about Apple platforms development. As Apple launches new features and frameworks every year, there’s a lot to learn out there. Last year, Apple released widgets in iOS 14, and developers of every major app wanted to have one. These are some resources you can refer to if you want to level up your game:
Hacking with Swift
Hacking with Swift is the one-stop solution for learning Apple platforms development. There are probably more than a thousand articles and tutorials dedicated to taking your learning further. The author of Hacking with Swift, Paul Hudson, has also written has a plethora of books on building apps for the different Apple OSes.
In most of your daily Google searches related to iOS development, the probability of the first link you click leading to an article by Paul Hudson is exceptionally high.
Raywenderlich is a community website where hundreds and developers and editors worldwide work on creating high-quality programming tutorials. The website contains video courses as well as articles related to Apple platforms development and Swift. You can find books that range from an apprentice level to ones written for experts.
Design+Code website’s courses help you learn to design and code by building real Apple platforms apps with Swift. It also has content related to UI design.
objc publishes books, videos and articles on advanced techniques for iOS and macOS development. Here, you’ll find in-depth guides, with my favorite one being “Thinking in SwiftUI.”
IDEs and editors
We require an integrated development environment (IDE) to write our code in. Usually, Xcode is the best choice, as it is made by Apple, and they ship everything that is required with it. But there are few alternatives that you can experiment with as well.
Xcode is an integrated development environment created by Apple for building apps for Mac, iPhone, iPad, Apple Watch and Apple TV. It is the topmost choice for me and other developers, as it is created by these platforms’ creator, Apple, and is tightly integrated with the Cocoa and Cocoa Touch frameworks.
Another alternative to Xcode is AppCode by JetBrains. This tool is marketed as an intelligent and smart IDE for iOS/macOS development. It also allows you to perform built-in testing with ease with the integration of the XCTest, Quick, Kiwi, Catch, Boost.Test and Google Test frameworks.
If you want to collaborate live with a colleague, VSCode is an excellent substitute for Xcode. It can also be used for working with Swift on Linux and Windows.
In your app development journey, you interact with designers in your team or design your own apps (if you’re an indie dev). You probably use Sketch, Figma or Adobe XD to obtain the design from the designers.
One of the apps that can help bridge the process is Zeplin. It takes designs from your preferred design software and exports them to generate assets, design specs and code snippets. The developer gets a “locked” design, while designers can iterate for the subsequent releases.
Mobbin Design contains over 50,000+ fully searchable mobile app screenshots that can save hours of UI and UX research. It helps you to discover best-in-class apps so that you can make your own the best (and maybe feature on Mobbin one day!). As a developer, you may interact with designs daily or code them yourself. Knowing what the best app out there looks like helps you to use it as a reference.
Dribbble is a more design-oriented site, but nonetheless, it can help give you design inspirations. You can find an overabundance of designs to take inspiration from and understand the latest design trends. For example, neumorphism was the trend a year ago.
You can use these open-source projects in your own apps to simplify your development process.
In most apps, you load images from the internet and cache them on the device. You’re likely also working on one to show images asynchronously. For this, SDWebImage is an excellent open-source library with detailed documentation.
Sourcery is a code generator for the Swift language that is built on top of Apple’s own SwiftSyntax. It extends the language abstractions to allow you to generate boilerplate code automatically.
If you’re into using Apple’s latest framework, SwiftUI, to develop apps, you can look into SwiftUIX library, which attempts to fill the framework gaps. It is one of the most complete ports of missing UIKit/AppKit functionality and strives to deliver it in the most Apple-like fashion possible. It complements the SwiftUI standard library, offering hundreds of extensions and views to build apps with ease.
Introspect is another SwiftUI library that allows you to get the underlying UIKit or AppKit element of a SwiftUI view. This is helpful when you want to modify something that is not modifiable using the current APIs, such as accessing UITableView to modify separators or UINavigationController to customize the tab bar.
If you want to simplify the networking layer, Alamofire is the framework for you. Alamofire is an HTTP networking library written in Swift. You can think of it as a wrapper over URLSession. Its main features include chainable request/response methods, combine support, JSON and Codable decoding, authentication and response validation, among more.
Debugging forms an essential part of your software development journey. You may find bugs in your code and want to decipher their cause, leaks slowing the app down or UI glitches that your user faces. These tools will help you with each of the processes and improve the overall app experience.
Instruments is an application performance analyzer and visualizer integrated into Xcode itself. It’s designed to help you profile your iOS, watchOS, tvOS and macOS apps, processes and devices to better understand and optimize their behavior and performance. Incorporating Instruments into your workflow from the beginning of the app development process can save you time later by helping you find issues early in the development cycle.
FLEX (Flipboard Explorer) is a set of in-app debugging and exploration tools for iOS development. When presented, FLEX shows a toolbar that lives in a window above your application. From this toolbar, you can view and modify nearly every piece of state in your running application.
Charles is an HTTP proxy/HTTP monitor/reverse proxy that enables you to view all HTTP and SSL/HTTPS traffic between your machine and the internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information). To pass and view the request and responses, you configure the simulator or actual device accordingly.
Hyperion is a hidden plugin drawer that can easily be integrated into your app. It sits discreetly under the app to be there when you need it and out of the way when you don’t. Hyperion plugins are designed to make inspecting your app quick and simple.
Your future self will thank you for documenting your code. Properly maintaining and documenting the codebase will help you and your future coworkers understand it years down the line. Here are some tools that will help you create excellent documentation.
Jazzy , as the tagline suggests, is for creating soulful docs. It is a command-line utility that generates documentation for Swift or Objective-C. If you want source code docs matching Apple’s official reference documentation, this is the tool for you.
DocC, or Documentation Compiler, was announced by Apple this year at WWDC’21. It makes it easy for you to produce documentation for your Swift frameworks and packages. The compiler builds your documentation by combining comments written in-source with extension files, articles and other resources living alongside your project in Xcode. This allows you to create rich and engaging documentation for other developers.
Automation helps you reduce time-consuming and repetitive tasks, like sending a release, taking screenshots or code signing. Using the tools given below, you can automate distribution steps, including incrementing the build version, code signing, and building and uploading the app.
fastlane is an open-source platform aimed at simplifying Apple platforms deployment. It lets you automate every aspect of your development and release workflow, from automating screenshots to app store deployment. It also integrates effortlessly into existing CI services.
Their tagline says it all – fastlane handles tedious tasks, so you don’t have to.
You can use Codemagic to automate the whole build, test and release pipeline of your iOS apps to get to the market in record time. With Codemagic, you can set up the workflows in a single, easy-to-configure codemagic.yaml file. The file can be committed to version control, and when it is detected in the repository, it will be used to configure the build.
The best part of using an automation service is the different Xcode and OS versions they provide. Your code may work perfectly for iOS 14.5 but crash in iOS 13.4 due to changes in Apple’s framework itself. Codemagic provides powerful Mac mini and Mac Pro build machines with multiple Xcode versions and runtimes preinstalled.
It’s also worth noting, that Codemagic allows you to build and publish iOS apps without a Mac. Learn more here.
After working on your fantastic app, you want feedback on it and to find any missed edge cases that result in a crash. User testing is crucial for this, and these two tools can help you with that.
TestFlight by Apple makes it easy to invite users to test your apps and collect feedback before releasing them on the App Store. You can invite up to 10,000 testers through their email or by sharing a link.
Testers can send feedback from your app by taking a screenshot of the current screen. They may provide additional context about a crash immediately after it occurs.
TestFairy is a mobile testing platform that helps enterprise companies streamline their mobile development process and release better apps to the market in shorter development cycles. You can upload the API from fastlane for distribution. Its highlighting feature includes a video recording of what was done and what went wrong when the user was testing.
In addition to the tools mentioned in this article, there are countless others out there that can make your life easier as an Apple platforms developer. From designing the app to automating the build process to user testing, being an app developer is a journey of its own, and I can tell you that it’s a pretty exciting one!
About the author: Rudrank is an aspiring technical author and Apple platforms developer. You can mostly find him on Twitter (@rudrankriyam) or on his personal blog (rudrank.blog).