🧰 My set of must-have tools for Apple platforms developers πŸ‘¨β€πŸ’»

August 23, 2024
Sponsored

Your App can be on the App Store next week

Generate iOS app boilerplate code with everything you need: complete auth flow, paywalls with one-click, easy push notifications and so much more. Get SwiftyLaunch now.

Welcome to the 12th issue of the iOS Coffee Break Newsletter πŸ“¬.

As an Apple platforms developer's, your journey involves creating apps for Apple devices like iPhone, Apple Watch, Apple TV, and more. Developers use specialized tools to design, build, test, and deploy these apps. The right combination of these resources helps companies and individuals to deliver high-quality apps that function smoothly across the Apple ecosystem.

To help you with this process, here are my must-have set of tools that can benefit you as an Apple platforms developer divided by categories.

The tools I have included in this issue aren’t sponsored in any way. Most are ones I personally rely on daily, while others are featured based on positive feedback from the community.

1. Integrated Development Environments (IDEs) and Editors

To write code, we need an integrated development environment (IDE).

Xcode is usually the top choice because it is built by Apple and includes everything required for iOS, macOS, watchOS, and tvOS development. It is the go-to tool for many developers, including me, since it is optimized for Apple's platforms and seamlessly integrates with Cocoa and Cocoa Touch frameworks.

However, you can also explore alternatives like AppCode and VSCode.

Xcode for Padel Time

Xcode is my only choice for writing code. Yeah, I know that sometimes it does crash, but it is the best IDE for designing, coding, testing and debugging apps.

2. Testing and Debugging

There are several testing and debugging tools available to help developers release high-quality iOS apps with minimal bugs and errors.

Instruments, integrated within Xcode, is a performance analyzer that helps you profile apps for various Apple platforms, allowing early identification of issues during development.

Proxyman is a modern, native and web debugging proxy for macOS, letting you inspect HTTP and HTTPS traffic between your device and the internet. Alternatives include Charles Proxy and Postman, which serve similar functions for traffic inspection and debugging.

3. Automation, Continuous Integration and Continuous Delivery (CI/CD)

CI/CD tools greatly enhance deployment efficiency for iOS developers by automating repetitive tasks like releases, code signing, and screenshot generation.

Fastlane, an open-source platform, streamlines deployment processes by automating everything from taking screenshots to submitting apps to the App Store. It integrates smoothly with CI services. Popular alternatives include Jenkins and Codemagic.

Xcode Cloud offers a built-in Apple solution for continuous integration and delivery, providing tools for app building, automated testing, and feedback management. TeamCity is another CI/CD option offering robust features for development workflows.

An Apple Developer Program membership includes 25 compute hours per month of Xcode Cloud usage which should be enough to get your app up and running.

Xcode Cloud for Padel Time

Xcode Cloud workflows for Padel Time.

4. User Testing and Distribution

After crafting your amazing app, gathering feedback and identifying potential crashes through user testing is essential.

TestFlight by Apple allows you to invite up to 10,000 testers via email or a shared link, making it easy to gather feedback before launching on the App Store. Testers can provide insights, including screenshots or crash details, directly from the app.

Other options include Firebase App Distribution and TestFairy, which offer similar beta testing solutions but are not first party solutions to developers.

5. Design and Prototype

Design and prototyping tools are essential for iOS developers in building the UX/UI of their applications.

Sketch is a leading tool for creating and editing vector graphics. I often use it myself for designing user interfaces for my mobile apps and websites.

iPhone App Store screenshots for Padel Time 1.2.0.

iPhone App Store screenshots for Padel Time 1.2.0.

Its collaboration features, like Sketch Cloud for syncing and sharing, make teamwork easier.

Other popular options include Adobe XD, which has received positive community feedback, though I haven't personally used it. You can also explore AI-driven design assistance tools like ChatGPT or Claude 3.5 Sonnet for creative input.

If you are like me and feel challenged by design work, creating an app icon might seem intimidating. I recommend exploring the introductory Sketch guides and courses to get started. That is how I managed to design the icon for my app Padel Time. Sketch is also my number one tool to create my app screenshots.

6. Other Developer tools

Homebrew is a free, open-source package manager designed to streamline software installation on macOS. Once installed, Homebrew allows users to easily download and set up software from its large repository, which includes thousands of packages like Fastlane.

If you are not aware, you can contribute and add new software to the Homebrew repository. For more intructions, check out their official guide.

SourceTree is a Git client with a graphical interface, making it easier to manage code repositories without relying on command-line tools. It provides a smooth way to interact with your projects by enabling you to perform tasks like cloning, committing, and managing branches visually. If you prefer alternatives, you can try Fork (which is paid) or Xcode, which has built-in Git source control integration.

I usually stick with Xcode and its Git support for basic tasks but switch to SourceTree when handling more complex merge conflicts.

Docker is a tool designed for running applications in containers, which offer similar isolation and security as virtual machines but are more lightweight because they share the host system's OS. With Docker, you can easily deploy and scale applications across different environments while ensuring consistency in how your code runs.

If you work with Server-Side Swift, Docker is especially beneficial since many servers operate on Linux, making it a reliable solution for testing and deploying your applications in a production-like environment.

Uff, that was a lot! Hope that you find here tools that can make your life easier as an Apple developer. Now it's time to dive into some iOS development topics. Here are this week's highlighted resources. Hope you enjoy πŸ™Œ.

πŸ§—β€β™€οΈ How I switched from QA to Senior iOS Developer

Trust in your potential and don't let others define your limits, and this extends beyond just programming. Vera's article is a great source of inspiration, encouraging everyone to chase their dreams, stand up for what they want, and realize their full potential.

Start by taking small steps in a secure environment, like at home, where it is safe to fail and learn. From there, gather the resources to move forward. Ultimately, your growth and success are in your own hands πŸ‘!

☁️ Getting started with Xcode Cloud

Xcode Cloud offers an easy-to-use CI/CD platform specifically designed for Apple applications. If you are new to Xcode Cloud, I highly suggest exploring Darryl's detailed guide, which walks you through setting it up, creating a build workflow and configuring post-build actions to receive notifications about your workflow results. It is a great resource to help you smoothly get started with Xcode Cloud and make the most of its features.

βœ… Upload iOS apps to TestFlight with GitHub actions and Fastlane

The third and final part of a tutorial series on creating an iOS CI/CD pipeline is now available! In the earlier parts, Artur from Bright Inventions covered building and testing an app locally using Fastlane, and then setting up GitHub Actions for these tasks.

In this part, Artur demonstrates how to upload an app to TestFlight using GitHub Actions alongside the Fastlane Match tool. You will also learn how Fastlane Match works and how to securely pass sensitive data like API keys and tokens in GitHub actions workflows without exposing them in the codebase.