Definitive version of Apple Developer Tool: Xcode 10

We’re in launch time. We have introduced the new iPhone XS and XS Max, as well as the new Apple Watch Series 4 that will be among us shortly, we have seen the final release of the new versions of iOS 12, watchOS 5 and tvOS 12 that are getting excellent reviews for their rend improvement Idont. We have even seen the new version of the HomePod operating system (audioOS) that finally includes Spanish (from Spain, USA and Mexico). And soon we’ll see the release of macOS Mojave (next 24), the latest piece of Apple systems.

But they all need a fundamental piece to be what they are. The piece that allows you to create apps for them, because without apps little or nothing we could do with all these systems or devices. And that’s Xcode, Apple’s app development tool for all its operating systems. The official option (although obviously there are others and we can always choose). But if we want to bet on the concept of «native development», Xcode is the tool that we must use.

30 years of evolution

Xcode started its journey in the world when it wasn’t even called that and it wasn’t Apple who created it. In 1988, NeXT, the company founded by Steve Jobs after its departure from Apple, launched its first computer and its first commercial operating system version: NeXTSTEP 0.9. With it came some discs that would change the history of software development forever: the Developer Tools that included a revolutionary tool: Interface Builder.

-Steve Jobs and NeXT, reinvented software development with graphical interfaces in 1988, bringing object-oriented development and the ability to build interfaces at WYSIWYG for the first time ever. That changed development forever and defined it to this day-

Xcode 10

Interface Builder was the first development tool to incorporate a component palette and a canvas to drag buttons, fields, or images to compose and design interfaces without writing a single line of code. Applying the famous design concept of «what you do is what you see» (or WYSIWYG) where what we put on the canvas was reflected as is in the window of our application when executed. Something unthinkable at that time because the popularization of the GUI (Graphics User Interface) that came with the Macintosh, had turned the work of the developers into a real nightmare.

Why? Because everything that was seen on screen had to be programmed step by step: a button? You had to paint line by line and point to point that button and place its label and program what happened to it, even if it had a change in color or appearance when pressed. All software development at the time was totally archaic and almost none of the code could be reused. Jobs was to shape another idea of the Xerox PARC he found in 1977 (where he discovered the mac seed), but which had been saved and never implemented at Apple: object-oriented programming focused on graphical interfaces.

The system already had a button object, a field object, a slider object… you used that object and you’re done. All reusable. Obviously object-oriented programming had existed for many years as a development paradigm, but until that time no one had applied it for the development of graphical interface software at the commercial level. It was Steve Jobs who did it at NeXT. And that first Interface Builder was the seed of what is now Xcode. In 1992 it was completed with Project Builder, the first IDE (integrated development environment) in a graphical environment. A union of code editor, compiler, inline correction, and a method for joining interface elements to code or properties in it.

When Jobs returned to Apple he had 5 years to adapt all the software and know-how achieved at NeXT, culminating in the release of OS X in 2001. In this release there were already two programs: Interface Builder and Project Builder, the interface designer, and the code editing environment. And this evolved until in 2003 it was released under a single name: Xcode. Actually Xcode was more of a set of development tools, not just the code editor, and it wasn’t until 2010 (in version 4) that the code editor and interface designer merged into a single tool.

Apple Listens to Developers

Xcode, like the rest of apple-made software, has not been untroubled and in recent years, just as users have complained of problems and instability on their devices, Xcode has also had its dark stages and weird things. It should be noted that until the output of the iPhone development kit in 2008, Xcode was a very minority tool, only for those who wanted to create native software for the then OS X. But the explosion in demand from developers since 2008 has made it today one of the most important and used IDEs on the market. And he’s had a hard time catching up. And like other versions in the past, Xcode 10 is a haven of peace after a long battle.

I’m not going to tell you anything that you don’t know if I tell you that Apple has had a hard time (and in some ways still) has a hard time listening to its users. Sometimes he seems more like a father who doesn’t hear his son because he’s sure he knows what’s best for him, but sometimes a good father should know how to pay attention to his son because sometimes we can learn a lot from them. And that’s the change in philosophy in recent years, in the face of development, that Apple is suffering.

-Sometimes Apple behaves like a parent who doesn’t hear your child because he’s sure he knows what’s best for him, but sometimes a good parent must know how to pay attention to his child because we can learn a lot from him. That Apple, little by little, is learning to listen to its children (developers) and give them the reason when they see that they have it

Without losing that halo of parenthood, he now listens to us, listens to us and all those requests to improve his tool have crystallized into a version 10 with important and notorious novelties, together with a stability and speed that we had not had until now in this Tool. Without a doubt, an excellent work for which he writes to them that he has been using Xcode since his version 3 more than 8 years ago in his day to day.

Xcode 10, the best version to date

As with iOS 12 betas and other systems, the first impression of using Xcode 10 was already good. It was significantly better than any of its previous versions. It is important to note that the code editor underwent a refactoring last year (a re-write from 0) performed in Apple’s new Swift language and although we noticed improvement in terms of performance, we have been suffering almost all year round a significant lack of Stability. Something like we’ve been using a beta version all year round. And likewise, Apple created a new project building engine that is responsible for creating the executables, copying all the resources, compiling them, signing them and so on… but that has been in beta throughout version 9 and not recommended in use by Apple itself, only at the experimental level.

These two essential tools that had been re-written since 0 in Swift are now ripe and crystallized in a version where both components provide us with a very noticeable improvement not only of speed, but also of stability that is often what most for us Matter. Not only in projects, but also in the Playground prototype tool that anyone who has handled it knows that it is not the sum of stability and proper functioning, but that in this version 10 has become an amazing tool, not only to test code before incorporating it into a project, also for training or even for machine learning, where we can train models with a few lines of code. In addition to incorporating an interesting code debugging system in such projects that until now did not exist and that allows us to see the line-by-line execution of our program.

Xcode not only works for iOS as we’ve said, but also on macOS, so one of the important innovations in this environment is the possibility to create apps that use the dark mode. Because apps in dark mode are not just turning the color around. Nothing further from reality. You have to provide new images on many occasions, configure colors, resources… basically create a new look for our app based on dark tones to make it really an interesting transition.

-Creating a dark mode for a system and being used by apps is not easy, because it requires creating two totally different aspects at the level of colors and graphic elements, as well as how to display them. But, without a doubt, the dark mode of macOS Mojave is a «beta» to see how to adapt it for iOS in future versions-

That’s why, what many of you have been asking for years is a dark mode for the iPhone, it’s not that easy because it requires creating two totally different aspects at the level of colors and graphic elements, as well as how to display them. And in fact, I bet this is the first step in getting the «dark» apps to iOS next year. What better than first to test the tools on macOS so that in their own use they are debugged of possible problems!

Tool changes

As for the tool, in Xcode change some essential aspects that have been with the developers for years, such as the location of the object palette where are all the elements that we can drag to our interface: the buttons, labels, fields… they were usually in the inspector bar on the right and now use a Spotlight-style floating window that we must invoke by pressing a button or with a specific key combination. A window that also has built-in search engine.

Xcode 10 is full of small details of those that show that Apple has listened to developers on things that may seem silly, but make it much easier when you’re with a tool like this where you work long hours. For example now the code editor has a scroll that goes beyond the end of it so you can always have the code you work with in the center of the screen and not down the window at the edge of the monitor. They have also included a multiple edition that allows you to put multiple cursors in different places and write at the same time in different sites of the code. Something very useful that was implemented by other code editors and that is to be thankful that you arrive at Xcode.

The editor incorporates new ways to know the code we are using, such as knowing where variables or methods are defined or where they are called. Just press the COMMAND key and click to get a new context menu that allows us to go to its definition or see where else it is called and a series of information that will allow us to work more comfortably without having to be moving between different files code looking for information.

-Xcode 10 as app, has fully integrated dark mode of macOS Mojave and several surveys of developers have agreed that most will work with this new dark mode-

New code repository services are now natively supported in Xcode, not just GitHub used in Xcode 9. BitBucket (from Atlassian) or GitLab is now supported, both the cloud versions and our own servers. When we write code, any changes to it with respect to the last version that we have put in the commit that saves each change, will show a color code on the side of the editor that will tell us that that line has been changed. So we can know at a glance which code we’ve added again or which one we’ve changed.

Conclusions

Here are just a few of the new features of Xcode 10, a short review. It is joined that Swift 4.2 is now used natively and above all and mainly: stability and speed. Small tweaks that make our lives easier, greater speed when opening interfaces, when creating projects, running them or opening simulators.

As far as my memories go, we could say that Xcode 10 is one of the most polished and best versions of recent years, with the user in the crosshairs. Perhaps the most since the output of Xcode 4 that united the interface builder with the code editor.

From this small corner, we want to thank the Apple development team for this excellent version and thank them for the great work. As a developer, I am fully aware of the effort involved in maintaining and giving this quality to software like Xcode that not only allows you to create apps, also 3D games, 2D, augmented reality apps and that supports 4 different operating systems to develop for them.

A very complex tool that has achieved enormous quality and where that aura of stability and performance that people feel when testing iOS 12 has been transmitted to the development tool. A delight.