Yes, it's technically still possible to write a plain C iOS app in 2025 (and beyond). While Apple pushes developers towards Swift and SwiftUI, and Objective-C is slowly fading, the underlying iOS APIs are still C-based. This means you can use C, potentially with some Objective-C bridging for UI elements or higher-level functionalities, to create a functional app. However, this approach is significantly harder and less efficient than using Swift or Objective-C, lacking modern tools, libraries, and simplified memory management. Maintaining and updating a C-based iOS app would also be a considerable challenge compared to using more modern, officially supported languages and frameworks. Therefore, while possible, it's not generally recommended for practical development.
The Hacker News post titled "Is it possible to write plain C iOS app in 2025?" poses the question of whether developing an iOS application using solely the C programming language will still be feasible in the year 2025. The author elaborates on their motivations, expressing a desire to avoid the perceived complexities and overhead associated with more modern iOS development approaches, such as using Swift, Objective-C, or UI frameworks like SwiftUI and UIKit. They specifically highlight concerns about the size and performance implications of these frameworks and languages, expressing a preference for the leaner, more direct nature of C.
The author acknowledges that using C for iOS development might present certain challenges, particularly concerning user interface design and interaction with the operating system's APIs. They seem to be aware that Apple's preferred and officially supported methods heavily favor higher-level languages and frameworks. However, they express a hope that lower-level access to the system might still be possible, possibly through leveraging older APIs or exploring alternative methods. The underlying motivation appears to stem from a desire for greater control over the application's performance and resource usage, potentially aiming for a smaller application footprint and optimized execution. The question ultimately seeks to gauge the practical viability of pursuing this unconventional approach to iOS development in the near future. They are implicitly inquiring about potential roadblocks, available tools, or alternative strategies for achieving their goal of a C-based iOS app while acknowledging the prevailing trend towards higher-level development paradigms within the iOS ecosystem.
Summary of Comments ( 53 )
https://news.ycombinator.com/item?id=43682984
Hacker News users discussed the practicality and challenges of writing a plain C iOS app in 2025. Several commenters pointed out that while technically possible, using only C would be incredibly difficult and time-consuming, requiring significant workarounds to interact with essential iOS frameworks (mostly written in Objective-C and Swift). Some suggested leveraging existing C libraries and frameworks like SDL or raylib for cross-platform compatibility and easier graphics handling. Others questioned the motivation behind such an endeavor, given the availability of more suitable languages and tools for iOS development. The general consensus was that while a pure C app is theoretically achievable, it's a highly impractical approach for modern iOS development. Some pointed out that Apple's increasing restrictions on low-level access make a pure C app even more challenging going forward.
The Hacker News post "Is it possible to write plain C iOS app in 2025?" generated a fair number of comments discussing the feasibility and practicality of using C for iOS development.
Several commenters pointed out that it's technically possible but likely not practical or advisable. One commenter explained that while the entry point of an iOS app might be compiled C, interacting with any iOS frameworks would necessitate using Objective-C or Swift wrappers. They highlighted that even if some parts could be written in pure C, integrating with the iOS ecosystem would be challenging, requiring significant bridging work.
Another commenter explored the potential use of a cross-compiler targeting a suitable runtime like WASM/Wasmer, allowing for more C code. However, this approach was acknowledged as having potential performance limitations. This led to a discussion about whether such an approach would even be allowed on the App Store, given Apple's restrictions on interpreters and JIT compilers.
Some commenters offered alternative perspectives, suggesting that using C for specific performance-critical components within a larger Swift/Objective-C application might be a more realistic scenario. They argued that rewriting an entire app in C wouldn't be worth the effort, given the mature tooling and frameworks available for Swift/Objective-C development.
A few users mentioned existing projects and tools that allow for C development on iOS, such as the SDL library and Beeper (an iMessage client largely written in C++). These examples served to demonstrate that C can indeed be used, but often in conjunction with other languages and primarily for specific use cases.
A recurring theme in the comments was the trade-off between performance and developer productivity. While C might offer potential performance gains in some scenarios, the increased development time and complexity involved in interfacing with the iOS ecosystem were generally seen as outweighing those benefits.
Finally, some commenters discussed Apple's policies and their potential impact on C-based iOS development. The possibility of Apple further restricting or disallowing certain approaches was raised, reinforcing the notion that relying solely on C for iOS development is a risky proposition.