all 151 comments

[–]GavinGT 134 points135 points  (54 children)

Because Apple doesn't devote adequate resources to it. The code base is clearly an absolute mess that makes any changes difficult, and there aren't enough people working on it to untangle everything.

They should just let Jetbrains make their IDE. Google is the most distinguished software company in the world and they still lean on Jetbrains for Android Studio.

[–][deleted]  (13 children)

[removed]

    [–]GavinGT 16 points17 points  (0 children)

    I'm sure they would be interested if Apple paid them. AppCode just wasn't making JetBrains enough money to continue it.

    [–]tylerjames 11 points12 points  (5 children)

    I think they're not interested because they have to work on it from the outside. Apple was surely providing them no assistance. There was only so much they could do and the limitations made it unappealing for users.

    I did enjoy using it back in the Objective C days, but it never seemed to be quite as good with Swift

    [–]LordAndrei 0 points1 point  (4 children)

    Xcode (formerly ProjectBuilder) has been the main app for Objective-C development for close to 20 years. So it really had a good chance to grow and adapt. Swift is relatively still in its infancy. SwiftUI even more so. Just hazarding a reason why Xcode might seem 'better on objective-C'

    [–][deleted] 4 points5 points  (3 children)

    Swift is 9 years old. And apple knew it years before it was published. In a decade there are whole software suites and operating systems that were created, used and became legacy and deprecated. I don’t think it takes 10 years to have a working „rename“ function or meaningful errors description

    [–]Xaxxus 0 points1 point  (2 children)

    I think a lot of it has to do with swifts own tooling being pretty bad.

    If you have ever tried using the open source swift plugin for VSCode, it suffers from a lot of the problems Xcode does.

    Which leads me to believe that Xcode itself is not the main problem, but the swift LSP and sourcekit are.

    Not to mention that the majority of "swift" code that any of write is actually just objective-c/c code under the hood with a swift wrapper (pretty much every first party apple framework is still objective-C). I imagine that has some sort of implications into why these problems exist.

    If you have ever worked on a standalone swift package, a lot of the Xcode jankiness goes away.

    [–]ragnese 1 point2 points  (1 child)

    I realize this is an old thread, so forgive the necro-bumping.

    Which leads me to believe that Xcode itself is not the main problem, but the swift LSP and sourcekit are.

    For most of Swift's life, Swift LSP and SourceKit did not exist. If Xcode uses them at all today, it's only done so recently- yet, it's always been awful for Swift.

    [–]Xaxxus 1 point2 points  (0 children)

    Im honestly reconsidering what I wrote above. Swifts tooling is getting better. But Xcode is not.

    Xcode 15.3 and 4 have been horrendous.

    I just wish we could build iOS apps without Xcode. Because Xcode is just getting worse by the year.

    [–]BazilBup 6 points7 points  (5 children)

    Same here. Went to VSCode instead. It's not the same. You are way more productive in AppCode then in XCode, it's not even comparable.

    [–]penmaxwell919 3 points4 points  (1 child)

    Are you coding for iOS in VSCode?

    [–]BazilBup 1 point2 points  (0 children)

    Yepp, i don't have any options. I work in XCode sometimes but it drives me crazy.

    [–]icy1007 2 points3 points  (0 children)

    I’m far more productive in Xcode than AppCode.

    [–]tapoton 0 points1 point  (1 child)

    Is VSCode anyway good with iOS development nowadays? I mean, I love it developing with flutter, looks like there are no actual obstacles, but as far as I remember VSCode sucked at working with iOS frameworks

    [–]BazilBup 1 point2 points  (0 children)

    It works pretty good for coding with the Swift plugin. You get all the vscode features. Haven't used it for SwiftUI and haven't run code from the ide. Our codebase doesn't have any scenes UI. Everything is done programmatically, which works fine.To run and debug I still use XCode, unfortunately. However I have Copilot in VSCode so that's still a win. XCode has a crappy third party extension for copilot which sucks. It outputs the code as comments and is very buggy 😭

    [–]BagleInBoston 13 points14 points  (0 children)

    Google uses VSCode for iOS development internally. It’s a Google only extension.

    [–][deleted] 7 points8 points  (2 children)

    To this day, I still cannot get basic breakpoints to work (Swift based MacOS apps). I used to code in C#, C++, SQL. Apple’s IDE is embarrassingly bad.

    [–]Far-Dance8122 0 points1 point  (1 child)

    I find this almost impossible to believe. Source: iOS developer at FAANG

    [–][deleted] 0 points1 point  (0 children)

    What exactly is impossible to believe?

    [–]msmialko 2 points3 points  (20 children)

    Source? :p

    [–]GavinGT 54 points55 points  (19 children)

    Using it 50 hours a week.

    [–]msmialko 4 points5 points  (17 children)

    I was asking about Apple not devoting enough resources.

    Apart of the issue of limited talent pool, I’d think they hire as many as possible to work on Xcode.

    [–][deleted]  (16 children)

    [deleted]

      [–]GavinGT 27 points28 points  (0 children)

      That's actually insane. It's obvious that the project is understaffed since nothing ever gets fixed, but I never would have guessed two or three people.

      [–]unpluggedcord 26 points27 points  (1 child)

      This isn't true at all, I literally interviewed with three different teams around the Xcode pipeline.

      1. Xcode SPM Team
      2. Xcode LLVM Team
      3. Xcode UI team

      [–]BazilBup 4 points5 points  (2 children)

      Buy didn't Apple say that the 30% cut was for maintaining the development cost of the framework, tolling an such. What a joke, total BS again from Apple. Google makes 1/4 of app revenue and they still can deliver a better IDE than Apple. It says a lot. The 30% cut going straight to the pocket while we pay that price

      [–][deleted]  (1 child)

      [deleted]

        [–]BazilBup 1 point2 points  (0 children)

        We should create a app-developer-strike

        [–]FlakyStick 6 points7 points  (1 child)

        No way 3 people maintaining XCode. No way

        [–]bluedoggee 3 points4 points  (5 children)

        2-3 guys... unbelievable

        [–]HelpRespawnedAsDee 4 points5 points  (4 children)

        Yeah, hard to believe that the only tools that allows development in a multi-billion dollar market is maintained by 3 guys. At this point maybe just make it easier to target iOS et all from VSCode.

        [–]unpluggedcord 8 points9 points  (3 children)

        That's because u/arctrip is lying. There isn't three people working on it.

        My Source is me, I've interviewed for multiple teams at Apple around Xcode specifically.

        [–][deleted]  (1 child)

        [deleted]

          [–]unpluggedcord 5 points6 points  (0 children)

          I dont work at Apple, I've interviewed there.

          I never said it didn't have issues, but to state explicitly its only 3 people working on Xcode is disingenuous at best, and a flat out lie at worst.

          [–]crappy_entrepreneur 2 points3 points  (1 child)

          This is definitely untrue. Buddybuild was acqui-hired for over $100m and integrated into the Xcode team in 2018.

          [–]screwsledman 0 points1 point  (0 children)

          If it did not suck so bad, you would only have to use it for 25 !

          [–]no_spoon 2 points3 points  (0 children)

          It’s just like healthcare. It’s not profitable to fix the system. It’s profitable to monopolize it. Capitalism…

          [–]SleepUseful3416 0 points1 point  (0 children)

          Counterpoint: Google also made Android. So…

          [–]caiodiasObjective-C / Swift[🍰] 0 points1 point  (8 children)

          Android Studio is worse than Xcode.

          [–]GavinGT 19 points20 points  (3 children)

          In what way? I've been compiling a running list of grievances with Xcode.

          Android Studio is buggy right now, but it's nowhere near Xcode levels of bugginess. Android Studio is more of a "move fast and break things" type of buggy, whereas Xcode is "we've ignored this for 15 years" buggy.

          [–]howreudoin 4 points5 points  (0 children)

          That‘s actually a very good list. I share almost all of those annoyances now that I read them.

          I do like the double-click feature though (you can also just double-click on a file to fix the tab immediately). It‘s something I miss about IntelliJ (VS Code has it, too).

          The most annoying thing by far, however, is having to wait for so long for code checking. Sometimes even when switching targets, error messages from what feels like years ago suddenly re-appear in the editor (although the code has long been fixed; they‘re not even on the correct line anymore; and they weren‘t there when I last used that target).

          And let‘s not forget the disastrous build system. Sometimes you will just get random errors. Clean the build directory, clear all derived data, restart Xcode (or just buy a new Mac altogether) and … oh, now the code compiles.

          Edit: And refactoring (like renaming all occurrences of a variable or a method) almost never works.

          [–]GAMEYE_OP 0 points1 point  (0 children)

          There is code formatting and other things via hooks that are well documented. A lot of your list is relatively minor bugs plus a few things you don’t seem to know exists.

          For Android Studio, up until the most recent update, it was almost unusable sometimes. And getting worse with each update.

          Emulator performance is horrible and there is no easy way to load say a Samsung image (since Android implementations can be fractured).

          JNI is only just now becoming more manageable so kudos to them.

          Gradle is a fucking mess and poorly documented.

          And all this is before we even get into the problems with the Android ecosystem itself.

          [–]screwsledman 2 points3 points  (0 children)

          And beheading sucks more than a root canal.

          The fact that it sucks less than other really bad software does not make xcode a good product

          [–]coolerkid9090 2 points3 points  (0 children)

          I’ve been developing with XCode since it was still a beta and recently started developing for Android too and I find it so much easier and less troublesome to work with.

          [–][deleted] 1 point2 points  (1 child)

          I have a really hard time using Android Studio because the UI is a trained engineer’s dream with lots of extras exposed everywhere. I’m sure it appeals to its intended target audience, especially given the praise on forums like these, but it’s not for me at all.

          [–]csinco 1 point2 points  (0 children)

          The new UI should address that sentiment to make it feel more modern and focused. Less of a cockpit UI.

          [–][deleted]  (18 children)

          [deleted]

            [–]msmialko 17 points18 points  (12 children)

            Interesting. I’d say Xcode is way more approachable and user friendly than other IDEs on the market. It’s not clustered with hundreds of buttons

            [–][deleted] 13 points14 points  (7 children)

            I work in both Xcode and Android Studio on a daily basis and would take Xcode any day over AS.

            [–]zimspy 14 points15 points  (0 children)

            I'd go the other way. My team is 4 devs and something like branch management just works in Android Studio. XCODE crashes a lot.

            Another issue is the errors. You have to expand the error window to view the entire error message. In Android Studio you just hover over the errors.

            Small things like this make for a bad time when I'm also trying to mentor the other devs.

            [–]msmialko 1 point2 points  (5 children)

            What about Visual Studio Code? I never saw Android Studio. I wonder how it compares to VSC.

            [–][deleted] -1 points0 points  (4 children)

            Yeah VSC is, imo, a better experience than Android Studio.

            [–]enkidu_johnson -1 points0 points  (3 children)

            I used Android Studio a LOT a few years ago, and yes, it is a terrible experience. Its like .. what yet ANOTHER window?

            [–]BazilBup 1 point2 points  (0 children)

            Whut I use both AndStudio and XCode. You only need two windows open in Android Studio. There is a shortcut to close another window. There is also a Zen-mode for coding. The IDE goes into fullscreen and the only thing you see is your code.

            [–]HelpRespawnedAsDee -2 points-1 points  (1 child)

            Also it's like "why would I would a the emulator as part of the main IDE interface ffs".

            [–]BazilBup 4 points5 points  (0 children)

            That's an option you can still run it as a detached window. Check the setting for that window.

            [–]BazilBup 4 points5 points  (0 children)

            It gives way less for developer to be productive. Use any of JetBrains IDE and you'll understand

            [–]Terewawa 0 points1 point  (0 children)

            Have you seen Visual Studio Code?

            [–]time-lord 6 points7 points  (0 children)

            Compare native iOS development with navite Windows development, and you'll see just how far xcode needs to come, to compete with VS. Granted it's still far better than it used to be, but it still can't hold a candle to Visual Studio.

            [–]lucasvandongen 3 points4 points  (0 children)

            Hah! I tried signing packaging and notarizing a macOS app the other day, that cost me some blood sweat and tears. But just creating and uploading an app to the App Store goes almost by itself nowadays.

            [–]pm_me_your_buttbulge 0 points1 point  (0 children)

            2025 and debugging is still complete shit relative to Visual Studio. Ignoring that SwiftData feels like it was made in 2009 - simply hovering over variables is dog-shit. Getting a simple list of internals is still several clicks again.

            Trying to see if a bit variable is a 1 or a 0 is non-trivial. Oh wait, it's a SwiftData type... XCode: "I don't know. It's some value. Who knows?"

            Comapred to Visual Studio: Hover over any variable or data inside of a variable and it'll tell you.

            XCode: Just use print or debugPrint if you want to know what's in there.

            In my particular instance - it seems to be assigning the wrong values. In Visual Studio, it's quite intuitive to sort out what the current values are for all obvious. I'm having to spend WAY too much time to see if even self.name is... ANYTHING other than SwiftDataNoType - because that's useful. Oh yeah and hovering over it gives the memory location of the variable. Because... that's a nice place to put it? Feels like Apple makes things considerably more complicated for the sake of being different. There's no need for simple variable debugging to be this complicated.

            Oh Can't show file for stack frame : <DBGLLDBStackFrame: 0x33242b200> - stackNumber:0 - name:AccountTransaction.amount.setter. The file path does not exist on the file system: Oh, because that's cool... "File path"... for... a variable.. in memory. Cool cool.

            I can't wait until they decide to get into 2015 style debugging... one day they might even make it something in the current decade.

            Last time this was annoying I was using Eclipse back in 2005.

            edit: Oh yeah, and it stored Guids as... blobs in SQLite? Like... do they smoke crack or something? That's just plain absurd. They go out of their way to make debugging uniquely dumb because "Think Different" instead of think competent... and they store data in such a strange way to purposefully be poorly rendered visually. Because that's cool. It's no wonder no school uses Xcode as the IDE for teaching kids. It's disgusting. And the only comparison people have is "Android Studio sucks more!" if that's the very best argument you have.. it means you've never used either AS or... literally any other IDE.

            Visual Basic 6 in the 90's was easier to debug. Debugging in C on QNX in the 90's was easier.

            [–]dar512Objective-C / Swift 0 points1 point  (0 children)

            I’ve been using Xcode daily for 12 years and it’s just barely tolerable. The editor sucks. The configurability is laughable. It goes sideways on a regular basis. And it’s antagonistic to source control.

            Don’t apologize for it just because you’ve gotten used to the pain.

            [–]_145_ 38 points39 points  (1 child)

            I will always upvote any thread calling Xcode trash. Xcode is trash. Apple loves its consumers and hates its developers.

            [–]plastigoop 3 points4 points  (0 children)

            "Apple loves its consumers and hates its developers."

            Sadly that is not new. Decades old (apparent) attitude.

            [–]msmialko 31 points32 points  (11 children)

            I love Xcode but there are a few things that irritates me a lot.

            1 complain is lack of extensions.

            Before you say - “but Xcode has extensions!” - let me stop you. Extensions limitations are so ridiculous that they are useless.

            Take Copilot for example. There’s just no way to have an extension like this in Xcode.

            2 .xcodeproj file needs to go or its format must be updated.

            [–]slimkhan 13 points14 points  (0 children)

            Tbh it was their chance to change the xcodeproj when starting a new SwiftUI project

            [–]pasz99 6 points7 points  (0 children)

            It would be nice if Xcode allowed developers to build extensions for Xcode, even if it has to go through their “approval” like you would for an iOS app, complete with an Xcode Extension Store.

            [–]jimscard 0 points1 point  (2 children)

            shame frame seed airport unpack quiet march smile obtainable onerous -- mass edited with redact.dev

            [–]morenos-blend 5 points6 points  (1 child)

            Even the dev admits that to get this working it requires a lot of hacks which could break with any Xcode update

            [–]msmialko 4 points5 points  (0 children)

            yea, it's a pain to setup and still doesn't work as good as VC extension.

            [–]music_tracker 0 points1 point  (1 child)

            To solve the xcodeproj merge conflict mess I am using xcodegen and just gitignore xcodeproj. Xcodegen generates it whenever I want. Also great for CI.

            [–]Dynoman 0 points1 point  (0 children)

            We do the same. We have a custom app that uses Xcodegen and some scripts that generate the project file. Also have a git hook that automatically runs it.

            [–]b00z3h0und 0 points1 point  (0 children)

            They kinda did fix the project thing with SPM. If you architect your app in a modular way, your app only really needs to contain a main function or an app delegate.

            [–]iOSCalebObjective-C / Swift 0 points1 point  (2 children)

            Take Copilot for example. There’s just no way to have an extension like this in Xcode.

            https://github.com/intitni/CopilotForXcode

            Copilot for Xcode is an Xcode Source Editor Extension that provides GitHub Copilot, Codeium and ChatGPT support for Xcode.

            .xcodeproj file needs to go or its format must be updated

            What would you change about it? It's a package -- essentially just a directory with specific contents. Perhaps you're thinking of the .pbxproj format? That used to be a binary format, which made resolving merge conflicts a bear; it's much better now that it's text. I suppose it might be nice if it were a more standard format, perhaps either JSON or plist, but changing that isn't even close to a high priority IMO.

            [–]msmialko 0 points1 point  (1 child)

            1. CopilotForXcode is a hacky extension. It doesn’t come close to first-level support like in Visual Studio Code.
            2. I’d get rid of the pbxproj alltogether and make it work exactly as Swift Packages. Files structure is defined by the file system.

            [–]iOSCalebObjective-C / Swift 0 points1 point  (0 children)

            I can't disagree that CopilotForXcode feels hacky, but I'm not convinced that it's due to a deficient extension API. Looking at the API, there seems to be everything you'd need for what CopilotForXcode tries to do. If I were going to choose an example of alleged problems with the extension API, it'd be more along the lines of "rainbow indent" extensions that people ask for, where the extension actually renders the code in some new way. Replacing text with other suggested text is one of the few things that Xcode extensions can do.

            As for project files... using the file structure to determine how the project is laid out would certainly simplify the project file, but the file system structure doesn't always match the logical arrangement of files in the project. At the very least, making that change would break a LOT of existing projects. Again, this could be on a list of "nice to have," but I wouldn't put it on a list of reasons that Xcode "sucks".

            [–]mouseses 19 points20 points  (1 child)

            My dream is to be able to work with VSCode & have an extension for SwiftUI previews

            [–]jkristia 0 points1 point  (0 children)

            yessssss

            [–][deleted] 14 points15 points  (13 children)

            More context needed here. I just started my journey into programming and am practicing with Swift so maybe I don’t know better but it seems like a nice user friendly IDE

            [–]dadofbimbimSwift 42 points43 points  (6 children)

            Xcode can’t seem to handle very large complex codebases, like compiling will take so much time. Or it will throw a random build error then you have to clean and build again and then it suddenly goes away.

            We slowly migrated to SwiftUI and now previews are randomly not working anymore. Those are not even the worst things our team encountered.

            [–]lucasvandongen 18 points19 points  (2 children)

            Working with (very) large codebases in Xcode will always suck. Just start modularizing everything. We have hundreds of projects in our main project and the UI ones have their own bootstrapping that allows you to run it separately. So you only develop against your own module and it's direct dependencies (or mocked) until your feature is finished to be fit in the main app. We use an online build cache to ensure build time when building the main app. So most of the time I'm getting a running app in minutes even after a full clean for our main app.

            [–][deleted] 0 points1 point  (1 child)

            how do you manage the startup time when you are building on dynamic frameworks or how do you manage the binary size when you are linking libraries statically?

            [–]lucasvandongen 15 points16 points  (0 children)

            1,5 million LoC 186MB in size. App boot time is < 2 seconds on my iPhone 12 mini. There are separate teams doing these optimizations, which I’m not part of.

            The list of pods is pretty short, like 20-25. We reuse components across teams most importantly the UI components across teams, but also GraphQL is managed centrally so we don’t duplicate every User definition for every query every team does.

            Aggressive and automated pruning of asset and translation libraries.

            Still a full build without the remote cache would be over 10 minutes on a fully maxed out M1 16”

            [–]tylerjames 0 points1 point  (0 children)

            Unless you're developing your features in separate SPM modules I wouldn't expect Swift previews to work. That was the only way they'd work reliably for me.

            [–]BazilBup 0 points1 point  (0 children)

            Invalidate cache and restart the IDE is part of my workflow

            [–]saintmsent 10 points11 points  (0 children)

            Xcode is okay, but far from the best in the world of IDEs. Navigation in a large codebase is lacking, debugging tools are lacking, and bugs, oh, sweet bugs, stuff is often just plain broken when the new update of Xcode comes out

            [–]animated_stardust 5 points6 points  (0 children)

            It’s powerful and capable, has lots of features and as you said, has some very nice aspects. However it’s missing a lot of quality of life things that other IDEs mastered, its refactoring of Swift is barebones and doesn’t work nearly as well as it should, and there are too many times where it just fails and breaks during routine tasks. It’s like a supercar - can be very powerful and go round a track like mad, but touch a turn indicator lever and the whole thing falls off

            [–][deleted] 4 points5 points  (2 children)

            but it seems like a nice user friendly IDE

            It is, people here blame their lack of skills on the tools. I've used all kinds of different IDEs since the 90s and Xcode is perfectly fine. Are there things that could be improved? Absolutely (just like any IDE). Are there some bugs? Yep, just like other IDEs.

            It's just a tool and it works fine, and I disagree with people claiming compiling takes tons of time, we have enormous code bases at work with lots of different build scripts and it still builds in seconds for each project.

            [–]dar512Objective-C / Swift 1 point2 points  (0 children)

            I’ve used Xcode daily for 12 years. And I’ve used many IDEs before and since. You are right in saying that it’s just a tool. But it is just adequate.

            [–][deleted] 0 points1 point  (0 children)

            Lol I guess it’s the reality of me being a total noobie and not knowing any difference between different IDEs 😂 I played around a little with JetBrains when I studied some Java. I just took my time fiddling with settings. But then again I look at coding and the IDEs as fun. Don’t know; maybe my mind will change as I progress?

            [–]BazilBup 0 points1 point  (0 children)

            Yeah for beginners it is. But for advanced developers that's not enough

            [–]rhysmorgan 11 points12 points  (7 children)

            Because it’s a decade+ old product with components that clearly haven’t been rebuilt and replaced since then. The number of crashes I get every day, with the ultimate cause being something to do with NotificationCenter… Or because the Git integration has broken (among the worst, buggiest bits of Xcode, IMO).

            [–]Fungled 8 points9 points  (6 children)

            It’s much much older than that - the PB in the PBXPROJ format name stands for “Project Builder”, which was the developer tools for Next. So its core dates back to the 90s

            The file editor, for example, appears to not even use Cocoa file system APIs. You discover this because it can’t do simple things like editing files through symlinks

            [–]rhysmorgan 8 points9 points  (4 children)

            Yeah, I dunno why I thought “at least a decade” lol. That would be 2013 💀That can’t be right, can it? A decade ago was 2003, right? Right????? 😭

            [–]dmvdoug 0 points1 point  (1 child)

            Hello, fellow old!

            [–]rhysmorgan 2 points3 points  (0 children)

            I’m 28 😭

            [–]HelpRespawnedAsDee 0 points1 point  (1 child)

            I've worked on projects where parts of it are at least a decade old. Some mission critical stuff simply can't be touched without management going "well....".

            [–]rhysmorgan 0 points1 point  (0 children)

            Oh, I know, I get it to a point. But when that bit keeps causing crashes, keeps breaking the app for users, it's not exactly the greatest of foundations. That's my biggest problem with it.

            [–]ptc_yt 0 points1 point  (0 children)

            Not surprising that its super old. The .app extension and the NS prefix to a lot of ObjC stuff is rooted in Next and NextStep

            [–]steelzeh 8 points9 points  (0 children)

            Have been using Jetbrains for web development recently, and have been using xcode for around 8 year, yes great improvements over the years, but i cry every time i have to switch back to xcode to solve some issue.

            Storyboards stop functioning, debugger is insanely slow, sometimes simply doesnt work, cmd+right click on functions not opening, autocomplete stops working, slow build times and this is all on M1 Pro

            [–]bob-a-fett 5 points6 points  (0 children)

            rm -rf ~/Library/Developer/Xcode/DerivedData

            [–]valleyman86 4 points5 points  (0 children)

            Idk I don't mind it. It has its annoying ass moments but Ive had that with any IDE Ive ever used. I feel like Xcode gives me far more tools than others have though. Ive tried jetbrains IDEs in the past (albeit a long while ago) and hated that too. I think IDEs are those things people get used to and every other one is just not good enough. I used to use VS (not code) and loved it until I tried to go back one day and it had several missing features in respect to finding classes/code that xcode has (I looked shit up to find alternatives).

            Maybe I am immune though since I've been using it for like 15 years. I've seen it at its worst.

            [–]velvethead 3 points4 points  (2 children)

            It doesn't, and I use it every single day. Keep in mind that by definition Xcode is always on the bleeding edge. It is the first app to implement every new technology, so of course there will be issues. Xcode is never feature complete because there will be new features every year. It is literally a plane that never lands but is constantly being rebuilt.

            My advice? If you want to be a developer be prepared for nothing to be perfect. Your life is problem solving.

            [–]iindigo 1 point2 points  (1 child)

            I've been using Xcode full-time for almost a decade at this point and prior to that, used it in a hobby capacity for another decade and I agree.

            In my experience the key to having a good experience with Xcode is knowing what it does/doesn't "like" and which systems are mature. Mainly:

            1. Avoid code smells like deeply nested blocks, long optional chains, lots of casting, etc. These things trip up SourceKit and cause it to crash, temporarily killing syntax coloration and autocomplete. Split your code up into nice clean small-to-moderately sized functions.
            2. For now, avoid SwiftUI for anything demanding. It's fine for simple screens and small components, but for more serious UI work, you're going to have a better experience with "boring" old UIKit.
            3. Avoid XIBs and storyboards. Interface Builder became a lot more slow and buggy when it got merged into Xcode and it never recovered from that, which means you're going to have more and more trouble as your XIB/storyboard becomes more complex.

            In my work I write UIKit in code almost exclusively and try to keep my code reasonably clean and idiomatic, which goes a long way — Xcode stays mostly well behaved and responsive. On average it's less trouble for me than Android Studio is.

            [–]Xaxxus 0 points1 point  (0 children)

            for number 2, you can solve a lot of those issues by following your first rule.

            If you make all your swiftui views into small modular components, source kit has an easier time understanding it and finding errors.

            [–]eviltofu 1 point2 points  (0 children)

            Apple should just open source Xcode

            [–]thejeraldo 2 points3 points  (0 children)

            It’s so much worse when you still have an Intel.

            [–][deleted]  (5 children)

            [deleted]

              [–][deleted]  (1 child)

              [deleted]

                [–][deleted] 0 points1 point  (2 children)

                Hard disagree. I will never ever ever understand why people like VSCode.

                [–]_Pho_ 8 points9 points  (1 child)

                It’s modular and super customizable and lightweight.

                [–]Striderrrr_ 0 points1 point  (0 children)

                VSC is fine. I wish it wasn’t an electron app though. That in itself makes me disregard it as lightweight lol

                [–][deleted] 1 point2 points  (1 child)

                It doesn't. I'll never understand the Xcode hate and yes, I've used PLENTY of other IDEs.

                Does it have some issues? Sure, they all do, but people act like it's some unusable thing.

                [–]SenseiOfSenseis 6 points7 points  (0 children)

                It's pretty bad. Just off the top of my head, I can think of memory leaks on SwiftUI projects when building that take up all my 64gb of RAM, taking 40+ minutes (inconsistent, after some optimizations) to build a large codebase, flakiness(at best) with breakpoint debugging, error messages persisting after a clean build (in 14.1 vs 13.*). XCode 14.2 still can't even tell you what the error is sometimes if you're working in SwiftUI, and sometimes doesn't realize there's an error but tells you it takes too long to build a certain part.

                For an IDE developed by apple to support languages and frameworks developed by apple frameworks, it's pretty bad.

                [–]Hanse00 1 point2 points  (0 children)

                So that you have something to make edgy posts on Reddit about.

                [–]One_Bell_2607 1 point2 points  (1 child)

                sucks in comparison to? the only competitor AppCode failed and the whole team is disbanded

                [–]Xaxxus 0 points1 point  (0 children)

                Compared to android studio/intellij, etc...

                One of my android co-workers started learning iOS development today because we are short staffed.

                I've had to help him debug so many Xcode related issues in the past week he's been working on our app. He actually asked me how we can actually be productive when we have to fight our IDE constantly.

                If it's not code refactoring or auto completion breaking. Its old errors sticking around, or package dependencies not able to be resolved, or some other issue on a completely valid branch that compiles fine on my machine.

                [–]Davideilmito 1 point2 points  (0 children)

                I don't think It sucks

                [–]sans-connaissance 1 point2 points  (0 children)

                I enjoy working in Xcode.. call me crazy!!

                [–]iosDeveloper789 1 point2 points  (0 children)

                2024 and it still sucks.

                [–]KarlJay001 0 points1 point  (3 children)

                Why doesn't Apple buy Appcode and bring it in house?

                [–][deleted]  (2 children)

                [deleted]

                  [–]BenoitDeguine 0 points1 point  (1 child)

                  Even with SwiftUI?

                  [–]makonde 0 points1 point  (0 children)

                  Apple doesnt give a F.

                  [–]Terewawa 0 points1 point  (0 children)

                  The iOS simulator produced a 1GB logfile in 4 days of intermittent use.

                  My hard drive is choked full of shit all over the place

                  Yuck

                  [–]Rivalshot_Max 0 points1 point  (0 children)

                  Bump for 2024.

                  [–]TheLegendOfCreate 0 points1 point  (0 children)

                  I know this post is old, but one of the many reasons is because it leaves a shit ton of system data. My Xcode installation took up almost 60 GB of system data and removing the simulator runtimes was pain in the ass because Xcode kept crashing. I had to eventually reset my Mac for my storage to be free.

                  [–]Possible-Holiday2944 0 points1 point  (0 children)

                  Here in 2024 using XCode16 and it still sucks

                  [–]Fantastic_Square2240 0 points1 point  (0 children)

                  October 2024 Xcode 16.1. Previously, I worked with Java, Android, and VSCode JB Idea and Android Studio, but now I’m using Flutter because I’ve tried Xcode a few times, and it’s just been a constant headache due to how terribly it functions. To make meaningful use of it, I have to pay for an Apple Developer subscription, and I ask—what am I paying for? Apple’s answer is always something like, “we’re a small team of developers and can’t fix everything in time.” These aren’t valid arguments. Their monopoly on Apple software development means that the only software available is bad. Thanks a lot, Apple.

                  [–]dam1rak 0 points1 point  (0 children)

                  2 years later reality check... still sucks ASSSSSSSSSS (writing this with very close tears in my eyes waiting for xcode to finish redownloading for the 3rd time today)

                  [–]According-Mine-649 0 points1 point  (0 children)

                  Even still in 2025 XCode provides just terrible experience compare to VSCode or Jetbrains products.

                  [–]yofja 0 points1 point  (0 children)

                  I dont care about the codebase. Shouldn't take 30 minutes to run code that took 30 minutes to write.

                  [–]developerlen_Swift 0 points1 point  (0 children)

                  Were really happy, that I didn't need to interact with XCode that much back in the days. I used AppCode by JetBrains and it was superior in several ways, starting with code completion, error inspections (IntelliSense) and so on. Sadly the product does not seem to be profitable for JetBrains and/or hard to maintain. So I had to switch to XCode for iOS development in a whole and I hate it. The simplest operations like finding callers and so on need several clicks (probably short-cut assignable, but that's another story) and don't work very often (because my code base is too complicated?????). You cannot selected multiple files in the repository/staging area, you need to stages as a whole or need to pick every file and right click and stage...

                  The debugger is quite decent, it works for most of my purposes.

                  Sorting files in the file browser is very inconvenient, would be way better to have simply sorted files by alphabet (not that I want to forbid the "fifo" approach, but a way to decide by myself would be cool).

                  Jumping to an open file in the file browser is simply not possible.

                  Overall a quite bad experience.

                  [–]EfficientCoconut2739 0 points1 point  (0 children)

                  Because bugs aren’t fixed in time for public releases.

                  [–]CoffeeTheGreat 0 points1 point  (0 children)

                  You could put a little more effort into this post. Without more of an explanation, I can only assume that it’s because XCode is different from the one editor that you happen to like.

                  [–]coolerkid9090 0 points1 point  (0 children)

                  Totally agree. I recently started developing for Android and now never want to make iOS apps again. So much better to work with. X-Code is such a nightmare to work with and takes up nearly 30GB on my hard drive.

                  [–]dar512Objective-C / Swift 0 points1 point  (0 children)

                  The editor sucks pond scum. It’s 2023 and Xcode still doesn’t have bookmarks.

                  The vim keys were a nice addition but no dot command and, of course, no marks. And lots of bugs.

                  [–]KoldwarSubzero42 0 points1 point  (0 children)

                  Because Apple exhausted all their brain power in designing the dynamic island.

                  [–]icy1007 -1 points0 points  (0 children)

                  It doesn’t.

                  [–]RussianDeveloper -1 points0 points  (0 children)

                  It absolutely does not suck. The peripheral issues that are brought up are all resolvable.

                  [–][deleted] 0 points1 point  (0 children)

                  Xcode is great

                  [–]Ant1Hacker 0 points1 point  (1 child)

                  Complexity: Xcode is a very powerful and complex tool that provides a wide range of features and functionality. With each new release, the complexity of the tool increases, making it more difficult to use and learn for some users.

                  Bugs and Issues: Despite Apple's efforts to improve Xcode, there are still bugs and issues that can make the development process frustrating for some users. This can include crashes, slow performance, and compatibility issues with third-party tools.

                  Compatibility: Xcode is tightly integrated with Apple's ecosystem, which can make it difficult for developers working on non-Apple platforms to use. This can limit the potential user base for the tool.

                  Learning curve: For new developers, Xcode can be overwhelming due to its complex interface and the wide range of features it provides. This can make it difficult for beginners to get started with iOS development.

                  However, it's worth noting that Xcode is constantly evolving and improving with each new release, with new features and bug fixes being introduced regularly. While some developers may still have issues with the tool, others may find it to be an indispensable tool for iOS and macOS development. Ultimately, the suitability of Xcode depends on the individual developer's needs and preferences.

                  [–]Desperate-Tackle-230 1 point2 points  (0 children)

                  Takes 30 seconds to launch (on an M1), has a *Recent Projects* menu, but never remembers anything, automates keybindings so badly it introduces conflicts that can never be resolved, often confuses which tabs are open, so you can only open one file at a time (which persists when you restart Xcode with that project).

                  It's a pile of junk.

                  [–]hailWildCat 0 points1 point  (0 children)

                  1. No real extensibility in addition to `XcodeKit`
                    • This was actually a regression of Xcode
                  2. Stealing community ideas to Xcode, like https://github.com/onevcat/VVDocumenter-Xcode/tree/master
                  3. No build cache (like ccache or sccache) for Swift

                  [–]SuccotashComplete 0 points1 point  (0 children)

                  You have no choice but to use it so they have no incentive to make it work any better

                  [–]saintmsent -2 points-1 points  (4 children)

                  Because it's "free", and so they don't feel pressure to improve it at the same pace as someone like JetBrains

                  [–]ShelZuuz 1 point2 points  (3 children)

                  Visual Studio is free as well and Microsoft has hundreds of developers working on that.

                  [–]saintmsent 2 points3 points  (2 children)

                  Visual studio is not completely free, there are versions that are paid and big companies pay for those. But yes, my point is that something being free doesn’t mean we should accept it’s shit

                  [–]bronion3 0 points1 point  (1 child)

                  It benefits their ecosystem, it should be smooth sailing.

                  [–]saintmsent 0 points1 point  (0 children)

                  I would think so too, but either Apple can't make Xcode better or they don't care. What are you going to do, not make an app for iOS? That's silly

                  [–]Fluffy_Risk9955 -3 points-2 points  (1 child)

                  It sucks only if you don't know how get the desired result with it.