Skip to content

Instantly share code, notes, and snippets.

@jenaiho
Created August 9, 2026 11:58
Show Gist options
  • Select an option

  • Save jenaiho/ccb55bb158710bb54774111d92d926db to your computer and use it in GitHub Desktop.

Select an option

Save jenaiho/ccb55bb158710bb54774111d92d926db to your computer and use it in GitHub Desktop.
Apple Changed... — Theo (t3.gg) 對 iOS 封閉生態與開發者體驗嘅全面批判(2026-08-05)

Apple Changed...

來源:YouTube | 00:58:40 | 2026-08-05

核心觀點

iOS 的封閉生態與開發者體驗的全面敗壞,不僅正在扼殺行動軟體的創新可能性,更正在剝奪整個世代對「軟體可以被改變」的基本認知。

內容大綱

  1. 從網頁應用程式優先到強制原生 SDK,iPhone 的開發理念發生了歷史性的倒退,將「易於開發」變成了「必須經過許可」。
  2. Apple 為了維護 30% 的「蘋果稅」,採取了極端的沙盒機制與硬體鎖定策略,使得跨裝置開發與測試成為地獄般的體驗。
  3. App Store 的政策充滿了武斷、惡意遵循甚至剝削兒童的道德風險,且徹底摧毀了遊戲串流、插件生態、替代支付等潛在創新類別。
  4. 根基於 25 年前 NextStep 的 Xcode 及其工具鏈,積累了無法修復的技術債務,其編譯、索引與合併機制仍停留在前 Git 時代。
  5. 由於底層的嚴格限制與對 Just-in-Time 編譯的禁令,真正具備系統級控制權與高階效能的 AI 體驗永遠無法在 iOS 上實現。
  6. Android 作為競爭對手,不僅未填補 iOS 留下的創新真空,反而僅滿足於淪為「B 級 iOS」的模仿者。
  7. Apple 的封閉正在造成認知危機,新一代使用者不再理解檔案系統或軟體開發,最終將導致整個軟體文明的創造力衰退。

五點深度分析

  1. 從「無需 SDK」到「必須買 Mac」的倒退:Steve Jobs 在初代 iPhone 發表會上宣示的「Web 2.0 加上 Ajax 就是全部的 SDK」,在本質上是一種極度開放且低成本的軟體分發願景。這不僅是技術選擇,更是基於當時 iPhone 零市佔率下的生存策略。然而,隨著 App Store 成為印鈔機,Apple 從討好開發者轉向全面控制。如今,你必須擁有一台 Mac、支付年費、通過武斷的審查,才能將程式碼放上你擁有的設備。這種從開放網頁應用到強制封閉原生的回歸,是行動運算史上最大的開倒車之一,它將軟體開發從「創意表達」異化為「平台朝貢」。

  2. JIT 禁令與沙盒機制對 AI 時代的致命打擊:許多人忽略了 iOS 為了「安全」而禁止即時編譯是多麼毀滅性的技術枷鎖。這不僅讓高效能遊戲模擬器成為不可能的任務,更直接判處了行動裝置上所有動態、具備適應性的 AI 代理人死刑。在桌面端,像 Codex 或 Whisper Flow 這類工具能跨應用程式操作、讀取螢幕內容並執行複雜任務;但在 iOS 上,Siri 是唯一的「超應用程式」入口,且其底層能力薄弱。Apple 的沙盒機制剝奪了應用程式之間互相溝通、修改或增強的能力,這意味著我們永遠無法驗證「一個能幫你操作所有 App 的 AI」在手機上的最大潛力,因為 Apple 已經把這個生態位強行保留給了自己功能貧乏的版本。

  3. Xcode 的「前 Git 世界觀」與團隊的認知繭房:Project.pbxproj 檔案無法解決的合併衝突,以及增量編譯速度慢於全量編譯的荒謬現象,不僅是工具品質問題,更反映了 Apple 內部開發方法論的嚴重落後。講者提出的「Xcode 團隊從未見過好東西」的尖銳批判,點出了這一系統的核心病因:開發工具的封閉性導致開發者沒有參考基準。相比之下,CocoaPods 的創建者最終轉而貢獻給 TypeScript,象徵著行動開發中心化嘗試的徹底失敗。當一家市值數兆美元的公司,其核心開發工具仍要求開發者手動清除快取作為「民俗療法」時,這已不是技術怠惰,而是系統性的不尊重開發者。

  4. 遊戲營收暴利與剝削兒童的陰暗共生:Apple 從遊戲中獲取的利潤超過 Sony、微軟、任天堂和動視暴雪的總和,這一事實揭示了「30% 蘋果稅」背後的荒誕本質。Apple 對「數位商品」課稅,卻豁免實體服務或受特殊協議保護的亞馬遜,這種選擇性執法本身就是一種權力尋租。更為邪惡的是,App Store 上大量針對兒童設計的掠奪性週訂閱軟體詐騙,多年來未被有效整治。因為這些高額且帶有誤導性的訂閱費恰好是 Apple 服務營收的重要組成部分。這種將兒童當作營收金流的商業模型,是極致的倫理敗壞。

  5. Android 的模仿陷阱與認知封鎖的世代危機:Android 的失敗不在於其底層核心不如 iOS,而在於 Google 策略上的怯懦。Android 放棄了早期「行動桌面」的開放客製化優勢,轉而從導航手勢到應用權限收緊全面抄襲 iOS。這導致市場上缺乏一個真正的「開放替代品」來給予 Apple 競爭壓力。更令人擔憂的是,這種長達十年以上的系統封閉,正在製造「科技文盲」。當新生代使用者認為軟體只能經由應用商店獲取,且無法理解檔案目錄結構時,他們不僅成為了消費者,更永遠喪失了成為創造者的認知能力。這是一場醞釀中的軟體文明斷層。

關鍵概念速查

概念 說明
Web 2.0 / Ajax 承諾 初代 iPhone 發表時,Steve Jobs 宣稱開發者僅需網路技術即可建立應用程式,無需下載 SDK。
JIT 編譯禁令 iOS 基於安全考量,禁止應用程式在執行期間動態生成可執行程式碼,這限制了模擬器及部分 AI 的效能與動態能力。
反引導規則 Apple 禁止開發者在應用程式內告知使用者有更便宜的外部付費管道,這在 Epic Games 訴訟中被認定為違法,但 Apple 持續以惡意遵循應對。
Project.pbxproj Xcode 的專案核心檔案格式,極度脆弱、難以進行 Git 合併,無法進行有意義的人工修改,代表著過時的開發協作思維。
John Tarnis 接替 Tim Cook 的 Apple 新任執行長(影片設定於 2026 年),被寄望能修復軟體生態。
CocoaPods 由第三方社群建立的 iOS/macOS 依賴管理工具,填補了 Apple 長期未提供原生模組管理方案的缺位,最終其核心開發者轉投微軟。

產業啟示

這部影片看似是開發者的情感宣洩,但在產業分析上,它精準地指出了 Apple 封閉花園模式的 「創新遞減效應」。當硬體效能已達到 2004 年無法想像的高度時,iPhone 的軟體自由度卻降回了比初代更窘迫的狀態。這不僅是 Apple 單一公司的問題,它創造了一個畸形的市場標準:Android 因為缺乏勇氣而只懂得追隨,導致整個行動運算產業在 UI 互動和開發工具上停滯了超過十年。若 AI 代理人、空間運算和模組化軟體是下一個十年的趨勢,Apple 目前這種「扼殺超應用層」的做法,最終會反噬其硬體優勢,因為當所有創新都轉向開放平台時,硬體再強也只是一塊昂貴的磚頭。

對於開發者而言,這篇文章的最大警訊在於揭示了「便利性與控制權的永恆矛盾」。Apple 生態以其順暢的互動和安全性自豪,但這種安全是以犧牲專業使用者的生產力與創造者的可塑性為代價。目前開發者大量逃往跨平台框架(如 Expo)、甚至嘗試在 Mac 上建立 Linux 工作環境的現象,顯示全球最頂尖的一批開發者已經開始「去 Apple 化」。Apple 正逐步失去它曾經最忠實的那群軟體創作家。如果新任 CEO 不從根本上改變「所有收入都必須經過我」的掠食者心態,Apple 在全球軟體生態中的話語權將很快見頂。不僅要讓孩子們學會烹飪,更要先把廚房的大鎖拿掉。

金句

  • "A platform that doesn't even let you install apps unless Tim Cook himself thinks the category is valid. It's destroying us." —— 一個甚至不讓你安裝應用的平台,除非 Tim Cook 本人覺得這個應用類別是有效的,它正在摧毀我們。
  • "Xcode can never be good because the Xcode team has never experienced good." —— Xcode 永遠不可能變好,因為 Xcode 團隊從來沒經歷過什麼是「好」。
  • "The lock in on iOS is no longer just locking down the platform. It's locking down the brains of these kids." —— iOS 的封閉已經不再只是鎖住平台,它正在鎖住這些孩子的頭腦。
  • "Android isn't trying to be good. It's trying to be B-tier iOS." —— Android 根本沒在試圖做好,它只是努力想成為一個 B 級品質的 iOS。

原文逐字稿

點擊展開完整字幕

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment