DEV Community

loading...

Discussion on: Breaking up with JavaScript

Collapse
matt123miller profile image
Matt Miller (he/him)

Came here to say this! As a junior iOS and Node dev I've done both professionally for maybe 9 months each. I enjoy both environments but each has their downsides. I was educated in OOP extensively so I have a bias towards type systems. I love Swift but hate Xcode (I've managed to bring all my colleagues to the VSCode holy land). I enjoy JS and most of the issues I have with it have been fixed in ES6 and avoiding this wherever possible. I'd still love to move over to TypeScript at work but I've yet to find the opportunity to showcase it to my colleagues.

Basically OP, John is right here. And like Patrick M suggest maybe try TypeScript.

Collapse
alchermd profile image
John Alcher

Hey! What's up with Xcode that you didn't like?

Thread Thread
matt123miller profile image
Matt Miller (he/him)

There were many things I liked about Xcode but nothing uniquely special compared to other editors and positives were ultimately outweighed by the negatives.

I haven't used the most recent version in anger, V9 I think, so YMMV. But it was often super slow in small projects with maybe 50 classes. It would take seconds when doing anything with interface builder. Also, with interface builder using XML for everything it was a horror to use with Git so I'm investigating either code generated UI or having many tiny storyboard files. But then making reusable nib files etc. was always felt clunky. It would also get caught in an indexing loop often, requiring a restart. They only just added basic Swift refactoring features in the recent major version, which might be related to the shifting ABI (they keep saying pushing stable ABI back to the next release) but I don't know. The different between adding folders or groups not being intuitive and I think defaulting to groups, requiring you to manually add all the files inside the matching folder for Xcode to recognise them. That final point might be inaccurate from memory but something about that process was always annoying.

I know that it's a free piece of software but compared to every other IDE I've used it always felt lacking. Considering iOS development is so tightly coupled to Xcode it felt like there were no major benefits using Xcode to program, other than interface builder which was always slow or required some multi window stuff. And I always felt very constrained when working remote or from home without a big second monitor, Xcode on a 15" MBP felt cramped.

Maybe I should play with AppCode next time I get some iOS work on my plate.