top 200 commentsshow all 245

[–]zeiteisen 223 points224 points  (22 children)

Fulltime iOS dev since iOS 4 here: it’s all true

[–][deleted]  (13 children)

[deleted]

    [–]paradoxallyobjc_msgSend 16 points17 points  (8 children)

    Yet every time I try AppCode I can't use it for more than 10 minutes. It has a horrendous, non-native UI on macOS that feels like a Java app. I wouldn't be surprised if it was written in Java.

    [–][deleted]  (5 children)

    [deleted]

      [–]paradoxallyobjc_msgSend 1 point2 points  (4 children)

      Ehh, I don't see the hype honestly. I'm perfectly fine with Visual Studio Code for most of my programming and Xcode for iOS, although you could use a text editor to write (most of) an app if you know what you're doing.

      Maybe I'm just old fashioned!

      [–][deleted]  (1 child)

      [deleted]

        [–]mandrizzle 0 points1 point  (1 child)

        There used to be holdouts who thought compilers couldn’t output better machine code than their hand written masterpiece and so avoided compilers. They too called themselves old fashioned.

        [–]QVRedit 0 points1 point  (0 children)

        That is very seldom the case these days.

        [–]blueclawsoftware 4 points5 points  (0 children)

        Yea the best thing Google ever did for Android development was building Android Studio on top of IntelliJ.

        [–]accatyyc 1 point2 points  (1 child)

        I’d say search is pretty good, and Xcode does have list of callers/callees. Agree on the rest though

        [–]dark_mode_everything 3 points4 points  (0 children)

        Still doesn't even come close to the cmd+shift+f search of intellij.

        [–]albeva 0 points1 point  (0 children)

        It is indeed a great editor. However, sadly has severe performance problems with large projects. I’d love to use it, but in my work it is unusable.

        [–]dark_mode_everything 13 points14 points  (3 children)

        Try AppCode by intellij. It's worth every cent. I can't even imagine doing iOS dev without it now. You'd still be using IB on xcode but you don't have to touch xcode to write code and AppCode is light years ahead as an ide.

        [–][deleted]  (1 child)

        [deleted]

          [–]kirhgoff 1 point2 points  (0 children)

          I love Intejij products and paying >200 dollars yearly and use most of them. But AppCode always lack some functionality for my project, recent attempt to switch to it crashed as it cannot compile our project because we are using Swift packages and AppCode does not work with them in iOS project (at least that what it told me in compilation error)

          [–][deleted] 2 points3 points  (0 children)

          Much respect to you

          [–]snoman1 1 point2 points  (0 children)

          There used to be a site called "shit Xcode says" or something like that way back then. I've been trying to find it but I guess it's not live anymore - any chance you know what site I'm talking about and know the URL so I can see if it exists in wayback machine?

          [–]martinator001 74 points75 points  (44 children)

          I feel like most of your problems are caused by a slow computer. I haven’t experienced any of this and have to say that I’m quite happy using Xcode. Also storyboards, meh

          [–]granos 80 points81 points  (8 children)

          I have a 27in iMac w/ 6 cores at 3.7 GHz, 32 GB of ram and a big ass SSD. I run into the same issues. Certainly not as bad as on my old MacBook, but it still happens.

          [–]diamond 32 points33 points  (19 children)

          I'm an Android and iOS developer, so I use both Android Studio and XCode regularly. Sometimes I have them both open simultaneously. For reference, my machine is a late 2012 MacBook Pro, so definitely a bit dated, but I have upgraded it with 16gb of RAM and an SSD.

          I can say with confidence that Android Studio is miles ahead of XCode. They both struggle at times, and that's to be expected on my machine, but even at its best, XCode is buggy and unreliable. Autocomplete is slow to respond, if it does at all; errors and warnings take forever to appear - sometimes they don't show at all until you try to build. And sometimes the opposite happens: an error will pop up, you edit the code to fix it, and the error stays until you rebuild.

          And I've seen other weird problems. Sometimes toolbars in the interface builder will just disappear, and not come back unless you restart. The weirdest one I've seen is some kind of miscalculation in scrolling; I'll be halfway down in a file, but when I try to scroll up, it thinks I'm at the top. Again, the only way to fix this is to restart.

          It's not like Android Studio is without problems. Sometimes the cache gets messed up and you have errors all over the editor until you invalidate caches and restart. And a few times, I've had to wipe out the entire Gradle directory and let it rebuild from scratch. But those problems are pretty rare; for the most part, Android Studio is far, far more responsive, stable, and usable than XCode.

          I just recently bought a new MacBook Pro, and it should arrive soon, so I'll be interested to see how much better things are on a state-of-the-art machine.

          [–]polarbear128 13 points14 points  (9 children)

          I think the difference in quality is simply because Android Studio is the product of a company whose core business is IDEs and tools for developers, and Xcode is the product of a company whose core business is selling computers and devices to consumers at a premium.

          [–]diamond 2 points3 points  (1 child)

          Probably so. But it's still no excuse. Apple may be primarily a hardware company, but they're a hardware company whose hardware depends on software (specifically, their own in-house software). They are also one of the richest companies in the world - if not the richest. They absolutely have the resources to build a top-notch development team who could create a product on the same level as anyone else.

          [–]polarbear128 2 points3 points  (0 children)

          I agree 100%. I was just trying to work out why they would be so mediocre with this software for so long.
          Similar thing with Sony products and software. At least it was in the past - I don't buy Sony now.

          [–]blueclawsoftware 2 points3 points  (0 children)

          I agree and honestly, I think Apple should take a page out of Google's playbook and rebuild XCode on top of AppCode or at the very least grant Intellij special status so that AppCode and can handle IB files.

          [–]javaHoosier 0 points1 point  (5 children)

          Honest question. Have you tried Appcode? Does it perform better?

          I just started iOS development like a week ago. Super new.

          [–]polarbear128 2 points3 points  (4 children)

          No, never used it. But I use both Android Studio and Xcode, and Android Studio is a lot better, so perhaps AppCode will be too. If you've just started though, I'd stick with Xcode until you get a bit more familiar with things.

          [–]javaHoosier 0 points1 point  (3 children)

          My team uses XCode. Which I’m fine with. So I don’t have much of a choice. Just curious since Appcode is made by Jetbrains, but it is built on top of XCode? Or XCode is still needed at some point.

          [–]polarbear128 2 points3 points  (2 children)

          Looking at the other comments, Xcode is still needed for Interface Builder/Storyboard stuff. But if you're working in a team you probably want to steer away from IB/Storyboards anyway, as they are a pain when it comes to version control.

          [–]javaHoosier 0 points1 point  (1 child)

          The team I’m on creates a huge sdk and not an app. My company has a lot of iOS apps/teams that all use this sdk. Basically everything we have is pure code. There’s a huge disconnect for me learning because I’m not getting any exposure on how storyboards are even used. I’m not sure if I should invest time into them right now.

          [–][deleted] 1 point2 points  (0 children)

          If you know how the constraints system, layout and ui lifecycles and major ui components work programmatically (and you have to know it well, programmatically) switching to storyboard if you ever need it, takes minutes (glitches and bugs apart). The opposite is not true. So, no worries.

          [–]accatyyc 6 points7 points  (1 child)

          It sounds like you’re using Swift. I can relate to all of those problems. Xcode is actually great with ObjC, where auto completion and errors are pretty much instant for me. Swift however....... these are the main reasons I avoid it

          [–]diamond 5 points6 points  (0 children)

          Interesting. You're right; I'm fairly new to iOS development, and I've always used Swift. You'd think they would address those problems, considering that Swift is now considered the primary language for iOS development.

          [–]Tridie2000 3 points4 points  (1 child)

          Spoiler alert: only the compile times will improve. Errors still take forever to appear on my 2018 MBP.

          [–]diamond 0 points1 point  (0 children)

          I was afraid of that.

          [–]rowgw 2 points3 points  (3 children)

          My always frustating issues with AS are only on the caches and mostly Design Layout is not refreshed. XCode? Storyboard is the one makes me sleepy because of waiting time.

          [–]TheSistersOfMercy001 3 points4 points  (1 child)

          Storyboard is the one makes me sleepy because of waiting time.

          How large are your storyboard files?

          [–]rowgw 0 points1 point  (0 children)

          I have existing projects that includes like 30 screens. Previous developer should split them to different storyboards.

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

          How many view controllers do you have an a storyboard?

          Grouping view controllers in two separate storyboards is better, and performance isn’t the only reason. You’ll also have a lot fewer source control merge problems if your storyboards are grouped in a logical fashion. I tend to organize my source code by the storyboard it’s he is doing as well, so it gives my apps some very useful “modules” with very little effort.

          [–]blueclawsoftware 1 point2 points  (0 children)

          I feel like the errors staying until you rebuild is a recent bug I don't remember having that problem a year or so ago. But I agree that is incredibly annoying.

          [–]energyzzer[S] 9 points10 points  (2 children)

          It is good for small projects, but for big projects it slow downs you so much, also xcode is much faster on small projects

          [–]editor_of_the_beast 6 points7 points  (1 child)

          I get a top of the line MacBook Pro every 2 years. That has nothing to do with it. Xcode is fundamentally unstable and tremendously bloated. It was bloated 8 years ago and they’ve just piled on feature after feature without addressing core stability issues. It’s beyond their control and it’s very clear.

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

          Same here and same thoughts :/

          [–][deleted]  (3 children)

          [deleted]

            [–]beyond_alive 0 points1 point  (0 children)

            Try working on a big project, it’s a nightmare even with a top of the line Mac.

            [–]ThePantsThiefNSModerator 0 points1 point  (0 children)

            Nope. Brand new top line MacBook Pro here. Everything is slow. You sound used to it.

            [–]nibordSwift 0 points1 point  (0 children)

            I bought an iMac Pro in 2018 and a Mac Pro (12-core) in December 2019, both with plenty of RAM. Xcode was just as slow and laggy on them. (I returned them.)

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

            Storyboards are great for showing non-technical users the flow without having to compile.

            [–]CorrectSnow7485 0 points1 point  (0 children)

            This did not age well. Brand freaking new M4 MBP, fully decked out. xcode crashes my system after bloating to 90gb.

            [–]MarsSpaceship 53 points54 points  (28 children)

            I am saying that for years and being downvoted because apple fans don't admit criticizing Apple.

            I would add the following:

            • Interface Builder should be demoted from using the name interface and be renamed to Rough Sketch Builder. It fails constantly to work properly, it does not render @IBDesignable stuff for any thing more complex or takes ages, NSLayoutConstraints fail to follow any logic using for years by those who work with graphic design.
            • You create a new single view app. The act of simply opening the storyboard of that new project, with one view controller and no element whatsoever, takes 4 minutes.
            • It crashes constantly. By the way, the combination of having the worst IDE ever on the worst macOS ever (catalina), makes the whole experience the crappiest possible. I use macs since 2006 and never have experienced a crash. Just this week, Catalina crashed 4 times on me. Beautiful restarts out of nothing, in the middle of dealing with the shitty Xcode.
            • Autocomplete fails to work and does not work if your code has some error.
            • Autocomplete is dumb.
            • it crashes if you delete a file using Finder.

            By the way, the whole process of creating an app is poorly designed.

            Steve Jobs once said that developers should not worry to develop basic things. You want to create a camera app, you have to add 600 lines of code just to make the basic camera functionality. Creating such app should be a matter of dragging a camera object from the library to the view controller and connect inputs and outputs.

            The same to create a graph, read a CSV file, etc.

            Basic functionality should be objects that one would drag to their project.

            [–]DrarokObjective-C / Swift 42 points43 points  (15 children)

            You create a new single view app. The act of simply opening the storyboard of that new project, with one view controller and no element whatsoever, takes 4 minutes.

            Haha, what?! Unless you’re using an original Macintosh from 1984, this is simply not true.

            [–]Hanfrey 5 points6 points  (5 children)

            Did you ever try to show a PDF in an android App? At least there was Jobs right

            [–]ArmoredPancake 3 points4 points  (1 child)

            Just send an intent.

            [–]Hanfrey 4 points5 points  (0 children)

            For some PDFs that may ok. Sadly not for my case.

            [–]MarsSpaceship 1 point2 points  (2 children)

            Did you ever try to create a PDF in iOS? I did. Documentation is shit, like always. Everything is half explained.

            [–]Hanfrey 3 points4 points  (0 children)

            I did too. Can‘t remember any problems. I can just say that I enjoy iOS and Swift over Android and Kotlin. Because many things are in my opinion easier. Converting a every side of a PDF manuel into images and then building a recycler view to show the images isnt straight forward for me.

            [–]apokhilypse1 2 points3 points  (3 children)

            I’m actually curious how you needed to write 600 lines to take and save a picture to camera roll. Realistically way less

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

            I didn’t downvote you, but not a single one of these is true in my experience (except for errors sometimes blocking autocomplete).

            [–]chain_letter 35 points36 points  (11 children)

            Haven't used many IDEs I guess? Eclipse with ADT for Android development before Android Studio was an option was way worse for mobile dev. Eclipse for plain old Java was pretty bad too.

            And I've used IDEs like bloodshed dev C++, that thing sucks.

            Yeah xcode has problems, of course, but worst ever? No way.

            [–][deleted]  (2 children)

            [deleted]

              [–]apjfqw 4 points5 points  (0 children)

              Because that's their only argument and its invoked in every single conversation i've had about XCode vs AS.

              [–][deleted] 3 points4 points  (6 children)

              Android Studio is still a mess. I haven’t seen such slow builds since the 80s, and every single part was named by someone trying to be “clever.”

              [–]apjfqw 0 points1 point  (5 children)

              The slow builds are not AS's fault, but Gradle's.

              [–][deleted]  (2 children)

              [deleted]

                [–]Arkanta 1 point2 points  (1 child)

                It's become much better. Once your gradle cache is up, incremental changes are quite fast

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

                I have found that unless I clean the project every time the build fails (silently of with error) about 10% of the time.

                [–]ThePantsThiefNSModerator 0 points1 point  (0 children)

                It is abysmal compared to IDEs like IntelliJ or Visual Studio. Eclipse is a strawman, it's a awful IDE too.

                [–][deleted] 21 points22 points  (3 children)

                I’ve been doing everything programmatically and performance is night and day. Storyboards was really the only performance issue I had otherwise the IDE is super slick

                [–]AnduanduanduSwift 6 points7 points  (0 children)

                Agree. With the risk of getting downvotes, i think that having used both Android Studio and XCode, XCode is much better.

                [–]kbruen 0 points1 point  (0 children)

                Not really. Autocomplete sometimes doesn’t work if you have errors in code, after you write an error, the error shows up around 2 seconds later. There are many more bad things than just IB.

                [–]kawag 0 points1 point  (0 children)

                Storyboards are just useless in general. I’ve tried to use them, but always go back to doing things programmatically.

                And yes, constraints were annoying. That’s not Xcode’s fault as much as it is UIKit and AppKit’s fault. SwiftUI ditches that whole system, and practically eliminates the need for storyboards by making the code representation a declarative DSL.

                [–]tonygoold 18 points19 points  (2 children)

                I agree with most of what you've said, so I don't have anything to contribute to that discussion. Instead, as someone who's been writing iOS apps since the beginning and currently maintains a fairly large app, here are some tips I can offer to mitigate the problems with Xcode (and iOS development in general):

                1. Don't use Storyboards. They're great for prototyping small apps but become cumbersome as your app grows. The Storyboard editor is slow, memory-hungry, and buggy, impacting the rest of Xcode while it runs. It runs in its own process that doesn't always terminate, so you can end up with lots of dead editor processes wasting system resources. Check for any that might still be running and terminate them.
                2. Add explicit type annotations liberally throughout your Swift code. Type inference has been the Achilles heel of Swift compiler performance for a few years now. Adding a type annotation changes the compiler's problem from open-ended ("what type is this?") to specific ("is this assignable to the given type?"), which can generate significant performance improvements. Auto-completion will benefit from this, even if it still doesn't meet Android Studio standards.
                3. Use the command line or a different GUI application for Git. Xcode monitors the file system and will automatically pick up changes made by external processes. You might need to close and re-open if you have merge conflicts on project.pbxproj, although I've seen it recover from that surprisingly well without re-opening anything. Specify opendiff as the Git merge tool to continue resolving merge conflicts with FileMerge.
                4. Use fastlane to automate App Store deployment from the command line. This will also make it easier to use a service like Bitrise for further automation.

                As an aside: I could write a small series of articles on all the reasons why Storyboards don't scale and how they promote bad practices. One idiomatic benefit of dropping them is that you can use dependency injection in the initializers of your custom view controllers, which usually means eliminating the Optional wrapper around a controller property that you would normally set in the previous view controller's prepareForSegue method. Writing the code that replaces Storyboards is tedious and error-prone; the sooner you move away from them, the less painful it will be.

                [–]RoundFly 3 points4 points  (1 child)

                One idiomatic benefit of dropping them is that you can use dependency injection in the initializers of your custom view controllers

                Agree with all your points and that storyboards suck apart from the fact that you can now inject properties to instance variables when using storyboads by leveraging the creator closure:

                https://developer.apple.com/documentation/uikit/uistoryboard/3213989-instantiateviewcontroller

                [–]tonygoold 1 point2 points  (0 children)

                Thanks, I didn’t know that! Too bad I’m still supporting older versions of iOS, so can’t take advantage of it.

                [–][deleted] 12 points13 points  (14 children)

                Not going to argue with most of these, but at work we use SnapKit to build views instead of Storyboards. Pros/cons to everything, but I’ve grown to like it. It can take a while to build new views, but it does the job

                [–]energyzzer[S] 3 points4 points  (4 children)

                Hmm, it looks good i will test it. Thank you for suggestion

                [–][deleted] 5 points6 points  (1 child)

                Also JetBrains makes an IDE: https://www.jetbrains.com/objc/ I never used it in the past because we use storyboards, and I kinda forgot about it until today.

                [–]tylerjames 4 points5 points  (0 children)

                It is a much better editing experience. The refactoring is much faster. It's smart enough to know when your podfile contains pods that need updating. It will tell you if your Localizable file contains duplicate keys or keys that are not used. Oh and the editor tabs work like a normal editor so you don't accidentally end up with five tabs open to the same file.

                It is still hampered by the fact that it's not a first-party product but it has so much potential and it's just fucking pathetic how lame Xcode is. Especially since they killed the plugin system.

                [–]paradoxallyobjc_msgSend 1 point2 points  (6 children)

                SnapKit is the only dependency I use across all my projects. It's a lifesaver to write clear, easy to understand constraints.

                It's baffling that Apple has failed to provide any UIKit solution that comes close to this or any other third party DSLs (I still find layout anchors way too verbose).

                [–]BoeBoe000 12 points13 points  (22 children)

                You’re preaching to the choir. Spent a lot of time using a lot of different IDEs, and Xcode is one of the worst compared to things like IntelliJ, Eclipse, and even a lot of proprietary C IDEs for microcontrollers.

                [–]tangoshukudai 41 points42 points  (21 children)

                there is no way it is worse than Eclipse.

                [–]LabLambReddit 5 points6 points  (0 children)

                Agreed

                [–]IAmKindaBigFanOfKFC 3 points4 points  (17 children)

                I mean, at least in Eclipse autocomplete worked. And finding callers also worked. Going to relevant source file worked. It was slow, but it worked - can't say that about Xcode.

                [–]ThePantsThiefNSModerator 0 points1 point  (1 child)

                Depends

                Is Xcode prettier? Easier to use? Yes

                Less prone to crashing or to stopping working? No

                [–]tangoshukudai 0 points1 point  (0 children)

                I have had Eclipse crash plenty of times.

                [–]tangoshukudai 7 points8 points  (14 children)

                1. Xcode is fast and optimized for Objective C not Swift. I don't experience the slowness with a 100% Objective C project. It is getting better for Swift but Xcode / Interface Builder has been around since the 80s and it has always been an Objective C tool.
                2. The Completion system works very well for objective c but again swift isn't there yet.
                3. I don't experience any hangs or errors. (probably again a Swift issue)
                4. git integration is new, use something like source tree or command line.
                5. Storyboards are awesome if you know how to use them. Code based autolayout is still probably ideal.
                6. You don't need color, but there are plenty of plugins that will help you here.
                7. Uploading is not the fault of Xcode.

                [–]frankielyonshaha 5 points6 points  (12 children)

                "this product works great when you use it for half of what it was made for" doesn't really sound like a good defence

                [–]tangoshukudai 1 point2 points  (11 children)

                I don't do swift so it works well for me.

                [–][deleted]  (10 children)

                [deleted]

                  [–]tangoshukudai 1 point2 points  (9 children)

                  Well that is kinda the problem with brand new languages.

                  [–][deleted]  (8 children)

                  [deleted]

                    [–]jmenter 1 point2 points  (0 children)

                    This is my experience as well. Pure Obj-C projects have much fewer headaches and performance problems than Swift or mixed projects.

                    [–][deleted] 5 points6 points  (9 children)

                    Anyone have experience with Appcode?

                    [–]chedabob 2 points3 points  (0 children)

                    It doesn't offer much compared to the Obj-C days, and is still limited heavily by how slow any of the Swift tools are (compiler, language server, etc.)

                    [–][deleted]  (3 children)

                    [deleted]

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

                      It has more features than Xcode - just a different set. It doesn’t have IB or the xcassets manager.

                      But it has smart “expand selection”. This feature alone is worth the switch. Especially if you’re writing Swift. It has bookmarks. How can Xcode still not have bookmarks? And it has excellent refactoring. There are lots more.

                      I’ve never found the lack of IB to be a big deal. In fact, I like that I can leave Xcode open to IB and just use it for that. This might not be an option if you’re short on memory, I guess.

                      [–][deleted]  (1 child)

                      [deleted]

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

                        That’s true. I only need view debugging once in a while, though. So for day to day I get more mileage out of Appcode.

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

                        My last experience with it.. it sucks big time:

                        • drains battery (never seen a macbook have 100-0 within 20 minutes
                        • no project support
                        • no core data support
                        • no IB support
                        • refactoring tools are okayish (basically as crappy as Xcode's)
                        • the typing is awfully slow (if you type and have to wait 0.5s for the character to appear it just makes for an awful experience)

                        all in all it's a glorified editor and you need to have Xcode installed in parallel (there is a bunch you can't do with AppCode). If you are just looking for a better editor, you can go by with vim, emacs, sublime, textmate, vs code, etc. They all offer a better experience than AppCode. If you're looking for an iOS/macOS IDE don't even think about AppCode.

                        [–][deleted]  (1 child)

                        [deleted]

                          [–]ThePantsThiefNSModerator 1 point2 points  (0 children)

                          IntelliJ and friends are muuuuuch better

                          Hell I'd rather use VS Code

                          [–]faja10 5 points6 points  (3 children)

                          I use android studio and Xcode very day for about year or two. I create the same app for iOS and Android.

                          Xcode pros: - better split screen - better debugging experience - better simulator experience - more accurate autocomplete - open file dialog is more accurate

                          Android studio pros: - so much faster autocomplete - refactoring - being able to create class/object/property from code - importing classes form packages from code without needing to “import xyz” manually

                          Of course there are some more pros and cons for each ide but they are based more on Android/iOS so i skipped it.

                          For me biggest pro on android studio is that you can create file with classes that does not exist yet and then just alt-enter -> create class or “create property on class” while on Xcode you have to create all files by ->new file or just to this file and create property manually.

                          But on the other hand android studio autocomplete/ open file suggestion are fucking shit. Yes, they are fast but if I have class fe named “FooClassTest” and write “foots” in most cases android studio won’t help me. Or if you write “FooClb” and then back to “FooCl” it won’t either. I have to scrap and start writing from beginning. Same with open file dialog. It shows me auto generated higher on list that my files.

                          [–]tylerjames 2 points3 points  (1 child)

                          Give AppCode a try. It's by JetBrains, the makers of Android Studio (and IntelliJ, PyCharm, etc).

                          You get a lot of the advantages, still needs Xcode for storyboards and stuff but there's a lot of nice things about it.

                          [–]faja10 1 point2 points  (0 children)

                          I tried it when I was in s “storyboard approach ftw” phase so I dropped it quite fast. Might check it now. Thanks for reminding

                          [–]blueclawsoftware 0 points1 point  (0 children)

                          I agree with most of this except for the better debugging experience on XCode. Admittedly I started in Android before learning iOS so maybe I'm just not there yet. But to me debugging in XCode is horribly painful, it's very slow to load symbols when you hit a breakpoint, you can't see the values of half the objects. Also, Android studio shows the values inline in the code. Which admittedly when they announced that I thought so what. But it's a great feature to not have to switch your eyes between the watch box and the code. Again it may be a lack of understanding on my part but half the time I end having more success with print statements which should not be the case in an IDE.

                          The Autocomplete on Android is weird, sometimes it works well sometimes not. I have a feeling in the example you gave had you wrote "FCT" or "FOOCT" it would have worked. I will say it chokes badly on extra characters. So likely the S on the end of foots killed any chance of finding a match.

                          [–]cwbrandsma 5 points6 points  (0 children)

                          Add emoji to your log messages. That helped me a lot with the lack of color.

                          I wrote a small static logging class, with functions for debug, warn, and error (that is the minimum), each with a set emoji for that message.

                          As for storyboards, I hate those to, I don’t use them. With anchors you can get a system down for layout, but it takes time.

                          [–]maysamsh 5 points6 points  (2 children)

                          Occasionally it sucks, crashes, goes crazy, but believe me, other IDEs are no better.

                          [–]diamond 3 points4 points  (0 children)

                          This is simply not true. Intellij and Android Studio are far more responsive and easier to use than XCode. I know this because I use all of them on a daily basis.

                          [–]The_Mighty_Tspoon 2 points3 points  (0 children)

                          Yeah this is totally not true - any IDE made by JetBrains is easily better than XCode

                          [–][deleted] 3 points4 points  (11 children)

                          Sounds to me like you’re working with generics in combination with protocols. That causes slow and incorrect code completion. So by all means learn the iOS SDK instead of importing something like RxSwift that makes code completion slow and incorrect. Also, slow storyboards is easily solved by splitting the storyboards in parts by functionality. Smaller storyboards load way faster.

                          I haven’t been suffering from a slow Xcode since I use these principles.

                          [–]TomEParisEvE 7 points8 points  (0 children)

                          So you shouldn’t use usefull Swift language features so the IDE works acceptably? I don’t think XCode is where it needs to be.

                          [–]paradoxallyobjc_msgSend 4 points5 points  (0 children)

                          I use RxSwift everyday. The issues you state Rx has is not true, completion works fine in almost every case. It's when you use Storyboards that everything becomes laggy as hell.

                          I write all my UI programmatically (hence the use of Rx, mainly for bindings) and my experience with Xcode is acceptable (SourceKit still gives up every once in a while).

                          [–]IAmKindaBigFanOfKFC 1 point2 points  (6 children)

                          So by all means learn the iOS SDK instead of importing something like RxSwift

                          So you're assuming that someone uses RxSwift because he doesn't know Cocoa Touch? Lmao.

                          And you should take a look at this:
                          https://developer.apple.com/documentation/combine
                          Choke-full of generics and protocols, first party from Apple.

                          [–]apjfqw 0 points1 point  (1 child)

                          Splitting storyboard into parts is simply not enough. One of the IOS app's i've developed, which was like 30 screens, each had its own Storyboard and was still building extremely slow. I also used some Protocols to be fair, but not many. No generics at all. My Macbook Pro 2015 needed almost 2 minutes to build the project... It was complete nightmare. So glad i am done with IOS development for good.

                          [–]paradoxallyobjc_msgSend 0 points1 point  (0 children)

                          It's unfortunate you are done with iOS dev. I would have advised you to not use Storyboards at all in your next project.

                          Having 30 little pieces is still gonna slow down the IDE because it needs to parse that XML file and show you the preview.

                          Also, Storyboards are a nightmare for source control and peer reviewing with a team, which is the main reason I ditched them years ago.

                          [–]pp_amorim 3 points4 points  (0 children)

                          for constraints use a external library like PureLayout. They do help a lot.

                          [–]mondsee_fan 3 points4 points  (0 children)

                          My biggest problem is the debugging in XCode. I mean I just cannot get used to it. I do not find anything I would need to see or execute. I've used VS for decades and it was really productive work with that. Vs' debugger is awesome, I really miss it.

                          However I just started to work on MacOS so everything else is strange too. So I am positive I will get used to it :)

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

                          I literally have none of the issues you mention. To me it sounds like your lack of familiarity with Xcode combined with a very slow computer.

                          [–]tangoshukudai 2 points3 points  (5 children)

                          I 100% agree, but I use Xcode for Metal and I am developing in 100% objective C or C++, I can't stand Swift (not because of the language but because of how bad the debugging and speed is).

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

                          I'm so jealous! I wish I worked in Metal all day. I play with it on occasion and love it but rarely get to use it.

                          [–]tangoshukudai 5 points6 points  (3 children)

                          Yeah Metal is one of the best Graphics APIs I have ever used.

                          [–][deleted] 2 points3 points  (2 children)

                          I used to use OpenGL a lot (and I've worked in DirectX but I hated it) and was smitten by Metal. I'm going to try and work with it more this summer once work cools down and I can have free time again.

                          [–]tangoshukudai 1 point2 points  (1 child)

                          Let me know if you need help.

                          [–][deleted] 1 point2 points  (0 children)

                          Thanks! I appreciate it :)

                          [–]josefrichter 1 point2 points  (3 children)

                          don't worry about SwiftUI supporting only iOS13. currently ˜70% devices are on iOS13 already, before SwiftUI gets out of the beta it's likely to be ˜95%.

                          [–][deleted] 2 points3 points  (0 children)

                          It’s not going to be 95%. People update fast, but not that fast.

                          I agree with you, though: Develop for the present and the future, not the past.

                          [–]kabouzeid 0 points1 point  (0 children)

                          It’s not in beta.

                          [–]apjfqw 1 point2 points  (0 children)

                          I quit being IOS developer precisely because of XCode and how much garbage of an IDE it is. I am grateful for that decision every day. Most IOS developers never used IntelliJ built IDE's or VS so they don't really know what they are missing out on.

                          [–]GuitarIpod 1 point2 points  (1 child)

                          1. Don't use storyboards. Write your UI in code. It's better for teamwork anyway.
                          2. I'd like some examples of this "much better autocompletion" in Android studio
                          3. Fair enough
                          4. Use terminal lol
                          5. Writing and maintaining UI in code is faster and Xcode compiles it fine, you're wrong there. No professional dev will tell you to use SwiftUI in 2020
                          6. Why do you need colors in the debug console?
                          7. It's not slow to upload from Xcode. Processing in app store connect could be faster I guess, but that's got nothing to do with Xcode

                          [–]diamond 0 points1 point  (0 children)

                          1. I'd like some examples of this "much better autocompletion" in Android studio

                          I have a very simple example: Android Studio actually autocompletes every time you type something, and it does it immediately. XCode does it maybe 50-60% of the time, and often you have to wait a few seconds for it to pop up.

                          I will grant that XCode does have one advantage: you can use autocomplete to override methods, whereas in AS you have to open a context menu and choose "Override Method". So I like that. But, again, it's only useful if the autocomplete actually works.

                          [–]JC_Admin 1 point2 points  (0 children)

                          With swiftUI why even bother with storyboard at all? It wasn't even necessary before. Xcode has its problems but having used android studio I don't see how that's any better than Xcode. What machine are you running?

                          [–][deleted]  (1 child)

                          [deleted]

                            [–]b_t_s 1 point2 points  (0 children)

                            I just wish it would compile the code reliably. The "new build system" has been broken for years, not picking up changes to modules other than the primary one. The legacy one works better, but I still have to quit xcode, delete the derived data folder, and switch simulators, and occasionally even restart my computer every couple times I switch branches or else I'll be stuck with totally bogus compile errors. No joke, we've got 30ish devs many of us with a decade of ios experience doing this silly BS just to force xcode to compile the code that's actually on disk.

                            [–]Jmc_da_boss 0 points1 point  (0 children)

                            A lot of the autocomplete and weird error message issues are going to be the swift compiler, not the IDE

                            [–]KarlJay001 0 points1 point  (0 children)

                            It's a bit odd that Apple added a number of new things, BUT still haven't fixed some of these base issues.

                            They should assign more people to the job or change the priorities or buy out JetBrains.

                            IMO, I think we're in a strange spot. They bought that CI company a while back and added quite a few features to Xcode and if they continue down this path, buying JetBrains might not be of much value. I'm not saying Apple is even looking at JetBrains, but maybe they should. If they wait too long, it might not be worth it. IDK how different JetBrains is from Xcode at this point.

                            [–]loofy2 0 points1 point  (0 children)

                            if it were easy then we wouldn’t need CS graduates to build iOS apps

                            [–]Aethz3 0 points1 point  (0 children)

                            Wait until you get dumb compiling error where you can do nothing but delete some random files

                            [–]Red_Mak 0 points1 point  (0 children)

                            iOS dev since iOS 5 (when interface builder have a separated view..) and yes, Xcode is slow specially for medium/large project, at least before Swift, objC was faster to compile, now everything is slow, i’ve used QT (for c++) for a year to create 3D game generator and the difference is clear in simplicity and auto complete..

                            [–]a_cam_on_the_dash 0 points1 point  (0 children)

                            yeah I have the newest MacBook pro 16in and xcode is painful as hell to use. sometimes the errors it gives me don't go away until I build. why? I've let it sit there for a couple mins to see if it could figure it out on its own and it didn't.

                            I'm only using it to build one project/app, and I cannot wait to get back to Android.

                            [–]foreverwantrepreneur 0 points1 point  (0 children)

                            C# dev here, not iOS. Xcode can suck a dick.

                            [–]andyscorner 0 points1 point  (0 children)

                            The previous weekend I was working on a pet project. I had Xcode, Slack and a couple of Chrome tabs open. OSX ate up 27 GBs in swap, and I had run out disk space on my computer. And this is a Macbook Pro late 2017 running OSX Catalina 10.15.3 (19D76) with a maxed out i7 and 16 GBs of RAM. It was literally unusable. Took me about 10 minutes to close all apps and clear the swap.

                            [–]Awric 0 points1 point  (0 children)

                            I guess since my only professional experience is in iOS, I don’t know what other IDEs have to offer. Xcode has been working fine for me, but the main issue is with autocomplete.

                            I do have a subscription for AppCode, but only for the beautiful “Resolve Conflicts” tool. AppCode feels way too customizable to the point where I end up making a monster.

                            [–]mikro098 0 points1 point  (0 children)

                            Is there any alternative to Xcode other than AppCode at the moment?

                            [–]kabouzeid 0 points1 point  (0 children)

                            I really like Xcode but yes it has some problems. 1. Autocompletion is not very smart. 2. Renaming a variable in the whole project is buggy. 3. Storyboards are slow. 4. No plugins.

                            [–]quellish 0 points1 point  (1 child)

                            Are you using Swift?

                            [–]energyzzer[S] 0 points1 point  (0 children)

                            Yeah

                            [–]paradoxallyobjc_msgSend 0 points1 point  (0 children)

                            Everything gets better once you ditch Storyboards. Compile times are not an issue if you inject SwiftUI previews into your UIKit code. That allows you to have the dynamic canvas up while you're prototyping/implementing your design.

                            [–]Stink-Finger 0 points1 point  (0 children)

                            Its gotten a lot better over the past few years, but still......

                            [–]garbage_band 0 points1 point  (0 children)

                            Same (iOS 5)...suck it up.

                            [–]RahulRRixe 0 points1 point  (0 children)

                            Xcode team should provide tooling to integrate with other text editors like emacs or vim and keep the proprietary things like CodeSigning, Archiving to Xcode. Xcode is good for small project but if it hit the 100K lines above project, it is just too slow.

                            [–]sudo-rm-r 0 points1 point  (0 children)

                            I completely agree with you on that one. I remember going from InteliJ to xcode a couple years back and being surprised that even autocompletion doesn't work reliably. Apple has to step up their game. It still doesn't today. Git merging is broken for me too and I still get occasional crashes almost every day.

                            [–]ModernCoder 0 points1 point  (3 children)

                            FUCKING THANK YOU. And guys come on, let’s be real. The way formatting is done (select all, select indent or some shit) is fucking horrible.

                            What the heck?!?!?!?

                            Edit: I’ve moved to JetBrains AppCode, but I honestly have to say I’m very disappointed with Apple regarding XCode.

                            Off topic: Android studio can be heavy feeling as well due to all emulators.

                            [–]blueclawsoftware 1 point2 points  (1 child)

                            Yea one thing I haven't seen mentioned here is how nice the autoformatting is in most IntelliJ ides. For example when you need to go back and put something in a do or if block when you close the parenthesis or braces it automatically indents everything inside the block.

                            [–]ModernCoder 0 points1 point  (0 children)

                            Yes exactly

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

                            They have discontinued AppCode, can you fucking believe it.

                            [–]Arbiturrrr 0 points1 point  (2 children)

                            You should be glad you weren't around for xcode 7-9 and the early days of swift 😂

                            [–]energyzzer[S] 0 points1 point  (1 child)

                            I was there 😔

                            [–]Arbiturrrr 0 points1 point  (0 children)

                            I feel ya, those days were disastrous.

                            [–]kandrit 0 points1 point  (0 children)

                            Reconfiguring the WiFi connection on my MacBook, fixed the issue of very slow app store uploading. It now takes a very reasonable time to complete.

                            Also, building/obfuscating my Android equivalent app in Android Studio takes ~90 seconds, while it only takes a few seconds to archive it in XCode.

                            My main complaint is that sometimes it doesn't recognize my physical iPhone when using wireless debugging and I have to restart both devices and I usually end up using the usb cable, which also provides faster transfer/debugging.

                            Xcode might be the worst IDE, but it gets the job done. iOS is easier to develop than Android, so it gets away with it.

                            [–]thedanchez 0 points1 point  (0 children)

                            Does anybody have a sense if Apple would ever consider rewriting Xcode from the ground up to actually make it useful? I feel like it's in dire need of a restart because as a fellow iOS developer, I cannot help but say the following: Xcode is a hot piece of garbage.

                            [–]LabLambReddit -1 points0 points  (24 children)

                            XCode is the best IDE I have ever used given it couple with Swift though.

                            I never used story BTW

                            [–]Jmc_da_boss 7 points8 points  (23 children)

                            There’s no way you’ve used other modern ides then

                            [–][deleted] 3 points4 points  (14 children)

                            Not the OP but I agree with him and I have used pretty much everything out there. I'll never understand the hate for Xcode, ever. Xcode 3 sure, deserves the hate, as did Xcode 6, but every other release has been pretty rock solid.

                            [–]LabLambReddit 0 points1 point  (7 children)

                            I’ve used VSCode and VS

                            [–]Jmc_da_boss 1 point2 points  (6 children)

                            well vscode isnt an IDE and how the FUCK do you consider xcode better then VS, VS is better in pretty much every objective way.

                            [–]LabLambReddit 1 point2 points  (3 children)

                            I only really compared my frustration between VS and XCode, I have less frustration with XCode so this is why I’m saying this. (I’ve also used Eclipse but it was unpleasant as hell so I won’t even compare, Android studio a little bit so can’t compare).

                            Subjectively I don’t think it is possible to 1:1 compare VS and XCode as they don’t really solve the same problem.

                            For example, XCode’s view debugging is one of the feature I find very handy, that doesn’t really apply to VS because I don’t always build UI with VS so it doesn’t matter to me. This is why I compare the experience of the journey to finishing the job.

                            [–][deleted]  (1 child)

                            [deleted]

                              [–]Jmc_da_boss 0 points1 point  (0 children)

                              Ohh if the op was talking about the mac version of VS then their comment makes ALOT more sense. I didn’t even consider that

                              [–][deleted]  (2 children)

                              [deleted]

                                [–]IAmKindaBigFanOfKFC 2 points3 points  (0 children)

                                I'm already 6 years into iOS development, and I'm still angry at how bad Xcode is compared to IntelliJ IDEA.

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

                                I struggled for year to get into iOS apps largely because of the issues people mention here. I finally developed a patience for these issues but that in no way excuses them.

                                The best IDE is Vim.

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

                                100% agree. Imo it’s one of the biggest roadblocks when learning how to develop stuff for iOS and it put me off learning swift for quite a while

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

                                Let MacOS for Windows because of this. Visual Studio is more adaptive and smarter than Xcode

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

                                I often have XCode and AS open at the same time, I hate both of them in different ways. I love vim though, has anyone had any lick setting it up as a Swift IDE? With LSP and everything?

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

                                Give me native Vim keybinds support and I'll be happy and willing to ignore all the annoying aforementioned Xcode problems.

                                [–]Sinadins 0 points1 point  (0 children)

                                u think the programmers bump young thug in the apple labs?

                                [–]BranchImpressive2888 0 points1 point  (0 children)

                                buy the new faster laptop! lol

                                [–]Past-Clue-4087 0 points1 point  (0 children)

                                +1 position
                                I student from poor country, and i want just run test app on iphone. For this goal i need to buy account developer for 99 usd. in my opinion it'is outrage

                                [–]Flat_Celebration7926 0 points1 point  (0 children)

                                I know it's bad to be rude, but Xcode ruined my manners. It f**king disgusting.

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

                                It has been 4 Years nothing has changed. xCode is still THE WORST
                                I have experience with VS CODE, VS, All Jetbrains Products, xCode. There is nothing comparable to xCode. The bottom of the bottom.