Xcode 9 impressions


 

So, Xcode 9! Here are my first impressions after a few days of using the beta.

I’m very impressed so far. The new editor is excellent — it’s super smooth and fast, even on some huge source files I work with that were sluggish before. It also does away with a lot of glitchiness I’d been experiencing, like random scrolling to the wrong place. I’ve found and reported a few regressions, like inability to turn off search wraparound, and ‘Use Selection For Replace’ not working.

Refactoring C++ is huge for me, because currently most of the code I’m writing is C++ or Obj-C++. The new refactoring UI is also very nice.

I have mixed feelings about the new Command-click behavior. It’s great to be able to access refactoring from the pop-up, but it does add an extra click to just jumping to the definition. You can use Ctrl-Command-click to skip that step, but it takes some effort to retrain my fingers to do that!

The undefined-behavior sanitizer and improved address sanitizer have already caught a few bugs in my code, including a tricky one involving using a pointer to a member of a C++ object after that object had left scope and been destructed. I have no idea what magic it used to detect that! On the downside, the UB sanitizer often causes my target executable to lock up when it finds the first issue, but I can work around it by just stopping it and running again.

All in all, I recommend downloading and using it.

—Jens


Quincey Morris
 

On Jun 7, 2017, at 10:09 , Jens Alfke <jens@...> wrote:

I have mixed feelings about the new Command-click behavior. It’s great to be able to access refactoring from the pop-up, but it does add an extra click to just jumping to the definition. You can use Ctrl-Command-click to skip that step, but it takes some effort to retrain my fingers to do that!

Under Preferences -> Navigation there’s a checkbox to reverse Command-click and Control-Command-Click behavior.

I haven’t done a lot with Xcode 9 yet, but one thing:

— The WWDC event made it look like the new “fix-it” panel shows automatically, but it doesn’t. You still have to click on the damn icon at the start of the error message (though it’s marginally bigger now). Then, you can’t click on the fix-it any more, you have to click on the button at the *end* of the fixit. This is more mouse-fiddling than I’d like.



Jack Brindle
 

So far Xcode 9 has one major flaw that must be corrected - for mac OS apps, it appears that Apple has removed the ability to create projects with xibs, instead only allowing Storyboards.
In other words, they removed the “Use Storyboards” checkbox in the project creation dialog. This might be just fine for iOS, but not for macOS where we still use xibs extensively. There may
be a preference somewhere that reinstates the older behavior, and I know that the work-around is to trash the storyboards and rework the code. Or go back to Xcode 8.

I do hope they reinstate this!

- Jack

On Jun 7, 2017, at 10:09 AM, Jens Alfke <jens@mooseyard.com> wrote:

So, Xcode 9! Here are my first impressions after a few days of using the beta.

I’m very impressed so far. The new editor is excellent — it’s super smooth and fast, even on some huge source files I work with that were sluggish before. It also does away with a lot of glitchiness I’d been experiencing, like random scrolling to the wrong place. I’ve found and reported a few regressions, like inability to turn off search wraparound, and ‘Use Selection For Replace’ not working.

Refactoring C++ is huge for me, because currently most of the code I’m writing is C++ or Obj-C++. The new refactoring UI is also very nice.

I have mixed feelings about the new Command-click behavior. It’s great to be able to access refactoring from the pop-up, but it does add an extra click to just jumping to the definition. You can use Ctrl-Command-click to skip that step, but it takes some effort to retrain my fingers to do that!

The undefined-behavior sanitizer and improved address sanitizer have already caught a few bugs in my code, including a tricky one involving using a pointer to a member of a C++ object after that object had left scope and been destructed. I have no idea what magic it used to detect that! On the downside, the UB sanitizer often causes my target executable to lock up when it finds the first issue, but I can work around it by just stopping it and running again.

All in all, I recommend downloading and using it.

—Jens


 


On Jun 7, 2017, at 11:35 AM, Jack Brindle <jackbrindle@...> wrote:

So far Xcode 9 has one major flaw that must be corrected - for mac OS apps, it appears that Apple has removed the ability to create projects with xibs, instead only allowing Storyboards.

Yikes. I haven’t done much UI-level development in recent years, and I never really figured out storyboards so I still use xibs. Guess it’s time to learn.

I guess you could work around this by copying an existing project and removing all the existing sources and resources, to use it as a template to start from.

—Jens


Taylor Arndt
 

When do you think the Xcode nine beta will come out for people who are not in the developer program?

Sent from my iPhone

On Jun 7, 2017, at 7:29 PM, Jens Alfke <jens@...> wrote:


On Jun 7, 2017, at 11:35 AM, Jack Brindle <jackbrindle@...> wrote:

So far Xcode 9 has one major flaw that must be corrected - for mac OS apps, it appears that Apple has removed the ability to create projects with xibs, instead only allowing Storyboards.

Yikes. I haven’t done much UI-level development in recent years, and I never really figured out storyboards so I still use xibs. Guess it’s time to learn.

I guess you could work around this by copying an existing project and removing all the existing sources and resources, to use it as a template to start from.

—Jens


 


On Jun 7, 2017, at 7:06 PM, Taylor Arndt <taylorarndt99@...> wrote:

When do you think the Xcode nine beta will come out for people who are not in the developer program?

I don’t think betas of Xcode are released outside the developer program; you’ll probably have to wait for the final release, circa September.

—Jens


Jeremy Hughes
 

Have they actually removed the xib options from the New File dialog?

If not, you can just delete the storyboard and create some xib files.

Jeremy

--

On 8 Jun 2017, at 00:29, Jens Alfke <jens@mooseyard.com> wrote:


On Jun 7, 2017, at 11:35 AM, Jack Brindle <jackbrindle@me.com> wrote:

So far Xcode 9 has one major flaw that must be corrected - for mac OS apps, it appears that Apple has removed the ability to create projects with xibs, instead only allowing Storyboards.
Yikes. I haven’t done much UI-level development in recent years, and I never really figured out storyboards so I still use xibs. Guess it’s time to learn.

I guess you could work around this by copying an existing project and removing all the existing sources and resources, to use it as a template to start from.

—Jens


David Delmonte
 

I’m running Xcode 9, but on Sierra. The XIB option is there when I create a new View Controller.

On Jun 8, 2017, at 12:36, Jeremy Hughes <moon.rabbit@virginmedia.com> wrote:

Have they actually removed the xib options from the New File dialog?

If not, you can just delete the storyboard and create some xib files.

Jeremy

--

On 8 Jun 2017, at 00:29, Jens Alfke <jens@mooseyard.com> wrote:


On Jun 7, 2017, at 11:35 AM, Jack Brindle <jackbrindle@me.com> wrote:

So far Xcode 9 has one major flaw that must be corrected - for mac OS apps, it appears that Apple has removed the ability to create projects with xibs, instead only allowing Storyboards.
Yikes. I haven’t done much UI-level development in recent years, and I never really figured out storyboards so I still use xibs. Guess it’s time to learn.

I guess you could work around this by copying an existing project and removing all the existing sources and resources, to use it as a template to start from.

—Jens