Server-side Swift in CLion
In this article, we will take a look at the CLion and AppCode features which are especially useful for server-side Swift development. You can either read through to the end of this article to learn about them all or watch the short demo below to see them in action:
Before you begin
- Download the latest CLion 2018.3 EAP.
- Start CLion and go to
Preferences | Plugins.
- Install the following plugins:
- Restart CLion to activate the plugins.
- Checkout the Kitura-Sample project and open it in CLion.
- Wait for the cache/index phase to finish.
- Install PostgreSQL via
brew install postgresql.
Get Handlebars/Mustache, Markdown, and other template languages with support from our dedicated plugins:
There is no plugin for Stencil templates, so it’s not possible to have all the code assistance features working both for Stencil and HTML syntax together. We can set up some code assistance for Stencil files and syntax using one of the following approaches:
Preferences | Editor | File Types, find HTML file type and add
*.stencilto the Registered patterns sections. After these steps CLion will recognize any Stencil template as an HTML file, providing code assistance for HTML and showing Stencil parts as plain text.
- Use the Stencil settings from this article. In this case, only the Stencil syntax will be highlighted and no HTML code assistance will be available.
Build and Run
⌃R to build and run the project. Kitura server will start on
localhost:8080. Let’s set up CLion to open this link automatically when we finish building the project:
- Click Edit Configurations… in the Run Configurations popup.
- Select Kitura-Sample Run Configuration.
- Expand the Before Launch section and click the + button:
- Choose Launch Web Browser.
- Select Safari as browser and set Url field to
- Click OK.
Run the project again and have
http://localhost:8080 opened in Safari automatically.
For this sample project to work, we need a school database. Open Terminal via ⌥F12 and execute
createdb school. Connect to the database using the following steps:
View | Tool Windows | Database.
⌘Nand add a new PostgreSQL datasource:
- Enter the database name and test the connection:
- Click OK to save the connection.
View the contents of the
school database and see how it’s changed when adding a new entity:
The Docker integration plugin provides full code assistance for Docker configuration files:
The Dockerfile in our sample project contains everything we need to run our application in a Docker container. Select the Docker Run Configuration and run it via
Wait for the container to be started and open
http://localhost:8080 in your favorite browser. Kitura sample should be up and running.
We can now sync our sources to the Docker container via SFTP:
View | Tool Windows | Remote host.
- Select the Docker remote host configuration in the drop-down:
- Switch to Remote Host tool window and expand package/Views/docs directory.
- Navigate to
Rendering Markdown | First chaptersection of the sample Kitura application in the browser.
- Change the contents of
⇧⌘⌥X(Upload to…), and select the Docker server
- As soon as the file is uploaded to the Docker server, repeat step 5 to see changes instantly
Define any remote server in
Preferences | Build, Execution, Deployment | Deployment and synchronize the whole project or specific files to test your changes:
Tools | Deployment | Sync with Deployed to... to see the difference between the local and remote versions before they are synchronized:
requests.http file and click the Run button on the left gutter:
Have the formatted response displayed in the dedicated tool window:
Take advantage of code assistance for
.http files when creating your own requests:
That’s it! We hope all these features, together with Swift Package Manager support in CLion 2018.3 EAP, will help you create better web apps using Swift!
Your AppCode Team
The Drive to Develop
Subscribe to Blog updates
Thanks, we've got you!
AppCode 2023.1 Bug-Fix Update
Hi, AppCode 2023.1 has just been released with fixes for Xcode 14.3 compatibility, Swift refactorings and intentions, the IDE’s UI, and Kotlin Multiplatform Mobile. On December 14, 2022, along with the AppCode 2022.3 release, we sunsetted the product and stopped sales. While we’ve refocused the te…
AppCode 2023.1 Release Candidate
Hi, On December 14, 2022, along with the AppCode 2022.3 release, we sunsetted the product and stopped sales. While we’ve re-focused the team's efforts in other directions, we’ve kept providing technical support to our current users and are releasing bug-fix updates in 2023, targeting mostly the Xco…
AppCode 2022.3 Release and End of Sales and Support
AppCode 2022.3 has just been released. With the release of v2022.3, we are sunsetting the product.
AppCode 2022.3 Release Candidate Is Here
Hi everyone, The release of AppCode 2022.3 is approaching, and the release candidate (build 223.7571.233) is now available for download on our website. You need to have an active subscription or activate a free trial to use this build. The main highlights of this build include: We fixed the r…