Loading comparison...
Loading comparison...
Apple's legacy language for macOS and iOS development. Adds Smalltalk-style messaging to C. Predecessor to Swift.
Objective-C is a general-purpose programming language that adds Smalltalk-style messaging to the C programming language, created by Brad Cox and Tom Love in the early 1980s. Apple adopted Objective-C as its primary development language when it acquired NeXT in 1996, and it became the foundation for macOS (then OS X) and iOS application development for over two decades. The language's distinctive bracket-based message-passing syntax ([object message]) and dynamic runtime set it apart from C++ and other object-oriented C derivatives.
Objective-C's runtime enables powerful features like method swizzling, dynamic method resolution, and the creation of proxy objects — capabilities that underpin much of Apple's Cocoa and Cocoa Touch frameworks. The language introduced categories for extending existing classes without subclassing, protocols for defining interfaces, and key-value coding for indirect property access. At its peak, Objective-C was the primary language for millions of iOS applications on the App Store and all macOS software.
Apple's introduction of Swift in 2014 marked the beginning of a transition period, but massive amounts of Objective-C code remain in production. Apple's own frameworks were written in Objective-C, and many foundational libraries and SDKs still use it. The language's C compatibility means it can directly call C libraries and even incorporate C++ code through Objective-C++ files, providing unmatched interoperability in the Apple ecosystem.
Objective-C diffs are essential for teams maintaining legacy iOS and macOS codebases, especially during incremental Swift migration where bridging headers must stay in sync. Changes to method signatures, protocol conformance, and category definitions can break compatibility with Swift code that depends on them.
Developers should compare Objective-C files when reviewing memory management patterns, delegate protocol changes, and runtime method modifications.
UtraDiff compares Objective-C files with syntax highlighting for message-passing syntax, @interface/@implementation blocks, property declarations, and protocol conformance. The distinctive bracket-based method call syntax [object message:param] is fully highlighted, making selector name changes and argument modifications immediately visible.
Side-by-side view separates header interface changes from implementation details, while inline view consolidates method body modifications. Alt+arrow navigation jumps between changed methods, helping review legacy iOS and macOS codebases.
Supported extensions: .m .mm