Codecademy Team

What is an IDE?

Learn about an Integrated Development Environment (IDE) and how it is used to build applications.

Imagine you own a car company. You have factories that manufacture different components of each car:

  • An assembly line that constructs each part.
  • A paint shop that paints the body.
  • A truck service that takes the manufactured cars to showrooms.

You’ve noticed that having these separate processes isn’t very efficient and instead decide to bring them all under one roof.

Much like an all-in-one car factory, an Integrated Development Environment (IDE) manages and houses all of the tasks necessary to build software. It is a suite of development tools that allows developers to effectively write and build programs. IDEs come with Graphical User Interfaces (GUIs) that make them easier to navigate and use.

Just as a car company has many factories, an IDE comprises multiple components. One of them is the code editor in which we can write code. Code editors are similar to text editors but may come with additional features like syntax highlighting. We’ll look at syntax highlighting closer in the next section. Standalone code editors are usually lightweight in comparison to IDEs but lack the advanced features and abilities of an IDE. For example, to run a program from a standalone code editor, it’s not enough to click the “Run” button as you would in a Codecademy lesson; developers would most likely need to run a series of commands in the terminal in order to manually compile and execute their programs to see the output. This process, like many others, is automatic and built into all IDEs. Let’s take a look at some of them and how they’re useful with the help of the Swift language.

Source code editing

Syntax highlighting

A code editor in an IDE is able to recognize the language you are coding in and provide visual cues for different parts of the code. Programming languages have certain reserved keywords that signify technical concepts. For example, in Swift, the func keyword denotes a function which is followed by a name. An IDE would have a different color for a function than a constant or a variable. This makes code easier to read and understand.

The following code snippet does not utilize syntax highlighting and the characters are all a single color:

func addNumbers() -> Int {
    let a = 90
    let b = 20
    return a + b
}

Now, look at the following code where syntax highlighting is enabled:

func addNumbers() -> Int {
let a = 90
let b = 20
return a + b
}

Evidently, the different parts of this code snippet are easier to recognize and read as a result of syntax highlighting.

Autocomplete

You might wonder how an IDE recognizes the language you’re coding in. It does so through the file extension. Files of supported types are parsed and highlighted as per the syntax of the respective language. In addition to that, IDEs can anticipate what you’ll type next.

For example, if you’re calling a function that has already been declared, the IDE will recognize the function and prompt you with the complete function name as you begin typing it out. Autocomplete helps in writing code faster and prevents typing errors. The following is an example of how autocomplete works for a Swift function that adds two numbers and prints their sum: GIF

Building executables

Swift is a compiled language which means that its code is translated directly into machine code. In comparison, interpreted languages are those that are executed line-by-line by interpreters. Compiled languages are usually faster than interpreted languages.

A .swift file can be converted into an executable using the swiftc command. However, for projects containing several Swift files, it is advisable to use an IDE to compile and build these files together. Build processes are built right into IDEs, so developers don’t have to perform any extra setup for compiling and executing code, just like you didn’t have to worry about code execution in any of the exercises in the Hello World lesson.

Debugging

Code is rarely ever perfectly written from the first try, and it’s common to make mistakes. Mistakes can be syntactical or logical. IDEs catch syntax errors immediately and indicate the problem near the erroneous line of code. For example, the following code results in an error thrown by the IDE since the String, "Hello World!, has not been terminated by a double quote:

DEBUG

Mobile development IDEs

Now that we’ve familiarized ourselves with the power of IDEs, you might be wondering which IDEs are out there. The following list includes some of the most popular ones for mobile application development:

More on Xcode

iOS applications are typically built using Xcode, which can be downloaded from the Mac App Store for free. The latest version as of November 2020 is 12.1. There are other IDEs like AppCode that can be used for iOS development, but since Xcode is directly provided by Apple, you can rest assured that it will have the latest features and the best support for iOS developers.

Xcode supports several languages, including Swift and Objective-C, that are mainly used to develop apps for iOS, iPadOS, macOS, and tvOS. It comes bundled with all the IDE features mentioned above and more.

With Xcode, you can either choose to build and run your app on a simulator or directly on your iOS device. Several simulators can be configured on Xcode, spanning different iOS versions. Once you’re done with coding your app, you can build an executable using Xcode and upload it to the App Store.

Wrap Up

You should now have a solid understanding of what IDEs are and why they’re important. Most IDEs allow you to do the following:

  • Use source code editors that have syntax highlighting and autocomplete features.
  • Debug your code and check for errors as you’re writing programs.
  • Build executable files once you’re done with the development of your app.

The next step is to utilize this knowledge to set up Xcode and start building your first iOS app. Good luck! ⭐️