Change language

Ex-Apple Engineer Reveals Why The First iPhone Didn’t Have “Copy” And “Paste” Functions

Engineer, designer and former developer of the first Apple devices Ken Kocienda (Ken Kocienda) revealed the reason why the first iPhone in 2007 did not have the "copy" and "paste" functions. Only two years after the release of the iPhone, these now basic options appeared in iPhone OS 3.0, which ran the iPhone 3GS.

Prior to working on the iPhone, Kocienda was on the team that created Apple's Safari web browser, which guaranteed him an important role in software development for Apple's first smartphone.

Kocienda admitted that in 2007 the developers had plans for the “copy” and “paste” functions, but they were able to implement them and insert them into the OS code only after a couple of years due to the fact that they did not have enough time to add immediately all the functions users need. At that moment, the priority was the creation of the virtual keyboard of the iPhone and its autocorrect system.

The developer revealed that he is also the author of the "magnifying text magnifier" option. It was after its introduction that users were able to see exactly where the text cursor is located. This option aids in moving the cursor with the user's fingers, and also allows you to block accidental cursor shifts after the user has removed their fingers from the screen. But it didn't always work right. Therefore, Kocienda had to refine this option.

In the process of creating the first versions of the "copy" and "paste" functions, Kocienda's team came up with a "touch history log". This system helped make text editing easier and more convenient. The journal recorded all finger touches and the time between them. As soon as the user removed his finger, the OS after a few milliseconds fixed this state and logged the situation in the log. The cursor remained at this place until the next touch.

Another interesting detail about the iPhone's text input system is that, according to a former Apple engineer, all stylized text was originally based on WebKit. This means that every time the application used a custom font, it would show a tiny web page to display the text. When text fields were not in edit mode, they showed a static image of their content, presumably to conserve CPU, RAM, and battery resources.

The "copy" and "paste" options were introduced by Apple as a new core part of iPhone OS 3.0 in 2009, which was preinstalled by default on the iPhone 3GS. At the time, Apple even created a TV ad highlighting the new feature.

Kocienda also shared some other interesting facts about the development of the first iPhone. For example, the first iPhone did not have real multitasking, not only because of the low RAM, but also because of the lack of virtual memory. Engineers had to create a system known as "jetsam" to force the iPhone to run one app at a time while automatically ending other background processes to avoid performance issues.

Since touchscreen mobile devices were not very popular back then and did not have haptic feedback, the iPhone design team implemented a virtual area that is larger than the buttons shown on the interface. Thus, the iPhone recognizes touches even if the user is not exactly touching a specific button on the screen. This system was also important to the keyboard's autocorrect feature, as it identifies the letters surrounding the one the user has pressed in order to replace the misspelled word with the correct one.

Kocienda explained that the first experimental tests with users' perception of what they touch with their fingers on the iPhone showed that the touch point they want is actually different from where the finger actually touches. As a result, Kocienda's team created a special system for the iPhone OS, which had to be ready for this and worked out the places where the users' fingers touched, helping them to get where they needed even in the case of a slight shift of the finger.

Michael Zippo
[email protected]

Sources: Python.Engineering,


Learn programming in R: courses


Best Python online courses for 2022


Best laptop for Fortnite


Best laptop for Excel


Best laptop for Solidworks


Best laptop for Roblox


Best computer for crypto mining


Best laptop for Sims 4


Latest questions


psycopg2: insert multiple rows with one query

12 answers


How to convert Nonetype to int or string?

12 answers


How to specify multiple return types using type-hints

12 answers


Javascript Error: IPython is not defined in JupyterLab

12 answers



Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method