HomeVideos

Apple has lost their way.

Now Playing

Apple has lost their way.

Transcript

1664 segments

0:00

I'm about to crash out in a way I never

0:01

thought I would. I need to talk about

0:03

something very important to me,

0:05

something near and dear to my heart. My

0:08

iPhone. I love iOS in so many ways. I

0:11

used to be such an Android fanboy, I

0:13

never thought I would see the day that

0:14

iOS was my preference. And it still is,

0:17

and it probably will be for the

0:18

foreseeable future. Which is why what

0:20

I'm about to say hurts so deeply. iOS is

0:23

holding back the entirety of software,

0:26

not just for iPhone users, but for

0:28

everybody. Apple's been doing this for a

0:30

bit, but not in ways that necessarily

0:32

hurt as much as they do now. But in a

0:34

world where AI is as powerful as it is,

0:36

where building things has never been

0:37

easier to do. A platform that goes out

0:40

of its way to be as hard as possible to

0:42

get anything done with. A platform that

0:44

prevents us from experimenting, trying

0:46

new things, and building what the future

0:48

could be. A platform that doesn't even

0:50

let you install apps unless Tim Cook

0:51

himself thinks the category is valid.

0:54

It's destroying us. And it's not just

0:56

destroying the iPhone platform either.

0:58

is I genuinely love my Pixel Fold except

1:02

for all the things that it's held back

1:03

on, which are also Apple's fault. And

1:06

don't even get me started on the iPad.

1:09

This is the single device that should

1:11

have changed computing forever that

1:13

instead just pisses me off every time I

1:15

open it. And it's cuz Apple's an evil

1:17

company. They're just the worst. They're

1:20

I have a lot to say. I have had so many

1:23

stupid moments with Apple stuff

1:25

recently, especially with our attempts

1:27

to build and ship the new T3 Chat and T3

1:29

Code apps that I feel like I'm going

1:31

mad. I cannot believe this company

1:33

operates the way they do today and that

1:35

people aren't realizing just how

1:36

destructive it is. I thought I might be

1:38

the only one going insane here. So, I

1:40

asked GPT55 to look at my bullet point

1:43

list and add some ideas of its own. to

1:46

which it added over 30,

1:51

sorry, 40 points that it added on top of

1:54

the ones I already had in the list. Are

1:57

you kidding? I have to crash out. This

2:00

one's going to be long. I'm sorry. I

2:02

genuinely am. But if I'm going to

2:04

survive the hellish process of getting

2:06

these apps deployed, I need to complain

2:08

a lot. And if I'm going to make this

2:10

worth it, we have to take a quick break

2:11

for something that sucks a lot less.

2:13

Today's sponsor. In my opinion, there's

2:15

three ways to evaluate a given product

2:16

or company. There is how important is

2:18

the problem that it solves. There is how

2:20

good is the solution they came up with.

2:22

And most importantly, there's the

2:23

quality of the team. I bring this up

2:25

because today's sponsor is general

2:26

translation. And I think they're killing

2:28

it in all of those fronts. Having your

2:30

app in every language and localization

2:31

is great because 85% of the world

2:33

doesn't speak English. Their SDK and

2:35

platform are one of the best solutions

2:36

I've ever seen because normally you have

2:38

to make your codebase way harder to work

2:39

in for both you and your agents in order

2:41

to handle localization. Their SDK makes

2:44

it trivial. Most importantly here is the

2:46

team. And I'm not saying this cuz they

2:47

pay me. You cannot pay me to say this. I

2:50

love the general translation team. I've

2:52

done many a call at the founder cuz I

2:54

just like him a lot and I go to hang out

2:56

at their office all the time because

2:57

they're fun to hang out with. These guys

2:59

understand. They're quickly building a

3:01

ton of trust in the space, which is why

3:02

everyone from Cursor to Partal to Click

3:04

House to Mintify and Ramp are all

3:06

building on top of General Translation.

3:08

When they hit me up about sponsoring, I

3:09

went to look at the platform and

3:10

immediately begged them to let me invest

3:12

because this is the right way to handle

3:14

translations. It's a simple T component

3:16

that you wrap your JSX with. If you need

3:18

to pass variables in, you can wrap it

3:20

with their ver component. If you need to

3:21

handle currency translations, you can

3:23

pass in their currency component. You

3:25

can set it up with one command and let

3:26

your agent handle the rest. And going

3:28

forward, everyone can use your site. If

3:29

you're only serving English users, fix

3:31

it today at soyv.link/gt.

3:33

In order for me to properly explain why

3:35

iOS is holding us back, I want to build

3:37

a framework for understanding software.

3:39

First, roughly speaking, you can

3:42

categorize software in a few ways. The

3:45

ones I want to focus on are importance,

3:48

cost, and capability. And I want to be

3:51

very clear, these three are not

3:53

inherently tied. Software can be very

3:56

important and also very cheap. Software

3:58

can be very capable and not very

4:00

important. I'm looking at you Arch Linux

4:02

people. Software can be incredibly

4:04

expensive and not important nor capable.

4:06

These are three different things and all

4:09

of them need to be thought about when we

4:11

think about software and mobile. We also

4:14

need to think a bit about the world when

4:15

the iPhone came out. The iPhone came out

4:17

in a world of sidekicks, a world of

4:20

Blackberries, a world of flip phones, a

4:22

world of portable devices where the

4:24

software wasn't very good. It wasn't

4:28

very important. It was too expensive to

4:30

make good software. Everybody just made

4:32

it cheap and the capabilities were

4:34

basically non-existent. The best thing

4:36

you could have on your phone was a

4:38

shitty port of a Tony Hawk Game Boy

4:40

game. The software on phones wasn't very

4:42

good. The iPhone changed that. It made

4:45

it possible to make way more important

4:47

software and way more capable software,

4:50

but it also inherently kind of increased

4:52

the cost of making software because iOS

4:55

development was harder than yet another

4:57

shitty Java applet. But the cost

4:59

increase was reasonable considering how

5:02

much more important and capable the

5:04

software was. There was a catch though.

5:08

That's not how it started.

5:11

The iPhone ships on June 29th.

5:16

That is just 18 days from today.

5:20

I believe at 6:00 p.m. in the evening

5:22

they will go on sale.

5:26

June 29th, 18 days from today.

5:29

Now, what about developers?

5:34

What about developers?

5:36

We have been trying to come up with a

5:39

solution to expand the capabilities of

5:42

iPhone by letting developers write great

5:45

apps for it and yet keep the iPhone

5:48

reliable and secure.

5:50

And we've come up with a very sweet

5:54

solution.

5:57

And let me tell you about it.

6:00

So,

6:02

we've got an innovative new way to

6:04

create applications for mobile devices.

6:07

Really innovative. And it's all based on

6:11

the fact that iPhone has the full Safari

6:15

inside it. The full Safari engine is

6:18

inside of iPhone

6:21

and it gives us tremendous capability,

6:24

more than has ever been in a mobile

6:26

device to this date. I will interrupt

6:30

here to say this is a true point at the

6:33

time. Before the iPhone came out, the

6:37

power of these types of mobile devices

6:39

was way less. The capabilities, the

6:42

freedom, the things you could do on it

6:44

was inherently way smaller. And Safari

6:46

on iOS, as silly as it is to say this

6:48

way, was more capable than the Java

6:51

applets on almost every other phone. But

6:53

notice that he's not saying anything

6:55

about native here because that wasn't

6:56

the plan when the iPhone first came out.

6:59

I'll let Steve continue. You can write

7:03

amazing web 2.0 and Ajax apps that look

7:08

exactly and behave exactly like apps on

7:11

the iPhone. And these apps can integrate

7:15

perfectly with iPhone services.

7:18

They can make a call. They can send an

7:21

email. They can look up an location on

7:24

Google Maps.

7:27

After you write them, you have instant

7:29

distribution. You don't have to worry

7:30

about distribution. Just put them on

7:32

your internet server.

7:34

And they're really easy to update. just

7:36

change the code on your own server

7:39

rather than having to go through this

7:41

really complex update process.

7:44

And they're secure

7:46

with the same kind of security you'd use

7:48

for transactions with Amazon or a bank.

7:52

And

7:54

they run securely on the iPhone so that

7:56

they don't compromise its reliability or

7:59

security.

8:01

And guess what? There's no SDK that you

8:04

need. You've got everything you need if

8:07

you know how to write apps using the

8:09

most modern web standards to write

8:11

amazing apps for the iPhone today. You

8:14

can go live on June 29th.

8:17

And we'd like to show you an example of

8:19

the kind of apps that you can write

8:21

starting today. Do you understand just

8:25

how far we have fallen? The number of

8:29

points here like this, no SDK required,

8:32

that's how it should have been.

8:34

And the jump from where mobile

8:36

development was before the iPhone to

8:38

what was promised here was genuinely

8:42

massive, which is why it hurt so much

8:45

that it has regressed since. Starting

8:47

with the release of the app store, the

8:50

capabilities of the mobile devices we

8:53

use every day have gone down

8:55

year-over-year, not up. And I will be

8:58

frank, as much as I prefer Tim Cook to

9:00

Steve Jobs, I think this is one of the

9:02

few things that Steve Jobs would have

9:04

possibly gotten right. That Tim Cook,

9:07

the person trying to maximize every

9:08

penny Apple makes, has gotten entirely

9:11

[ __ ] wrong. And it's possibly doomed

9:13

the direction of software as a whole as

9:16

a result. And a lot of this changed

9:18

because of the nature of the bet that

9:20

was being made. At the time, the iPhone

9:22

was the underdog. They had to convince

9:24

developers to build for it. So, it had

9:26

to be as easy as possible to build and

9:28

they had to convince users to get it

9:30

because they had 0% market share because

9:33

the phone didn't exist yet. They had to

9:35

climb through the market to make this

9:36

device popular. And they did everything

9:39

right from the start because it was the

9:40

only option they had. And then they

9:42

started to get some serious market

9:44

share. And then they started to behave

9:46

like absolute [ __ ] The harsh reality is

9:49

that Apple has their market share. So,

9:50

they don't care anymore. They just

9:53

don't. Every single time an app is

9:56

purchased on the app store, Apple makes

9:58

30%. Every single time you buy a digital

10:01

good in an app, whether you're buying an

10:03

ebook, you're renting a movie, you're

10:05

buying a cosmetic in a game, you're

10:08

paying for an indie developer fun map in

10:10

a game that you're playing, Apple gets

10:12

30% of all of that, too. Apple gets

10:15

their percentage, and they have no

10:17

interest in anything that harms their

10:20

percentage. And as such, they have no

10:22

interest in things that make developers

10:24

lives easier because you're stuck

10:26

building for the iPhone anyways. Apple

10:29

doesn't have to compete on developer

10:30

experience because if you want to make

10:32

money and you want to make a mobile app,

10:34

you have to support Apple. While Apple

10:37

has less than 20% of market share

10:40

globally, they have over 60% of money

10:43

spent on mobile phones. The vast

10:45

majority of money being spent on a phone

10:48

is spent on iPhones. So, if you are

10:50

looking at the split of devices sold and

10:53

think Apple is the wrong bet as an app

10:56

manufacturer, you just don't understand

10:58

the finances behind it. Apple has an

11:00

absurd monopoly on money spent on

11:03

mobile. People in my chat have worked at

11:05

companies that were doing a h 100 plus

11:07

million a year on their mobile apps and

11:09

iOS would push 60 to 70% of that money

11:13

spent on iOS. It's insane. What I'm

11:16

trying to say is that Apple will make

11:17

their money regardless. So what they do

11:20

instead is the bare minimum, the

11:23

absolute bare minimum. And I want to

11:25

show you guys a little bit of what that

11:27

looks like, both through things that

11:29

have happened over the last few years

11:31

and also through my own personal

11:32

experience trying to build apps. I'll be

11:35

real and I'll start with one I was

11:37

crashing out about over the weekend,

11:38

which inspired me to make this video. I

11:40

want to talk about my iPad.

11:43

I could talk a lot about how we should

11:44

be able to build iPad apps on iPads. I

11:47

could talk a lot about how I should be

11:48

able to do a bunch of custom [ __ ] on

11:49

here. I can talk a lot about how the OS

11:51

is gimping this incredible piece of

11:52

hardware, but I'm not. As much as I want

11:54

to talk about those things, that's not

11:55

what I'm here to talk about today. I'm

11:57

here to talk about the absolute insanity

11:59

that is the fact that I was making

12:01

changes to my team's mobile app. And I

12:03

made those changes and I verified them

12:05

on my phone because my phone was already

12:06

attached to my Apple developer account.

12:08

My iPad wasn't. So, I connected my iPad

12:11

to my computer. It autopop populated

12:14

with the Apple provisioning whatever the

12:15

hell and it got put in a pending state

12:18

where it would proceed to stay for 36

12:20

hours. I was not able to use the MacBook

12:24

I purchased to install the app I built

12:26

on the iPad I purchased because Apple

12:29

hadn't given me the thumbs up yet. What

12:31

the [ __ ] That's some 1984 level [ __ ] if

12:34

I'm being real. Like I I still cannot

12:37

process the fact that I had software. I

12:39

had paid a team to build and I had built

12:41

with the team that I couldn't put on one

12:44

of my devices because Apple didn't want

12:46

me to yet. They wanted to go through

12:48

their process of verifying because if I

12:50

had found a way to get the app without

12:52

their permission, that could harm their

12:54

app store. Sorry, that could be insecure

12:56

and they don't want us getting viruses.

12:59

No, that's not what they actually want.

13:01

They want to lock us in because they

13:03

want to make sure there is no path to

13:05

app installs that isn't their app store

13:06

because then they might lose some money

13:08

and they're being [ __ ] evil about it.

13:11

And that is just one of the many things

13:13

I'm about to crash out about. Do not

13:14

worry, we have a long ways to go. This

13:17

is actually a very fun point, Taka.

13:19

Thank you for bringing this one up.

13:20

During the Epic versus Apple trial, it

13:22

was revealed that Apple makes more money

13:24

on games than Sony, Microsoft, and

13:27

Nintendo, and Activision combined

13:29

because they get the 30% of all money

13:32

spent on mobile games. Insane. Actually,

13:34

insane. A company that's never made a

13:36

game makes billions on games because

13:39

they have an entry tax. I'm going to

13:41

crash out about Xcode in a bit, but I

13:43

want to first crash out about the

13:45

signing [ __ ] As I mentioned before,

13:48

despite paying the $100 a year fee and

13:51

buying multiple Apple devices and

13:53

building the app on Apple devices, I

13:56

could not test the app on my iPad until

13:58

waiting a certain amount of time for

14:00

Apple to do the approval. Actually,

14:02

insane. Oh, but Thea, what about

14:04

TestFlight? Did you know TestFlight

14:06

requires you to go through the full app

14:08

review process? I can't use TestFlight

14:10

as a way to get around Apple's stuff

14:12

because you still have to go through it.

14:14

At first, we should just take a moment

14:15

to appreciate how insane it is that you

14:17

have to use a Mac to build apps. Like,

14:21

the exceptions to this rule involve the

14:24

app being built on someone else's Mac in

14:26

the cloud. That's insane. There is no

14:29

way to build an app on your iPad or your

14:32

iPhone without a Mac. It's one of the

14:35

reasons I'm stuck still using a Mac

14:36

despite the fact that I do genuinely

14:38

want to make the move to Linux. That's

14:40

just one of the pieces. It gets a lot

14:42

worse. For example, when you're doing

14:45

the signed app process through the

14:47

computer, you need to make sure your

14:48

devices connect to that computer at

14:50

least once every seven days or the app

14:53

will stop opening. Apple needs to know

14:55

that your app is signed by a developer.

14:58

And I'm going to crash out about that

14:59

process a lot in a bit. You know what?

15:01

I'll I'll put a little more about that

15:02

here because for some reason they have

15:04

you hardcode the credential for signing

15:06

the app in the infop list file, which

15:08

for the most part is a manifest for the

15:10

app and the permissions it needs. But it

15:12

also just so happens to include the

15:14

account and the team that it's attached

15:16

to in the code directly which makes

15:19

doing anything with a platform like I

15:21

don't know Git obnoxious because a

15:23

portion of that file is specific to your

15:26

developer account. The fact that the

15:28

Xcode ecosystem was built pregit is its

15:31

own problem. The fact that it still

15:33

operates with a pregit mindset is the

15:36

real issue though. It just sucks so hard

15:38

to do anything with any of this. If you

15:41

built with any even vaguely modern set

15:42

of tools like any web app or Electron or

15:45

even just React Native the traditional

15:47

blessed way with Expo, you get shielded

15:50

from a lot of the hell that I'm talking

15:52

about here because it is absolutely

15:55

hellish. And having built a lot of

15:56

things for a lot of platforms, the

15:58

absolute shitow that is iOS development

16:01

is so hard for me to fathom. And here's

16:03

where I'm going to get a little spicier.

16:05

This absolute [ __ ] policy is hostile

16:09

to experimentation, to people who want

16:11

to try out new ideas and experiment with

16:14

things and do something no one's done

16:15

before. The people who want to invent

16:17

the future should be encouraged to do

16:19

so, not locked out of doing so, not

16:22

restricted by these layers upon layers

16:24

of rules and fees and processes and

16:27

hardware ownership to even get to the

16:29

point where you're allowed to start.

16:31

It's hostile to open source because if

16:33

somebody opens sources their app and I

16:36

want to make some changes and play with

16:37

it, it doesn't matter that the app's

16:39

already been approved. I have to go

16:40

through the whole process again myself

16:42

and I have to modify a bunch of things

16:43

that could accidentally get checked in

16:45

when I'm trying to make a PR because you

16:47

have to do that in order to even be able

16:49

to build in the first place after you

16:51

already paid the hostage fee, by the

16:53

way. And also making sure that you check

16:55

in with your device plugged into your

16:56

computer every 7 days so the app doesn't

16:57

get locked out. But most importantly,

16:59

and this is the part I really want to

17:00

emphasize, as an Apple fan myself, it's

17:03

hostile towards me. It was easier for me

17:06

to build custom versions of Android for

17:08

my Android phone than it was for me to

17:10

start my first app on my iPhone. And

17:13

it's somehow gotten worse over time, not

17:16

better. When I finally got my iPad

17:18

approved, by the way, I still couldn't

17:20

build to it because I got an obscure

17:22

error telling me that there's some new

17:24

agreement I have to go find in a hidden

17:26

dashboard somewhere before I'm allowed

17:28

to sign my devices again. So, I had to

17:30

go to the developer.apple.com. It

17:31

redirected me to the wrong place twice.

17:33

I finally signed in. It redirected me to

17:35

apple.com. I went back to

17:36

developer.apple.com. And this time, I

17:38

actually stayed off. So,

17:39

developer.apple.com had me signed in.

17:41

And I had to scour through the page to

17:43

find this weird banner that was

17:45

basically impossible to see because

17:46

there was five more above and below it.

17:48

But this one particular banner had a

17:50

button in it that would bring me to a

17:52

page that had this new agreement they

17:53

just put out during the most recent WWDC

17:56

that I had to hit approve on and then

17:58

wait another 20 to 30 minutes for that

18:00

provisioning and that approval to get

18:02

updated on Apple's servers so that I was

18:04

allowed to build the app I made for my

18:06

Mac to my [ __ ] iPad. Are you kidding?

18:10

It is genuinely insane that I can't just

18:13

build the app I made on my iPad that I

18:16

own. It's It's like orders of magnitude

18:20

away from where it should be. We'll come

18:22

back to this later cuz I want to talk

18:24

about the beautiful world we could live

18:26

in if Apple just got over their [ __ ] I

18:28

realize this will go on forever if I

18:30

don't break up the topic, so I just did

18:31

it here. I'm going to rant about the

18:32

sandboxing, Xcode being absolute [ __ ]

18:35

garbage, the App Store policies that

18:36

hold us back from ever having great

18:38

innovative software again, the fact that

18:40

AI can never be good on iOS because of

18:42

Apple's [ __ ] and a tangent on how

18:44

Android doesn't help us at all here. So,

18:46

let's start with the sandboxings. I have

18:47

a lot to say here. Uh, let me just think

18:51

of some examples. Why can't my app send

18:53

messages to each other? They can, but

18:56

the way it sends a message isn't through

18:58

iOS. There is literally no way for apps

19:01

to communicate without you doing it on

19:02

your own external server. You can share

19:05

through Apple's share feature between

19:07

apps. Good luck implementing that in a

19:09

way that makes any sense at [ __ ] all.

19:11

It's hell. Beyond that, why can't I

19:14

customize my apps? Why can't I not

19:16

control the apps at all? Why can't I

19:19

force an app to stay in dark mode? Why

19:21

can't I have an agent change the first

19:23

screen in an app? Why can't I limit the

19:25

way an app works for my business? So

19:28

when people are on our sandboxed phones

19:30

that have like the developer credentials

19:32

on them that are built in a way for my

19:34

network and for my company, why can't I

19:37

make slight changes to an app?

19:38

Obviously, there should be some level of

19:40

restriction and control here. But I can

19:41

install a Chrome extension that changes

19:43

anything I want about a website. I can

19:44

force everyone at my company to have

19:46

that extension installed. Why is there

19:48

literally nothing at all like this for

19:49

iOS? I'll give you a hint. Part of it's

19:51

cuz JIT doesn't work. Just in time

19:53

compilers, things that will make your

19:55

code more efficient for the processor

19:57

when the code appears in the app, are

19:59

not allowed at all because you're not

20:01

allowed to do any dynamic execution in

20:03

iOS apps. Even React Native, the way it

20:05

is built, is on the line for what is or

20:08

isn't allowed because Apple doesn't want

20:10

you doing things on the fly. This kills

20:12

a lot of [ __ ] This makes good

20:14

performant game emulators nearly

20:16

impossible because you need to do some

20:19

specific compilation like shader stuff

20:21

for given games. But if you are updating

20:24

the way the code executes on the fly,

20:26

hard ban from Apple. We'll never get

20:28

good emulators on iOS. Even though Apple

20:30

did loosen their restrictions on the

20:32

concept of emulators, we'll never have

20:34

performant ones because Apple won't let

20:36

us. But most importantly, why can't my

20:39

app install apps? Why can't my app build

20:41

apps? Why can't my app customize apps?

20:45

Why can't my app do anything Apple

20:47

doesn't want us to? It's because Apple

20:49

doesn't care. They don't benefit

20:51

meaningfully from allowing us to do

20:52

these things, but they are potentially

20:55

risking reviews being harder or the apps

20:57

are getting less traffic. On that note,

20:59

why can't I use a different browser

21:00

engine? On my Mac right here, I have a

21:03

shitload of different browsers

21:04

installed. I have Zen, which is based on

21:06

Firefox and Gecko. I have Helium, which

21:08

is based on Chromium. And begrudgingly,

21:11

I have Safari because it comes with the

21:12

Mac and Apple won't let me uninstall it.

21:14

On your phone, you might have Chrome

21:16

installed, but that's not using the

21:18

Chrome engine. That is just using WebKit

21:21

because Apple only lets you use WebKit

21:23

on iOS. It's insane. All of these

21:26

restrictions prevent us from having

21:28

whole categories of potential awesome

21:31

software. It means I can't have a good

21:33

Windows emulator on my iPad. It means I

21:35

can't have a good GameCube emulator on

21:36

my iPhone. It means I can't build a new

21:39

language with its own compiler and then

21:40

play with it on my Apple devices. It

21:42

means I can't try to make a browser

21:44

engine with more capabilities than Apple

21:46

wants it to have. It means I can't do

21:48

anything [ __ ] interesting because

21:50

Apple's already restricted all the

21:52

interesting stuff. I can't build my own

21:54

ecosystem of apps that have their own

21:55

relationships with each other because I

21:57

have to go build a backend to share

21:58

anything between them because Apple

22:00

won't let you. On that note, there's one

22:02

whole category of things that aren't

22:04

allowed due to the way Apple sandboxes.

22:07

plugins. One of the coolest things you

22:09

can do in software is modify it. I can

22:12

install an extension in Chrome that

22:13

changes how a website works. I can

22:15

install extensions in VS Code that

22:17

change how it works. I can install

22:18

extensions in Safari even, but you

22:21

cannot make software that has

22:22

extensions. Apple just doesn't really

22:24

allow it. There are some hacks here and

22:26

there, but you can't really do it. Apple

22:29

doesn't want software to be extendable.

22:31

They want software to be sold by them to

22:34

make them money. That's all they want.

22:36

and they will hold us back every single

22:38

[ __ ] day, preventing cool new ideas

22:41

from ever happening because it's just

22:43

slightly easier for them to review.

22:45

Insanity. The amount of things that

22:47

could have happened if sandboxing wasn't

22:49

so restrictive is incredible. But even

22:51

if they fixed all that, we still

22:52

wouldn't be able to do [ __ ] because

22:54

Xcode is [ __ ] and the App Store policy

22:56

is even more [ __ ] We're a little closer

22:58

to the App Store policy thing here. So,

23:00

I'm going to start with that. that will

23:00

go to Xcode after because the App Store

23:03

policies are so bad that they deserve to

23:06

lose every single court case that

23:07

they've already been losing and their

23:08

malicious compliance with the rulings is

23:10

somehow even more egregious. Here's a

23:12

fun fact. The only way to install an app

23:15

on your phone that wasn't signed by you

23:17

or a team you're in with your device ID

23:19

hardcoded to it is to go through the App

23:22

Store or to go through TestFlight. There

23:24

is no path from my app to your phone

23:27

that isn't App Store or Test Flight.

23:30

both of which require Apple to approve

23:32

it. Which means if you happen to be

23:33

building any of the things Apple doesn't

23:35

want you to build, you have no choice.

23:39

You are just screwed. Just to go through

23:41

a handful of these categories, some have

23:44

maintained the ban. Some have had their

23:45

ban status changed. Streaming videos,

23:48

streaming music, totally fine. Apple's

23:50

okay with that. Streaming games, nope,

23:53

not allowed. This is a whole category of

23:55

software that could have been

23:56

revolutionary that is entirely

23:58

impossible because Apple didn't want it

24:00

to exist. Let's say that your app only

24:02

has O for your like enterprise SL like

24:04

you're a Google or a Microsoft company

24:06

and everyone signs in through that.

24:08

Apple has a hard rule that requires any

24:10

sign-in methods that are provided

24:11

through another O layer whether it's

24:13

Google, Microsoft, whatever else require

24:15

that sign in with Apple is also an

24:17

option. Doesn't matter if it's 0% of

24:19

your users. Doesn't matter if you hard

24:21

restrict them and not be able to do

24:22

anything in the app. You have to have

24:23

that button or Apple won't approve.

24:25

Period. Speaking of which, external

24:28

payment systems. Let's say you built a

24:30

game that has a credit system in it,

24:32

like Fortnite, and you have V-Bucks in

24:34

it. You bought a bunch of V-Bucks on the

24:36

computer version, and then you go to

24:37

play it on the phone. If you don't have

24:39

a way to buy V-Bucks in the phone app,

24:40

they ban you. If they let you keep using

24:42

the credit card you already linked to

24:44

your account, they ban you. You have to

24:46

implement Apple Pay and give them their

24:48

30%. It is required. It is a rule. And

24:52

if you don't do it, you'll be banned.

24:53

And if you don't like it, I hope you

24:54

have good lawyers because you will see

24:56

them in court. There is an unless on

24:57

this one, though. If your app is selling

25:00

services or physical goods, you can get

25:03

by. And when I say services, I mean

25:05

in-person things like an Uber driver

25:07

that is going to drive you from one

25:08

place to another or Door Dasher bringing

25:10

you food or a Task Rabbit hanging up a

25:13

TV. Those don't have to have the 30%.

25:16

Those can be a perfectly flat zero and

25:18

Apple doesn't do anything about it. They

25:20

require you to enable Apple Pay as an

25:22

option, but they won't take a

25:23

percentage. So, your options are 30% if

25:25

Apple doesn't like your category or 0%

25:27

if you're in the blessed section that

25:29

they allow. They also, fun fact, had an

25:31

exception for video streaming

25:33

subscription services because Amazon

25:35

threatened to pull all Apple products

25:36

out of Amazon.com and also pull all of

25:40

their apps out of the app store,

25:41

including the Amazon app, if Apple was

25:43

going to enforce the 30% on Amazon Prime

25:47

for people doing Prime Video. And this

25:49

is why Apple introduced the Apple video

25:51

partner program to allow premium

25:52

subscription video providers to

25:54

participate in new TV watching

25:55

experiences. Also to get a slightly

25:58

lower cut. Getting into this program

26:00

drops your cut from 30% to Apple to 15

26:02

to Apple. And one company has ever in

26:05

history become part of it and it's

26:06

[ __ ] Amazon. It's insane. This should

26:09

have been its own lawsuit. This should

26:10

have been a class action. This should

26:11

have torn them to shreds. the number of

26:13

these types of [ __ ] things they do

26:14

where they put out this whole fake video

26:16

partner program thing literally just to

26:19

skirt the law. Insane. There are so many

26:22

categories of apps that have been made

26:25

nearly impossible or entirely impossible

26:27

thanks to Apple. Even something like

26:29

Twitch, where I'm currently live

26:31

streaming myself recording, Twitch takes

26:34

15 to 50% of the revenue for

26:36

subscriptions. Usually, it's 30 to 50%.

26:40

In order for Twitch to justify that,

26:42

they have to provide an entire platform

26:44

and experience where I and my audience

26:46

can interact. They have to eat a ton of

26:48

costs for video streaming, and they get

26:51

30% when somebody pays me $5. If Apple

26:54

also got 30% for just happening to be

26:56

the place the app was installed on, I'm

26:58

left with 40% of that transaction. And

27:01

don't get me started on something like

27:03

Patreon, where Patreon takes 5 to 15%

27:06

and Apple hard enforces their 30. That

27:09

means that platforms that want to make

27:10

it easier for people to support creators

27:13

like me don't make any sense at all

27:15

because Apple will take a hostage fee.

27:16

If I wanted to out of the goodness of my

27:18

heart create a platform that only takes

27:21

3% because that's what Stripe

27:22

effectively charges and let you donate

27:25

to somebody without me getting any money

27:27

just like a charitable thing. If I built

27:29

like a GoFundMe style app and only took

27:32

transaction fees and nothing else, Apple

27:34

would still get 30% of every single

27:36

transaction. We will never have a

27:38

GoFundMe app because if we did and you

27:40

paid through it, Apple would take a fee.

27:43

And that 30% fee destroys whole

27:45

categories of potential types of

27:47

software. Patreon would not be dying as

27:49

a business if it wasn't for Apple's

27:50

[ __ ] Twitch would still be dying

27:52

because of their own incompetence, but

27:54

they would be struggling a lot less if

27:55

it wasn't for Apple's [ __ ] When I

27:57

was at Twitch, we had to just not allow

27:59

subscriptions on iOS for a while. And

28:01

eventually the workaround that we found

28:03

was selling subs as a currency where you

28:06

could buy a subscription for $6.50.

28:09

It would be cash in your account and

28:11

then when you went to click the sub

28:12

button, it would deduct from that and

28:14

that would effectively let you have this

28:16

tiered system where the 650 is where

28:18

Apple took their 30% and then what was

28:21

left was cashed as a thing you could go

28:23

spend on somebody later. The fact that

28:24

we had to invent a novel currency on

28:26

Twitch just to simply comply with

28:28

Apple's stuff is insane because they

28:30

wouldn't let us offer a cheaper version

28:31

on the site. Horrifying. And don't get

28:34

me started about recommending people

28:35

leave the app because Apple will ban you

28:38

for that, too. In fact, they went back

28:40

to court and lost twice because of how

28:42

strictly they were banning this. I have

28:43

a whole video about Apple's lack of

28:45

compliance with the Epic Games ruling

28:47

that I would recommend watching after

28:48

this if you want to hear even more. Holy

28:51

[ __ ] I'm going to stop myself here even

28:53

though it's hard because I haven't even

28:54

talked about the [ __ ] show that is app

28:56

reviews where Apple can just randomly

28:58

arbitrarily decide that your app's no

29:00

longer allowed because of some

29:01

functionality they approved a year ago

29:03

or because you gave us charges on how

29:04

they can sign into the app and use it

29:06

and they didn't read them and then they

29:07

yell at you and say, "Sorry, we can't

29:09

verify the app. You won't let us use it.

29:10

You're banned now." And you're like,

29:11

"Wait, I literally gave you

29:12

instructions." And they send you a

29:14

screenshot where they typo the [ __ ]

29:15

email and sign in, which I've had happen

29:17

three separate times. I couldn't ship an

29:19

update because the reviewer typoed the

29:21

email address I gave them for a fake

29:22

signin credential. Unfucking believable.

29:25

Theo from the future because I

29:26

remembered one more app store policy

29:28

thing. I can't stop myself. This one's

29:30

important. Uh scamming kids is their

29:32

business model. This one hurts. If you

29:36

don't have kids or friends with kids

29:37

that you've talked to about these

29:38

things, you don't know how bad this is.

29:41

It is incredibly common for kids to

29:43

install an app that says it's free, that

29:45

is free, and then randomly a pop-up

29:47

comes up in it that says you can use

29:49

this part of this app and it's only $50

29:52

a week and the first seven days are free

29:55

and then it bills weekly from that point

29:57

forward and you end up with your kid

29:59

accidentally setting up subscriptions to

30:01

the tune of a,000 plus dollars a month.

30:03

These stories come out all the time.

30:04

They get international news attention

30:06

and Apple doesn't do [ __ ] [ __ ] about

30:08

it. They don't even ban the apps for it.

30:10

Apple makes a meaningful percentage of

30:12

their yearly revenue by scamming

30:14

children. And they're not banning it

30:16

because they don't want to touch the

30:18

golden goose. They'll let those kids get

30:20

scammed. They'll let those parents lose

30:21

all their money because they make money

30:23

off of it. They get 30% of every scammed

30:25

kid's revenue. Why would they ban it? I

30:28

firmly believe there is not a single

30:30

weekly subscription service in the App

30:32

Store that isn't a scam. Apple leaves it

30:34

in because changing it would hurt their

30:36

revenue. Apple doesn't ban these apps

30:38

because banning them would hurt their

30:40

revenue. Apple doesn't address these

30:41

problems because they like their revenue

30:44

more than they like kids having a safe

30:45

experience on their phones. Crazy that

30:48

Apple is at that point, but they are.

30:50

Here's a fun fact. Did you know that

30:52

Xcode is just Nextep? If you were born

30:55

in this century, you probably don't know

30:57

what Nextstep is. Did you know that

30:58

Steve Jobs got fired from Apple and then

31:00

he went and built his own computer

31:02

company? And because he knew the fact

31:04

that Apple's software was such [ __ ]

31:06

garbage, there was no future in which

31:07

they could make an actual developer

31:09

platform. He decided to go the other

31:11

way. He decided to just build useful

31:13

software that would make it possible for

31:15

devs to do real things. Next step was

31:18

the object-oriented computing platform.

31:20

They were trying to make OOP the selling

31:22

point because the Apple development

31:24

ecosystem was so bad. Steve Jobs

31:26

genuinely believed he could sell

31:28

software, he could sell computers just

31:30

by marketing it as we don't suck to

31:32

write code for. And he was right enough

31:34

because Apple had to buy NextStep. And I

31:36

have learned this from Apple employees

31:38

that might even get fired for me

31:40

mentioning this, but it was long enough

31:41

ago that I don't remember their names

31:42

and there's no way the link could be

31:43

made. The majority of the core of Xcode

31:46

is still the same NextStep code base

31:49

that they bought from Steve Jobs when

31:50

they bought his company. Apple was so

31:53

far behind that they rebranded nextep as

31:55

Xcode and have continued to iterate on

31:58

it since. The core of Xcode is over 25

32:02

years old. Why would we ever expect it

32:04

to function? Don't worry though, they

32:06

added a local model to help with code

32:09

completion. [ __ ] die. I cannot

32:12

believe the state of Xcode. It is not a

32:14

shock that the software quality of Apple

32:17

stuff has been going down. that iOS and

32:20

Mac OS are getting buggier because the

32:22

people building it have to build it in

32:23

[ __ ] Xcode. I don't know how good of

32:26

a cake you would expect if they're

32:27

cooking it on [ __ ] plastic. If you

32:30

were given like two pencils and a ruler

32:32

and told to build a cake, I wouldn't

32:33

expect a very good one, but for some

32:35

reason Apple thinks Xcode is in a

32:37

reasonable state and refuses to fix it.

32:39

Do you have any idea how many times

32:41

Xcode has crashed because I checked out

32:43

a different branch? Do you have any idea

32:45

how many times Xcode is locked up and I

32:47

had to go purge its entire cache

32:48

manually to get it to even [ __ ] open

32:50

again? Do you have any idea how much

32:52

time is wasted with Xcode rebuilding

32:54

steps that were absolutely cachable

32:56

because they have no concept of

32:57

progressive build systems? It is easier

33:00

to build a Linux than it is to build an

33:02

iOS app. It's actually insane. I just

33:05

wanted to open Xcode to see how long it

33:07

takes for me to crash it or deal with it

33:08

again. And it's reindexing files that

33:11

haven't changed since I last opened it.

33:13

It's insane. This is a 128 gig of RAM

33:15

machine and Xcode will easily use half

33:17

or more of it. And then the simulators,

33:19

too. Don't get me [ __ ] started on the

33:21

simulators. Holy hell. There's a little

33:23

cloud button now cuz they let you use

33:25

Xcode cloud now because their software

33:28

is so impossible to [ __ ] use that

33:31

you're expected to just put it on their

33:33

cloud instead and pay them money

33:34

instead.

33:36

The fact that this is necessary software

33:38

to build an app is insulting. There is

33:41

no way to build an app for an iPhone

33:44

without it going through Xcode in one

33:46

way, shape, or form. Thankfully, with

33:49

something like Expo, you can build the

33:51

native part once, put it on your phone,

33:53

scan a QR code, and now you can load the

33:56

dynamic.js from a web server on your

33:58

computer, which is so much less bad that

34:00

I could actually get work done on my

34:02

phone from my phone, except for the fact

34:04

that I still have to go phone home every

34:06

7 days to plug in the phone and confirm,

34:08

yeah, I'm allowed to do this. And even

34:10

better, the Expo bundler that they used

34:13

to have on the App Store where you could

34:14

scan a QR code and get work done can no

34:17

longer be updated because of Apple's

34:19

hard ban of anything even vaguely vibe

34:21

coding and app generation related. I

34:23

don't think we're going to pass our

34:24

first round of app store review with T3

34:26

Code. Even though T3 Code doesn't run on

34:28

the phone, it is just a wrapper that

34:30

connects to your computer and sends

34:32

messages to and from the computer. The

34:35

fact that it is dynamic software might

34:37

be enough for Apple to ban us. I don't

34:39

know. I will be sure to report back once

34:40

we go through the review, which we have

34:42

to. Not cuz we're shipping the app, but

34:44

because we want to have access to the

34:46

app in test flight.

34:49

The real reason I'm a web dev is because

34:50

I tried to be a mobile app dev, and

34:52

Apple made it so goddamn hard that I

34:54

gave up and learned a new language and

34:55

platform. I have been avoiding Xcode to

34:57

the best of my ability for the better

34:59

part of a decade now. So, I'm going to

35:01

use AI, Apple's least favorite thing, to

35:03

cite all of the ways it sucks.

35:05

Incremental builds become slower than

35:07

clean ones. No code changes can still

35:09

trigger multi-minute rebuild work. We

35:10

just saw that in mind. Xcode can spend

35:12

most of a build on vague phases like

35:14

planning swift module. Build types are

35:16

nondeterministic enough that devs stop

35:17

trusting the machine. Clean build folder

35:19

is a religious ritual. Deleting derived

35:22

data becomes folk medicine. Build errors

35:24

often disappear after restart, clean, or

35:26

reopen, which trains devs to debug the

35:27

tools before debugging code. And you

35:30

also sometimes can't even see the error.

35:32

When you click it, it goes to some

35:33

random file and gives you no context. So

35:35

even finding the error is obnoxious.

35:36

Small Swift UI changes can cause massive

35:38

type-checking work. Swift's type checker

35:40

is clever in design, horrible in

35:43

practice. Swift compile errors are

35:45

sometimes not your code is wrong.

35:47

Rather, the compiler gave up. There's a

35:49

reason why the guy who designed Swift

35:50

left and says he regrets it. The classic

35:53

error, unable to type check this

35:54

expression in reasonable time is

35:56

especially hated because it often points

35:58

at a broad expression instead of the

35:59

actual cause. Yep. Professionals have to

36:02

refactor code not because the design's

36:03

out, because the compiler can't handle

36:05

the shape of the code anymore. Build

36:07

performance is extra punishing in Swift

36:08

UI because Vuebuilder lets you write

36:10

code that looks clean but explodes the

36:11

compiler's complexity. Mix Objective C,

36:13

Swift, C++, SP, and Copods projects

36:16

become a build system haunted house.

36:17

Don't even get me started on the fact

36:18

that CocoPods is a third party Ruby

36:21

thing that we had to build third party

36:24

because Apple has no concept of a

36:26

module.

36:27

I'm going to die. Archive builds can

36:30

behave differently from run builds. So

36:32

works locally does not mean the shipped

36:34

artifact works. Okay, I'm going to go

36:36

back to the Cocoa Pods thing because uh

36:38

fun fact, do you guys know what the guy

36:40

who made Coco Pods did after trying his

36:42

hardest to fix iOS dev? He went to

36:44

Microsoft and became a Typescript

36:46

contributor because he wanted to

36:47

contribute to an ecosystem that cared

36:49

and actually improved year-over-year.

36:51

Imagine any modern tooling not having a

36:54

way to do packages and instead of

36:56

embracing and embedding it, they just

36:58

ignore it and then the person who makes

36:59

it goes to your biggest competitor and

37:01

works on a different language entirely.

37:02

The fact that didn't become the head of

37:05

developer ecosystem at Apple is way

37:07

funnier to me than the [ __ ] who made

37:09

Brew not being able to get a job. I know

37:11

companies whose builds take over a day

37:13

and a half. And since Apple doesn't

37:15

really allow for caching and incremental

37:17

stuff, because as we mentioned before,

37:18

incremental builds are often longer than

37:20

the clean ones, there's nothing they can

37:22

[ __ ] do. Your reward for making big

37:25

large software on iOS is you need 15

37:28

people to try and keep the build times

37:30

down. And maybe you'll be able to get

37:31

your app out in under two days. Maybe.

37:34

Insanity. The indexing is a shitow.

37:37

breaks your editor when it's running and

37:39

it doesn't function when it's not there

37:41

yet. Swift UI previews like chat, do any

37:44

of you actually use the previews for

37:45

Swift UI? Cuz I've never met a serious

37:47

iOS dev that bothers. Never worked for

37:50

me. No, no, previews are useless. No

37:53

previews are [ __ ] Literally not a

37:55

single person saying yes or sometimes.

37:57

It is one sometimes now. Everybody else

38:00

is never or I don't use Swift UI.

38:02

Someone said they've stopped even doing

38:03

Swifty. I've done the same. I'm back to

38:05

appkit cuz at least it [ __ ]

38:07

functions. LLDB is an absolute shitow.

38:10

So, good luck debugging things that

38:11

aren't just [ __ ] syntax. Oh god, the

38:14

copy pasted simulator breaking happens

38:16

to me at least once or twice a day. It

38:18

is obnoxious. Why I stopped using

38:19

simulator entirely. The simulator need

38:21

to be reinstalled I've had a few times

38:22

too. I thought I was just doing

38:23

something wrong. I did not know that was

38:24

that common. You often have to erase all

38:26

content and settings. The runtime

38:28

downloads are massive. Yeah, when I get

38:29

a new Mac I want to use for iOS dev, I

38:31

just expect it to not work for the day.

38:33

has to download so much [ __ ]

38:34

Multiple simulator versions eat absurd

38:36

amounts of disc space. Yep. Simulator

38:39

bugs are different from device bugs.

38:40

Device bugs are different from simulator

38:41

bugs. Some things work only on physical

38:44

devices, some only on simulators. And

38:46

Apple's docs are not clear about which

38:48

is which. Testing login, AP push,

38:50

background modes, widgets, app groups,

38:52

keychain, and entitlements can send you

38:53

into device simulator mismatch hell.

38:56

Already been there, too. This I ran into

38:58

today. As of the most recent Xcode 26

39:01

build, Mac clipboard paste stopped

39:03

working in simulator. Users reported

39:05

that command V wouldn't do anything and

39:07

there was no paste option with one

39:08

person saying they had to OCR

39:09

screenshots in order to get the error

39:11

messages. Yep, any subset of these bugs,

39:14

any five of them is enough for me to

39:17

move off of a piece of software. But

39:19

instead, we have to deal with thousands

39:21

of them because we're not allowed to use

39:23

other choices. There is no other option.

39:25

We have to use Xcode. So, we deal with

39:28

all of this. Oh, I didn't even get to

39:29

the git section yet. Project.pbx Praj is

39:32

the most hated file in professional

39:34

Apple development, possibly the most

39:35

hated ever other than DS store. It's

39:37

huge, fragile, and not meant to be

39:39

meaningfully handedited. It merge

39:41

conflicts all the time for basically

39:42

anything. The project file can fail to

39:44

open if it's malformed, which makes

39:46

means you can't open the project at all

39:47

to fix things. Diffs are unreadable. The

39:50

IDE mutates project state in ways that

39:51

are hard to review. This is something I

39:53

was talking about earlier. Xcode

39:55

projects preserve a pre-Git worldview

39:57

and rather than fixing it, they are just

39:59

ignoring it. The the fact that Git

40:02

doesn't work properly with iOS apps is

40:04

enough to to end this. Be like, "Okay,

40:07

Apple, fix that. Move on." That would be

40:08

that would be a showstopper by itself.

40:10

But combined with everything else, it

40:11

becomes a [ __ ] bullet point. I'm

40:13

going to drop my hottest take about

40:14

Xcode and then we're going to move on

40:16

from it and talk about the rest. Xcode

40:18

can never be good because the Xcode team

40:20

has never experienced good. Xcode

40:22

developers at Apple have never worked on

40:25

anything other than Xcode to build Xcode

40:27

on Apple platforms. Maybe they used

40:29

Xcode to build an app before and that's

40:30

how they got their job. They don't know

40:32

what good looks like. They don't have a

40:34

reference. They live in their bubble,

40:37

their shitty silver bubble, and they

40:39

never look outside of it because it's

40:40

fully opaque. They don't know how bad it

40:43

is because they've never experienced

40:44

what decent software is, what decent

40:46

experience building software is. They

40:48

don't even know. And you know what? I

40:50

feel bad for them. I genuinely do. These

40:52

are people that will never love building

40:54

software because the software they have

40:57

to build is garbage and the software

40:58

they use to build it is garbage. To go

41:00

back to the cooking analogy, I can't

41:01

imagine somebody becoming a master chef

41:03

if all they have to cook with is a few

41:05

matches in a plastic pan. Like, you're

41:07

just never going to love the thing if

41:08

the things you have to do it with are

41:10

trash. Insane. So, again, Xcode is

41:13

engineered from its core and from its

41:15

team structure to never allow for good

41:18

software development. Somebody in chat

41:20

is so deep in the Stockholm syndrome of

41:23

iOS dev that they sincerely wrote this

41:26

message. I'm not trying to pick on this

41:28

person. I just want you guys to

41:29

understand this is why we have the

41:30

problem. I'm missing a few important

41:32

things. While iOS isn't the best

41:34

experience for devs, it's also not meant

41:36

for super quick iteration like I expect

41:38

from web. He's on a team that deploys

41:40

apps for 20,000 users on the App Store

41:42

only. No Android or web app. And you

41:43

just get used to the quirks after a

41:45

while. You just get used to the quirks

41:48

after a while. You just get used to git

41:51

not functioning in iOS projects. You

41:53

just get used to builds randomly taking

41:55

hours instead of minutes because the

41:57

things that cache them don't function

41:59

properly. You just get used to an app

42:01

that crashes half the time you're trying

42:03

to build. You just get used to an

42:05

ecosystem with no concept of package.

42:07

You just get used to writing software

42:09

like we're still in the [ __ ] '9s. You

42:12

know what? If you want to write software

42:13

like we're in the '90s, feel free. I'm

42:15

gonna write it like we're in 2026. I've

42:18

said enough about Xcode. I've said too

42:19

much about Xcode. I have thought about

42:20

this piece of software way more than any

42:22

human should have to. It is insulting

42:24

that it still exists. And on this note,

42:27

I want to get a little more existential

42:29

because Apple's absolute [ __ ] way of

42:32

running iOS will hold back the future of

42:35

AI powered experiences. I hope we've all

42:38

learned this by now. AI isn't just a

42:41

thing you stuff into your apps. AI is a

42:44

thing that changes how you should use

42:45

your computer. I didn't really have

42:47

issues with how I navigated my Mac

42:49

before I started coding with AI. And

42:51

suddenly the horrible shitow that is

42:54

workspaces on Mac OS combined with the

42:56

less than ideal app hierarchy made me

42:59

feel like I was going insane. So I

43:01

started to use Linux more heavily. And

43:03

it was one of the biggest breaths of

43:04

fresh air I've ever felt in my life. It

43:06

felt like I was trapped in a sewer with

43:08

no light or clean air for my entire

43:10

life. and all of a sudden I was in the

43:12

sun with fresh oxygen. But at the very

43:15

least, we can customize how our OS works

43:17

a little bit. For example, I am

43:20

currently voice detecting on my Mac

43:22

using Whisper Flow. It's really good. It

43:26

has changed part of how I interact with

43:28

my computer. I have a key on my keyboard

43:30

that causes another app to trigger which

43:33

has an overlay that takes over a small

43:35

portion of my screen and then it makes

43:37

changes to the thing I'm currently in.

43:39

If it's a text box, it types things out

43:41

in that text box. That's an OS level

43:44

change. Not in the sense that you have

43:45

to customize the operating system to do

43:47

it, but in the sense that it's not just

43:49

an app that is open and focused like my

43:51

other apps are. It is a thing that

43:53

augments how I use the computer. And the

43:56

harsh reality is that a lot of the best

43:58

AI experiences we're going to have going

43:59

forward are going to be things like

44:01

that. Things that don't just change how

44:03

the app works, they change how the

44:05

relationships between our apps and

44:07

ourselves work. things like the super

44:09

powerful computer use primitives that

44:11

are built into Codeex. Codeex can use my

44:13

browser in another window while I'm

44:16

still using other things on the computer

44:18

at the same time. Code is able to use my

44:19

computer when the screen's off. Codex is

44:21

able to go to different apps and do

44:23

things in them. Codeex can use my

44:25

computer better than I could use my

44:27

iPhone. And you bet your ass Codex can't

44:29

use an iPhone. I'm not saying it's easy

44:31

to do this on other platforms.

44:33

Automating Windows and Mac OS is hellish

44:35

and Linux is better, but not a lot. But

44:37

at least we can. We can customize how we

44:40

use and navigate the platform. People

44:42

have built everything from different

44:43

window managers to spotlight

44:44

alternatives that are 100 times better.

44:46

Seriously, Raycast is one of the best

44:47

things I've ever installed. I'm not even

44:48

paying for it. It's just worth it.

44:50

Definitely recommend it. The fact that

44:52

Spotlight is so slow in comparison is

44:53

just funny to me. But there are so many

44:56

of these things, so many of them that my

44:58

Mac is barely even a Mac to an extent

45:01

because I have added all these things

45:03

that change how it works. I can't do any

45:05

of that on my iPhone. If it turns out

45:08

the best use cases for AI are it

45:10

controlling my device, it navigating my

45:13

device, it pulling context from

45:14

different places into one place,

45:16

customizing how my apps work in

45:18

different ways, using my apps for me,

45:19

all these types of things. We'll never

45:21

know. We'll literally never know because

45:23

Apple will never let us do it. If it

45:26

turns out Siri is actually the best

45:27

place to interact, that holding down a

45:29

button and getting a voice assistant to

45:30

come up and then talking to it is the

45:32

best place, we'll never know because

45:34

Siri's a [ __ ] joke and we can't use

45:36

other options. Siri's the only layer

45:39

into all of these things to the extent

45:41

that Apple's even willing to expose

45:42

them. It's since it's powered by

45:44

absolute garbage that might get a little

45:46

better with the new iOS will never

45:49

really get to embrace what it's

45:51

possible. We'll never really get to

45:52

embrace what it could do. All of the

45:54

innovation happening in places like

45:56

Codeex and Whisper Flow on desktop

45:58

cannot happen on iOS. Whisper Flow even

46:02

has an iOS app and it's pretty cool

46:04

considering the restrictions. The way it

46:06

works is they replace your keyboard with

46:08

a Whisper Flow keyboard. But since you

46:11

can't use voice in the keyboard app if

46:13

you're not the official Apple keyboard,

46:15

hitting the mic button forwards you over

46:17

to the Whisper Flow app to turn on the

46:19

mic and it then becomes a live activity

46:21

which sits at the top of your phone and

46:23

leaves your mic on 24/7 until you go

46:25

manually turn it off. Or you could use

46:27

the awful voice to text on built-in

46:29

Apple keyboard and built-in iPhone and

46:31

just tap it, talk, and then tap it again

46:33

and it gets half the words wrong, but it

46:35

doesn't leave your mic on. We'll never

46:37

see how powerful AI could be on a phone

46:40

because Apple will never let us. Apple

46:42

will never let us make a better iPhone

46:44

AI. They'll never let us experiment with

46:46

new things AI can do on iPhone because

46:48

they have decided that layer is theirs.

46:51

We can build apps on our phone and maybe

46:53

someday Apple will let those apps

46:55

interact with the Siri layer that they

46:58

own and define, but not the other way

47:00

around. We'll never be allowed to make

47:02

an app that controls our phone. We'll

47:04

never be allowed to make an app that can

47:05

adjust other apps. We'll never be able

47:07

to make an app that's not even an app

47:08

that's just a layer that does things on

47:10

our device. We'll never be allowed

47:12

because Apple doesn't care. And this is

47:14

a whole category of things that we'll

47:16

just never get to see or experience. I

47:19

hate to go into whatif territory here,

47:21

but it's hard not to. Imagine a world

47:24

where things like Whisper Flow could be

47:26

used on iPhone properly. Imagine a world

47:28

where something like Codeex and its

47:29

computer use capabilities can work on an

47:31

iPhone. Imagine a world where if you

47:34

have an app you're using that could be a

47:36

little bit better, have a thing changed,

47:37

and you can talk to your phone and it

47:39

changes the app for you. We'll never see

47:41

it. It'll never happen because Apple

47:43

does not want us to try. Apple wants all

47:46

innovation on mobile to come from Apple.

47:48

And you know what? They succeeded

47:50

because we have to crash out a little

47:52

about Android. This is a talk from Scott

47:54

Jensen. He worked on Android at Google.

47:56

He worked on Canonicle and Ubuntu for a

47:59

while, too. And it's one of my favorite

48:00

talks about UX ever. I think about it

48:02

all the time. But there's a specific

48:04

quote I want to grab from here about

48:05

Android that has held true to this day.

48:08

>> Okay, that's what it feels like when you

48:10

color outside the lines. If you do

48:12

something that no one else has done

48:13

before, you're jumping into the trash

48:14

compactor. But how can we be Princess

48:17

Leia? We need to be Princess Leia. We

48:20

need to try some of these more crazy

48:21

things. And I know it's hard, but how

48:24

can we do these experiments in such a

48:26

way that we don't feel like we're taking

48:28

so much of a risk?

48:31

Some of my stuff at Google was not

48:32

shipping and I was quite frustrated. I

48:34

talked to a VP about it and he said

48:35

something I'll never forget. He goes,

48:36

"The fastest way to ship your features

48:38

to have Apple do it first." Thanks, Mr.

48:40

Senior visionary guy.

48:46

It was so frustrating that but that's

48:49

what why we were copying desktop in the

48:53

first place because they took all of the

48:55

the pressure off of us and yet we have

48:57

to be think more about that. So, you get

48:59

the idea. Android doesn't bring anything

49:02

to the table because Android is just

49:04

Google's attempt at copying iOS. That's

49:07

all it is. Almost everything we've

49:09

talked about here, okay, twothirds of

49:11

what we talked about here is the case on

49:13

Android 2. Not because Google is greedy

49:16

or selfish or is trying to maximize

49:18

their return. It's just because they're

49:19

copying Apple one for one. Google didn't

49:21

take 30% of App Store purchases on the

49:24

Google Play Store because they want to

49:25

make a bunch of money. They make almost

49:26

nothing off it. They did that because

49:28

it's what Apple does. Google doesn't

49:30

have a complex app review process that

49:32

gets rejected all the time for even

49:34

worse reasons than Apple apps do because

49:36

they wanted to or because it protects

49:38

them in some way. There's still way more

49:40

malware on the Android store than there

49:41

will ever be on anything Apple's ever

49:43

made. They do it because Apple does.

49:45

Google doesn't restrict the OS level

49:47

controls that your apps can make because

49:49

they want to because they're protecting

49:51

your device. They're doing it because

49:53

Apple does. Android isn't [ __ ] because

49:55

Google is [ __ ] Okay, it's partially

49:57

[ __ ] because Google is [ __ ] Android is

49:59

largely [ __ ] because iOS is. It is sad

50:02

that we live in this world, but we do.

50:05

The vast majority of the problems I have

50:07

with iOS still exist with Android, but

50:09

there's a big difference. My iPhone is

50:11

still a good phone and it still has good

50:13

apps. And I wish that wasn't the case. I

50:16

wish Google would let us do a little

50:18

more with Android. I wish they would

50:19

take advantage of the unique opportunity

50:21

they have. I wish they would like buy

50:23

Expo and embed it into the platform and

50:25

let everyone customize every app on

50:27

their phone. Let everybody build their

50:28

own overlays, build their own voice to

50:30

text, build their own whatever they

50:31

want. If Android was to be treated less

50:34

like iOS and more like Chrome, we could

50:36

live in a different world than we do

50:38

today. But we don't because Android

50:40

isn't trying to be good. It's not trying

50:43

to be Google's. It's trying to be Btier

50:46

iOS. And you know what? They succeeded.

50:49

That's all it is. And every major

50:51

Android update just feels more like a

50:53

bad iPhone than before. And a lot of the

50:55

things they copied were for the better.

50:57

Like the navigation system they stole

50:58

from iOS is way better than the old back

51:00

button. I'll fight you Android people on

51:01

that. It's so much easier to navigate.

51:04

It makes so much more sense. Even if the

51:05

apps haven't been updated accordingly

51:07

because the apps never get updated

51:09

because nobody cares about Android apps.

51:10

I don't make any money. Nah, Android is

51:12

a shitow necessarily and I don't think

51:15

that will ever change. That said, I'm

51:18

working on my own slot fork of Android

51:19

that'll allow the types of customization

51:21

I'm looking for. I don't think it'll go

51:22

anywhere, but I'm just doing it out of

51:24

curiosity at this point because anything

51:26

is better than the [ __ ] show we live in

51:27

today. So, what could things look like?

51:30

What would the future be like if we

51:33

could actually do the things we should

51:36

be able? Want to talk briefly about the

51:39

what if. Imagine a world where a

51:41

10-year-old who just got their first

51:43

iPad could also build iPad apps. Imagine

51:46

a world where once they build that app

51:48

on their iPad, they can share it with

51:50

their friends. Imagine a world where

51:51

somebody could customize their iPad and

51:53

the way it interacts based on their

51:54

specific needs or possibly their

51:56

disabilities. Imagine a world where

51:57

instead of Siri is the only option, we

51:59

could have chat GPT, Claude, and maybe

52:02

even Gemini as options that have the

52:04

same level of OS primitive access and

52:06

control. Imagine a world where keyboards

52:08

aren't forced to only use like 50

52:11

megabytes of RAM and connect to other

52:12

things. Imagine a world like the one

52:15

that Steve Jobs promised us all the way

52:18

back where you don't even need an SDK to

52:21

get started. Where you could build an

52:23

app and access everything your device is

52:25

capable of without needing Apple's

52:27

permission to do stuff. Imagine a world

52:29

as creative and exciting as Steve Jobs

52:31

imagined it. Imagine a world like the

52:33

one Steve Jobs promised in his first

52:35

discussion of apps on the iPhone.

52:38

Imagine how much cooler software could

52:40

be today. Maybe we wouldn't all just

52:42

rotate between the same four apps all

52:44

day. Maybe we wouldn't all just live in

52:45

YouTube and Twitter and Gmail. Maybe,

52:48

just maybe, someday, we'll see a world

52:50

where our phones are somewhat

52:52

customizable. Maybe even half of what

52:54

our computers can do. But sadly, we

52:57

don't live in that world today. We live

52:59

in a world where all the cool [ __ ]

53:01

happening happens on computers. And the

53:04

coolest thing you could do on your phone

53:05

right now is send a message to a

53:07

computer so it can go do real work. It's

53:09

so hard to imagine this world that when

53:12

I tried to do my Android slot fork where

53:14

it could bundle apps itself, even an AI

53:17

as powerful as Fable couldn't imagine it

53:19

and just couldn't figure out what I was

53:21

asking for. It kept trying to figure out

53:23

where the server would run and

53:24

eventually concluded that it could

53:26

virtualize Linux in order to do the

53:28

build on my device because the world I'm

53:31

imagining here is so different from

53:33

reality that even the best AI in the

53:35

world can't imagine what I'm thinking

53:36

of. But do you know what I'm thinking

53:38

of? I'm just thinking of my Mac. I'm

53:41

just thinking of Linux. I'm just

53:42

thinking of my Windows computer. I'm not

53:45

thinking that far out. I'm not asking

53:47

for infinite customization. I'm not

53:49

asking for infinite control. I'm asking

53:51

for Apple to stop treating the [ __ ]

53:53

iPhone like a Blackberry from 2004. I

53:56

want a device that I can install

53:58

software on myself. I want a device that

54:00

I can talk to with a system I chose. I

54:04

want a device that can be used for

54:05

things other than Apple's blessed

54:07

categories because the device is too

54:09

powerful and too useful and too much in

54:12

my life and in my pocket for it to be so

54:14

goddamn restricted. In many ways, my

54:17

iPhone is the most magical device I've

54:18

ever owned. It's unbelievable what it's

54:20

capable of on a thing that small in my

54:22

pocket. It can do almost anything. It's

54:25

a shame Apple lets you touch a third of

54:27

those things at best.

54:29

And John Tarnis, the new CEO of Apple,

54:32

your heart's in the right place. You

54:35

care more about hardware and reliability

54:38

than you care about profitability. Tim

54:40

Cook had one job. Maximize margins. And

54:44

he did it so goddamn well. He took Apple

54:46

from a failing company just barely

54:48

surviving on the iPod and iPhone to one

54:50

of the most valuable companies in the

54:51

world. Briefly the most valuable company

54:53

in the world. If you guys don't fix

54:55

this, you're not going to be able to

54:57

hold your position there. But you still

54:59

have this insane lead in hardware. Let

55:02

the hardware win. It always was going

55:04

to, and you know that, and you're going

55:06

to ensure that since the hardware

55:08

division is guaranteed to be successful,

55:11

let software experiment a bit, just a

55:14

little. Let me install apps without

55:17

getting permission. Let me build an iPad

55:20

app on my iPad. Let the children cook.

55:23

Let the next generation invent the next

55:26

generation. Don't prescribe the way

55:28

Blackberries worked in 2004 to the

55:31

children that don't know what a

55:32

BlackBerry is. Most kids will never

55:35

experience the ability to install an app

55:38

or customize it outside of the App Store

55:40

until they get their first MacBook or

55:42

Windows computer in their late teens to

55:45

early 20s. The lock in on iOS is no

55:48

longer just locking down the platform.

55:50

It's locking down the brains of these

55:53

kids. They don't know how to think

55:54

outside of the box because you've made

55:56

the walls too stiff. They're too opaque.

55:58

They don't see outside of it anymore.

56:01

Fix this before we die off or the next

56:03

generation will never realize software

56:05

can be changed. Because the world they

56:07

live in is a world where software is

56:09

done the way the software is done. And

56:11

that's not the world I want to live in.

56:13

I'm excited for a future where the kids

56:15

make their own apps, build their own

56:17

experiences, invent their own games,

56:19

share their own worlds with their

56:21

friends, and you stand between us in

56:23

that world. Apple's the only thing

56:26

preventing this from happening. And I

56:29

really [ __ ] hope they stop because

56:31

the impact is no longer just iOS. The

56:33

impact is generational. And the kids

56:36

don't know what files are anymore. They

56:38

certainly don't understand that they can

56:40

build their own software. Fix it now

56:42

before it's too late. It might already

56:44

be. I knew I had feelings on this one,

56:47

but holy [ __ ] I Yeah, I've said all I

56:51

have to. Hopefully, you know this video

56:53

is sincere because this is a thing that

56:56

I've been concerned about for a long

56:57

time. And the severity of it has been

56:58

raising in my head the more I talk to

57:00

the next generation and realize how much

57:02

Apple's corrupted their brains with

57:03

their [ __ ]

57:05

I don't think they'll fix it. It might

57:06

already be too late. This might have

57:07

been a useless rant, but I had to get it

57:09

out of myself. I hope that you guys

57:11

heard what I had to say here and that

57:12

you actually understand what I'm trying

57:14

to get out of me.

57:17

I don't want to live in a world where

57:19

software can't be changed. And I hope

57:21

that maybe one of you guys might buy one

57:22

of your kids a Linux computer at a young

57:24

enough age to actually use it for cool

57:26

things and that you can get them excited

57:27

about software being malleable instead

57:30

of tired of software being locked in.

57:32

The web I used to explore has been

57:34

replaced by apps that are super locked

57:35

down. The operating systems that I used

57:38

to customize have been replaced with

57:39

ones that I can't even install apps on

57:41

without Apple's permission. The devices

57:43

I used went from absolute shitows that

57:45

need to be tethered to a wall to

57:46

unbelievable generation defining

57:48

hardware that can run for days without

57:50

needing a charge that can only do the

57:53

things Apple allows. And every time a

57:56

law changes in a way that it might

57:57

benefit us as Apple users, you guys go

58:00

out of your way to make sure it can't.

58:03

This is going to hurt the next

58:04

generation in ways I can't even fathom

58:07

and I'm already seeing it play out

58:08

today. Hopefully, you guys will make

58:10

sure this doesn't happen because I don't

58:12

trust Apple to do it. In fact, I don't

58:15

trust Apple at all anymore. The moment I

58:17

can finally get good photo and video

58:19

editing software on Linux, I might

58:21

finally retire this guy, except for the

58:23

fact that I need it to build iPhone

58:24

apps, which is why we end up here again.

58:28

I I'm done. I have nothing else to say.

58:31

I'm sorry I don't have a better message

58:32

to end this one on. Hug your loved ones

58:34

and buy them a Linux computer. It's the

58:36

only choice we have.

Interactive Summary

The video is an passionate critique of Apple's ecosystem, particularly how iOS and App Store policies restrict software innovation and developer freedom. The creator argues that Apple's strict control, sandboxing, and reliance on Xcode create a hostile environment for experimentation and AI development, ultimately damaging the potential for the next generation of developers and users. The creator contrasts this with the possibilities on more open platforms like Linux and calls for a shift towards a more open and customizable software landscape.

Suggested questions

4 ready-made prompts