Recreating a fully functional version of iOS 4 in SwiftUI.

Overview

alternatetext alternatetext alternatetext alternatetext


Updates: Version 1.0 is currently available 🎉
While I work on fixing an issue in Xcode 12.5+ with LazyVGrid, I recommend you build using Xcode 12.4 and below.

What and Why?

OldOS is a testament to the days of yesteryear, showcasing what iOS once was ten years ago. The ethos of the app is to merge the technologies of today with a pixel-perfect recreation of the user experience of the past. The vast majority of apps in OldOS are fully functional — meaning they seamlessly integrate with the data on your phone to deliver a live, emulator-esque experience. What does this mean? Well, you can play your music in iPod, get directions in Maps, surf the web in Safari, view the current weather in Weather, and much more. By the same token, no shortcuts were taken in fully fleshing out the operating system. You can change your background, adjust settings, search apps, et cetera. There are a few apps still not ready for primetime but don't worry, they're coming soon.

With OldOS, you no longer need to worry about securing a legacy iPhone to experience nostalgia — it's available on your daily driver.

Part of the goal with OldOS is to enable anyone to understand how iOS works and demonstrate just how powerful SwiftUI truly is. For that reason, the entire app is open-sourced — enabling developers to learn about, modify, and add to the app. I thought building this over my last six or so months in high school and sharing it with the world would be a fun and productive endeavor.

What's Special

* 🧑‍💻 Built almost entirely using SwiftUI.
* 🎨 Designed to be as close to pixel-perfect as possible.
* 📱 Fully functional, perhaps even usable as a second OS.
* ❤️ A testament to the work of Apple employees of both the past and the present.
* 🗺️ Fully open source for all to learn, modify, and build on.

Where to Begin

The project is logically structured in files by app. Inside each app file, you'll see code and commentary behind it. Aside from main apps, there is the Common file. My mindset was to build the app in the same way Apple built interface builder — you have a collection of UI elements at your disposal that are bases. You can then make a copy in whatever other file you'd like if you require custom abilities. If you just need the generic version, you can use the generic. Hence, common, containing all your common UI elements. Lastly, there is HomeScreen, and LockScreen — essentially making up the Springboard. Lastly, in Assets.xcassets, you'll find all the image assets structured by app.

Imagery

Thanks

Thanks to all who decide to use, learn from, and modify this project. As well as all the creators of libraries imported. This was a blast to create and I hope you enjoy it. I built this project while I had a little bit of time before college. If you enjoy it, please consider providing any little bit of support you can — it truly means a million.

Buy Me A Coffee

License

Creative Commons Attribution 4.0: https://creativecommons.org/licenses/by/4.0/

Comments
  • Design error on Home-Button iPhones

    Design error on Home-Button iPhones

    Hi, I’ve sideloaded OldOS with AltStore and on my test iPhone (iPhone 6s) is looks like this, the Dock is very Buggy, I hink its because the Fake Home-Button.

    And the bar on the Top is bigger, than normal im a App in OldOS

    E5A86680-BDA1-42EE-9957-A6139629D38B

    opened by TheBalkanDev 3
  • Unable to build on Xcode 12.3

    Unable to build on Xcode 12.3

    I really want to test OldOS, and the TestFlight is already full. I decided that I can build it with Xcode, so I removed Xcode 12.5 and downloaded 12.3, just as recommended. However, I only have a personal developer account, and I can't sign it. It throws this error: "Personal development teams, including {account name}, do not support the Access WiFi Information and Game Center capabilities.". Is there any workaround for this? I really want to install it to my device. Maybe its possible to make an IPA, and install it with Cydia impactor? Thanks

    opened by Ifuxit 2
  • Safari only loads website on first page

    Safari only loads website on first page

    https://user-images.githubusercontent.com/49427963/121764575-f06ea400-cb7f-11eb-873e-c827ba71a24a.mov

    When I try to open a website in a new tab in Safari, it loads the page on first tab.

    • iOS 15 Dev beta 1
    • self-signed IPA from github
    opened by hellojsna 2
  • Can you Release Build 9 as .ipa and Suggestion

    Can you Release Build 9 as .ipa and Suggestion

    I’ve sideloaded OldOS with AltStore, but Build 7 is buggy. Can you Release the newest Build as .ipa file? I would do it myself but I don’t have any Swift knowledge.

    And can you make, that you can import music from the Files App into iPod App?

    opened by TheBalkanDev 1
  • Home screen can be scrolled vertically after opening Camera or Weather

    Home screen can be scrolled vertically after opening Camera or Weather

    Don't have a video for this, but after opening Weather or Camera, I'm able to "scroll" up and down on both home pages. Releasing my finger will cause the page to snap back to it's original position.

    opened by HunterBoy344 1
  • This is really cool!

    This is really cool!

    I am seriously blown away by this project of yours. It is seriously cool, mad props!! 💯

    Also I think the fact that the browser comes with your website open in one of the tabs was a neat little easter egg :)

    That is all

    opened by ctsrc 1
  • add info.plist property to force light mode

    add info.plist property to force light mode

    Hey man! Love this project, looks great and its suuuch a rush seeing that lovely oldOS!

    I did notice it doesn't work in dark mode so as a temporary fix i added force light mode option 🙌 IMG_27C3F3B849D0-1

    opened by emin-grbo 1
  • Xcode 12.5

    Xcode 12.5

    • Adds Home screen icon shadows
    • Adds the ability to search for new locations in Weather
    • Upgraded to Xcode 12.5 build system
    • Now using Fastlane for deployment
    opened by zzanehip 0
  • Fade background transition from springboard to spotlight 💡

    Fade background transition from springboard to spotlight 💡

    When dragging from page 1 of Home Screen to spotlight, the transition is sudden which appears jarring.

    This makes the transition smooth, however unsure why dragging back again does not have the animation. (SwiftUI bug?)

    Video shows the before and after:

    https://user-images.githubusercontent.com/16542463/121783219-40ac2d00-cba5-11eb-895d-15e1faa596ae.mov

    opened by atrinh0 0
  • Page indicators on the home screen to behave like a page control

    Page indicators on the home screen to behave like a page control

    Fixes: https://github.com/zzanehip/The-OldOS-Project/issues/4

    The tiny icons can be pressed to navigate to those pages. Either side of the icons can also be pressed to navigate a page at a time, similar to a page control.

    opened by atrinh0 0
  • Spotlight search on home button 🔍

    Spotlight search on home button 🔍

    For added realism, pressing the home button when already on the first page of the springboard shows the spotlight search.

    https://www.youtube.com/watch?v=hMZXnyk2SJA

    opened by atrinh0 0
  • ipa untrusted developer

    ipa untrusted developer

    hi when i download old os through itunes ipa file it says "unable to install oldos this app could not be installed because its integrity could not be verified" can someone help me fix this i wanna try this app

    opened by ripjaw1219 3
  • option for installing .ipa for more app/game options (suggestion)

    option for installing .ipa for more app/game options (suggestion)

    I was able to install your app with altstore, and this app is very good for nostalgia and entertainment purposes. While all your default apps function and are very nice, in the future it would be nice to see a .ipa app installation option.

    opened by Lawfulll 0
  •  Problems with the screen size using an iPhone SE (2016)

    Problems with the screen size using an iPhone SE (2016)

    The 1st gen iPhone SE can install this app but because of its small screen you can not see everything and some parts get cut. I think this would get solved by removing the borders on the sides and above the screen and reducing the one below with the button (only in this phone).

    opened by pmarimon 1
  • App Switcher: Close button hard to hit

    App Switcher: Close button hard to hit

    The little minus button on the upper left corner of the respective app icon is very hard to hit. Maybe increase the size of the hit box to protrude out of the actual buttons boundaries.

    opened by JonasGrunau 1
Releases(1.0_18)
Owner
null
A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript

Dollar Dollar is a Swift library that provides useful functional programming helper methods without extending any built in objects. It is similar to L

Ankur Patel 4.2k Jan 2, 2023
Functional data types and functions for any project

Swiftx Swiftx is a Swift library containing functional abstractions and extensions to the Swift Standard Library. Swiftx is a smaller and simpler way

TypeLift 219 Aug 30, 2022
Functional programming in Swift

Swiftz Swiftz is a Swift library for functional programming. It defines functional data structures, functions, idioms, and extensions that augment the

TypeLift 3.3k Dec 25, 2022
SwiftUI library to create fully customizable input stepper.

SwiftUI-InputStepper Swift package for creating numerical input stepper. An example of input stepper created with this library It supports long press

Mateusz Budnik 4 Nov 2, 2022
Monitor iOS app version easily.

AppVersionMonitor Monitor iOS app version easily. You can get previous version and installation history. Usage To run the example project, clone the r

エウレカ 256 Jan 4, 2023
Simple and Lightweight App Version Tracking for iOS written in Swift

AEAppVersion Simple and lightweight iOS App Version Tracking written in Swift I made this for personal use, but feel free to use it or contribute. For

Marko Tadić 12 Nov 11, 2022
A way to easily add Cocoapod licenses and App Version to your iOS App using the Settings Bundle

EasyAbout Requirements: cocoapods version 1.4.0 or above. Why you should use Well, it is always nice to give credit to the ones who helped you ?? Bonu

João Mourato 54 Apr 6, 2022
Alert popup to notify your users if they use an unsupported iOS version

UnsupportedOSVersionAlert This source code alerts your users if they use your app with an unsupported version of iOS (e.g. iOS 10.0 beta). The alert l

Josef Moser 8 Mar 11, 2019
Checks if there is a newer version of your app in the AppStore and alerts the user to update.

YiAppUpdater Checks if there is a newer version of your app in the AppStore and alerts the user to update. Installation YiAppUpdater is available thro

coderyi 4 Mar 17, 2022
Prueba versión Swift

?? APOD-SoyYO-Swift ?? Prueba técnica Dependencias: Cocoapods ¿Como correr el App? Descarga el proyecto usando git git clone https://github.com/hd3vC0

Humberto M. 0 Dec 23, 2021
A simple utility allowing to detect Swift version at runtime.

SwiftVersionDetector SwiftVersionDetector allows you to detect Swift version at runtime. Note that detecting the Swift version of the machine on which

Alessandro Venturini 2 Dec 3, 2022
A most fully customization calendar for Apple platforms 📅

KVKCalendar KVKCalendar is a most fully customization calendar. Library consists of five modules for displaying various types of calendar (day, week,

Kviatkovskii Sergei 353 Jan 5, 2023
Unit-Converter-SwiftUI - A simple Unit Converter iOS app built in the process of learning SwiftUI

SwiftUI-Unit-Converter A simple Unit Converter iOS app built in the process of l

Ishaan Bedi 2 Jul 13, 2022
🟣 Verge is a very tunable state-management engine on iOS App (UIKit / SwiftUI) and built-in ORM.

Verge is giving the power of state-management in muukii/Brightroom v2 development! Verge.swift ?? An effective state management architecture for iOS -

VergeGroup 478 Dec 29, 2022
LanguageList for SwiftUI supporting iOS/macOS/tvOS

LanguageList for iOS, macOS and tvOS LanguageList is created and maintaned with ❥ by Sascha Muellner. What? This is a SwiftUI package with support for

Swift Package Repository 2 Jan 26, 2022
[iOS] Animated analog flip numbers like airport/train-station displays (SwiftUI)

A SwiftUI FlipNumberView A small universal (iOS + macOS) app displaying the current time with a flip animation. This is still WIP and doesn't support

M Emrich 6 Dec 6, 2022
I needed to detect idle mode on a SwiftUI app for a kiosk, so I did it.

Inactivity I needed to detect idle mode on a SwiftUI app for a kiosk, so I did it. Usage Important: You must set the Principal class of your app to In

Helio Tejedor 16 Dec 19, 2022
SnippetsLibrary - Code snippets library for SwiftUI Devs.

SnippetsLibrary is a helpful tool for SwiftUI developers to help with their daily coding life. SnippetsLibrary contains all the needed code snippets for you to view, edit, or add more and more. This will make your daily work easier and faster.

Christopher Lowiec 41 Jan 2, 2023
Pigeon is a SwiftUI and UIKit library that relies on Combine to deal with asynchronous data.

Pigeon ?? Introduction Pigeon is a SwiftUI and UIKit library that relies on Combine to deal with asynchronous data. It is heavily inspired by React Qu

Fernando Martín Ortiz 369 Dec 30, 2022