OldOS: iOS 4 recreated in SwiftUI for modern iPhones
Recreating a fully functional version of iOS 4 in SwiftUI.
At a glance
- What is it?
- OldOS is an open-source SwiftUI recreation of the iOS 4 user interface that runs on modern iPhones and integrates with real device data. Version 2.0, released in 2026, supports iOS 26 and current Xcode versions.
- Who is it for?
- OldOS is appropriate for Swift and SwiftUI developers who want to study a large, feature-complete example of how to build complex mobile UI from scratch, and for users who want the iOS 4 experience on a current iPhone without carrying a vintage device. The Creative Commons Attribution 4.0 license means attribution is required if the code is reused in another project.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 39 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What OldOS sets out to recreate
OldOS is a SwiftUI application that reproduces the visual design and interactive behavior of iOS 4, the iPhone operating system from around 2010. The README describes the goal as a pixel-perfect recreation of the iOS 4 user experience, implemented almost entirely in SwiftUI with a modern device running current iOS as the target.
The project was originally created by the author during high school, as stated in the README, and has since been updated with Version 2.0 released in 2026, which retooled the application for modern devices including iOS 26 and resolved compilation issues with current Xcode versions. The README describes 2.0 as bringing the project back after a period of inactivity.
The stated purpose is dual: to provide nostalgic access to the iOS 4 experience without needing a physical vintage iPhone, and to serve as a learning resource showing how iOS works and demonstrating SwiftUI's capabilities. The entire application is open-source for this reason.
Which apps are functional and how they use real device data
The README emphasizes that the vast majority of OldOS apps are fully functional and integrate with live device data rather than displaying static mock content. Specific examples given: the iPod app plays music from the device's music library, Maps provides directions using real location data, Safari browses the web, and Weather shows current conditions.
The README also lists general OS-level functionality that works: changing the wallpaper, adjusting settings, and searching for apps. The Springboard (the iOS home screen) and Lock Screen are implemented as HomeScreen and LockScreen respectively.
A qualification appears in the README: a few apps are described as not yet ready for general use, with the implication they are included in the codebase but not fully functional. The README does not list which specific apps are incomplete, only that they are coming.
How the repository is organized in SwiftUI files
The README describes the project's structure directly. Code is organized by app: each app has its own file within the OldOS/ directory. Within each app file, the README notes that code and commentary explain the design decisions behind each component.
A Common file holds shared UI elements. The README describes the mindset as similar to Interface Builder: a collection of base UI elements that can be used directly from other files for generic behavior, or copied and modified for app-specific variations. This pattern keeps the codebase from duplicating logic across apps while allowing each app to extend the shared components.
HomeScreen and LockScreen constitute the Springboard layer of the simulated OS. Image assets are stored in Assets.xcassets, organized by app.
The top-level repository entries include the OldOS/ directory for Swift source, an Images/ directory, README.md, and a source.json file. The project uses .gitmodules, suggesting at least one dependency is managed as a git submodule.
Building OldOS and the IPA release
The README provides no explicit Xcode build instructions, but the repository structure (an Xcode project in the OldOS/ directory, Swift source files, and Assets.xcassets) is standard for an iOS application. Building requires Xcode on a Mac and a developer account to sign the application for deployment to a device.
The repository has published IPA releases for sideloading. The most recent release is 2.0 Build 8, dated 2026-08-22. Previous releases include 2.0 Build 7 from 2025-12-07 and 2.0 Build 1 from 2025-06-29. IPA files are the iOS application archive format used for distribution outside the App Store, typically installed through tools like AltStore or direct device provisioning.
Version 2.0 is described in the README as supporting iOS 26, the current iOS version as of the repository's most recent release, which indicates the project has been actively updated to match Apple's annual SDK releases.
Limitations: incomplete apps and the SwiftUI constraint
The README acknowledges that some apps are not fully functional yet. It does not enumerate them, which means a developer who wants to use a specific OldOS component must review the source to confirm it is complete.
The iOS 26 and modern Xcode requirement for Version 2.0 means the project does not support older iOS versions or older Xcode builds. Developers with older devices or development environments would need to use an earlier version of the project.
Building almost entirely in SwiftUI, as the README states, means the application runs only on iOS 13 and later at minimum (SwiftUI's earliest release), and practically requires a current iOS version given the targeting of iOS 26 in 2.0. This is consistent with the project's stated goal of running on a daily driver device rather than a vintage one.
Xcode's built-in iOS simulator can run historical iOS versions using simulator runtime downloads, but it requires a Mac and does not integrate with real device data such as actual music libraries or live location. OldOS runs on a real device with real data, which is its primary differentiation. Apple's own Xcode simulator, by contrast, runs actual iOS firmware in a sandboxed macOS process, making it accurate for testing app behavior but unsuitable as a nostalgia experience or SwiftUI demonstration on a real device.
License and the learning resource aspect
OldOS is published under the Creative Commons Attribution 4.0 International license. This permits use, redistribution, and modification with attribution to the original author. The README does not contain a Contributor License Agreement or contributor guidelines, so contributions are expected to follow the same license.
The README explicitly frames the project as a learning resource. The entire codebase is open-sourced specifically to let developers study, modify, and build on it. Each app file includes commentary alongside the code. For engineers learning SwiftUI, a working iOS 4 replica covering navigation, settings, web browsing, media playback, and map rendering in a single open-source project is a more concrete reference than an isolated tutorial.
The README notes that the author built the original version over approximately six months during high school. Version 2.0 continues that trajectory with support for modern iOS and Xcode, indicating the project is still receiving updates as of its most recent release on 2026-08-22.
Editorial conclusion
OldOS is appropriate for Swift and SwiftUI developers who want to study a large, feature-complete example of how to build complex mobile UI from scratch, and for users who want the iOS 4 experience on a current iPhone without carrying a vintage device. The Creative Commons Attribution 4.0 license means attribution is required if the code is reused in another project. A few apps are documented as not yet ready, so developers adopting specific components should check the source for completion status before relying on them.
Frequently asked questions
Where can I find the OldOS TestFlight or IPA?
The repository publishes IPA release files on the GitHub Releases page. The most recent release is 2.0 Build 8, dated 2026-08-22. IPA files require a sideloading tool or developer provisioning to install on a device. The README does not mention a TestFlight distribution.
What is OldOS made of technically?
The README states OldOS is built almost entirely using SwiftUI. Image assets are stored in Assets.xcassets, organized by app. The project uses git submodules for at least one dependency. Code is organized by app in separate Swift files within the OldOS/ directory.
What is an OldOS IPA?
An IPA is an iOS application archive, the file format used to distribute iOS apps outside the App Store. OldOS publishes IPA files on its GitHub Releases page for users who want to sideload the app onto their device without building it from source in Xcode.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zzanehip-the-oldos-project)