Writing Good Bug Reports
A guide on writing effective bug reports for software developers, with tips from an Apple-centric perspective.
A guide on writing effective bug reports for software developers, with tips from an Apple-centric perspective.
A software testing expert shares insights and a template for effectively reporting defects in mobile applications across various platforms and conditions.
A guide to manually integrating Google Firebase into an iOS project without using CocoaPods, covering framework setup and linking in Xcode.
Introducing 'trainer', a tool to convert Xcode test results from plist to JUnit format for Jenkins, solving issues with xcpretty and xctool.
A guide to disabling NSLog in iOS/macOS apps to reduce console noise from third-party libraries, with code examples in Swift and Objective-C.
A guide to organizing Xcode projects with conventions for naming, folder structure, and managing multiple targets and platforms.
Explains best practices for checking iOS versions in apps, highlighting pitfalls of old methods and recommending modern, reliable APIs.
Investigates the thread safety of creating UIImage objects on background threads, analyzing crashes and Apple's documentation.
A quick guide on enabling app deletion on iOS devices by adjusting Restrictions in the Settings app.
Explores the future of apps that users interact with primarily through notifications, widgets, and Siri without ever launching the main app interface.
Explains how to use Swift's @available attribute to mark methods as unavailable, with examples for subclassing and legacy code.
Explores bridging Swift's modern features with a large legacy Objective-C/C++ codebase, discussing practical integration strategies.
PSPDFKit's journey to achieving fast and reliable UI testing for their iOS PDF SDK, covering strategies beyond Apple's XCUI framework.
PSPDFKit shares lessons on building cross-platform SDKs with native UI and shared C++ core for iOS, Android, and web.
Explains when to use strong vs. weak and optional vs. implicitly unwrapped IBOutlets in Swift/iOS development, with practical rules.
Analysis of the Apple vs FBI encryption case, arguing that longer passcodes can maintain iPhone security even if Apple loses.
A guide to fixing Fabric SDK crashes on iOS startup when installed via CocoaPods by adding the required API key to Info.plist.
A programmer reflects on the nature of programming, the value of learning multiple technologies, and the importance of passion and teamwork for a sustainable career.
A guide to preventing unit tests from loading the main AppDelegate in Swift, improving test speed and isolation.
Explains how FlowControllers can improve iOS app architecture by managing navigation and presentation logic, reducing dependencies and spaghetti code.