{"id":9998,"date":"2024-07-11T05:42:07","date_gmt":"2024-07-11T05:42:07","guid":{"rendered":"https:\/\/dianapps.com\/blog\/?p=9998"},"modified":"2025-04-21T11:36:04","modified_gmt":"2025-04-21T11:36:04","slug":"a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development","status":"publish","type":"post","link":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/","title":{"rendered":"A Guide to JetBrains Fleet IDE for Multi-platform App Development"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Two years back, JetBrains discontinued one of its IDE \u201cAppCode\u201d and officially announced a whole new Integrated Development Environment, named Fleet! Built from scratch, with insights from two decades of IDE development, Fleet runs on the powerful IntelliJ code engine. It features a distributed IDE setup and has a redesigned user interface for enhanced usability.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But that\u2019s not the whole story! There\u2019s a lot more to know about this not-so-popular yet effective tool of Jetbrainns. Through this blog, you will be able to understand Fleet, its benefits, features, architecture, prerequisites, and the development overview. <\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">So, without any second thought, let\u2019s get started<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Meet-Fleet-The-New-JetBrains-IDE\"><\/span><span style=\"font-weight: 400;\">Meet Fleet: The New JetBrains IDE<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">JetBrains Fleet is a new software tool designed for developers to write and manage code across different programming languages. Unlike other JetBrains IDEs like IntelliJ IDEA, Fleet is built completely from scratch with a focus on modernizing its user interface and user experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When you first open Fleet, it acts like a lightweight code editor. Once you load a project, you can activate its &#8220;smart&#8221; mode. This mode analyzes your code, allowing Fleet to offer helpful features like automatic code completion, navigation to where functions and variables are defined and used, real-time checks for code quality, and quick fixes for any issues it finds.\u00a0\u00a0<\/span><\/p>\n<p>Fleet is also a fully functional IDE that offers smart completion, navigation, refactorings, debugging, and all the other features you expect from an IDE \u2013 all activated with a single button click. Whether you\u2019re a solo developer or part of a <a href=\"https:\/\/growthscribe.com\/services\" target=\"_blank\" rel=\"noopener noreferrer\">marketing agency<\/a> handling web and app projects, Fleet\u2019s flexible architecture ensures a seamless coding experience across multiple platforms.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10012\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image15.gif\" alt=\"image15\" width=\"1810\" height=\"1342\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Fleet uses a flexible architecture. Java, it uses the powerful IntelliJ code engine, while for other languages, it employs a language server approach similar to how Visual Studio Code works. This architecture makes it versatile for different coding environments.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Overall, JetBrains Fleet aims to provide a streamlined and efficient coding experience with advanced features, catering to both individual developers and collaborative teams working on diverse software projects.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Fleet-Architecture-Overview\"><\/span><span style=\"font-weight: 400;\">Fleet Architecture Overview<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Fleet uses a distributed setup designed for easy use on individual computers, while also supporting the following scenarios:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Remote\/cloud editors: A development environment hosted on a remote computer or in the cloud, allowing you to code from anywhere.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Collaborative development: Multiple people can work together in the same coding environment and interact with each other in real-time.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Multiple target file systems: Working on and running a project that uses several different computers or containers, such as in a microservices-based application.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Fleet&#8217;s flexibility comes from separating components that handle specific tasks, like managing files and providing smart code features. This approach makes Fleet different from traditional tools like IntelliJ IDEA. However, Fleet is also designed to work well with existing tools if needed.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Components-of-Fleet-Architecture\"><\/span><span style=\"font-weight: 400;\">Components of Fleet Architecture<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fleet&#8217;s architecture includes the following main parts:<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10013\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18.png\" alt=\"image18\" width=\"1361\" height=\"655\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18.png 1361w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18-1024x493.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18-768x370.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18-640x308.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image18-400x193.png 400w\" sizes=\"(max-width: 1361px) 100vw, 1361px\" \/><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Wherein<\/strong>,\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Frontend is responsible for displaying the user interface, reading the files, and offering basic syntax highlighting for supported file types. Multiple frontends can be connected to the same project, enabling team members to collaborate.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Backend is a service that runs in the background and handles complex tasks like indexing files, analyzing code, performing advanced searches, and navigation. These tasks are started by requests from the workspace, which then processes the results and sends the data to the necessary parts of the system.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">\u00a0Workspace is a central component having the main purpose is maintaining the frontends&#8217; shared state when there are several of them. It also registers other components to provide information on the available services and APIs.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">FSD or Fleet System Daemon is a helper program connected to the computer where your source code and SDKs are located. Its job is to handle tasks such as building your project, running your code, executing commands in the terminal, and carrying out other actions in the environment where your project runs. Basically, it acts as a bridge between Fleet and your local development setup, making sure everything works smoothly together.<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Built-in-features-offered-by-JetBrains-Fleet\"><\/span><span style=\"font-weight: 400;\">Built-in features offered by JetBrains Fleet<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Integrated-Terminal\"><\/span><span style=\"font-weight: 400;\">Integrated Terminal<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">JetBrains Fleet has a built-in terminal emulator that lets you use your command-line shell directly within the code editor. It&#8217;s handy for running Git commands, adjusting file permissions, and other command-line tasks without leaving your coding environment. You can choose from various shells like PowerShell, Command Prompt, Bash, and more to suit your preferences and needs.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Version-Control-System-Git\"><\/span><span style=\"font-weight: 400;\">Version Control System (Git)<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In JetBrains Fleet, Git is the primary version control system supported. You can use it to see differences between versions of your code, manage different branches of your project, and save your changes. The Git tool allows you to save your changes on your computer and update them on the central server where your team can see and use them.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Run-and-Debug-Tools\"><\/span><span style=\"font-weight: 400;\">Run and Debug Tools<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In JetBrains Fleet, you use run configurations to start and debug your code. You can set up one configuration for your whole application or create multiple configurations to launch different parts of your code with specific settings. Fleet automatically detects settings for .NET projects, but you can customize them as needed.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Easy-Navigation\"><\/span><span style=\"font-weight: 400;\">Easy Navigation<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">JetBrains Fleet offers powerful tools for searching and navigating your workspace. You can easily locate files, specific places within files, code symbols, and actions within Fleet using the Goto popup. Access it quickly with a shortcut or by clicking the Search icon in the top-right corner of the Fleet window.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kotlin-Multiplatform-Support\"><\/span><span style=\"font-weight: 400;\">Kotlin Multiplatform Support<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>JetBrains Fleet supports Kotlin Multiplatform Projects, offering integrated features like code intelligence, navigation, debugging, and refactoring across multiple languages. It also provides robust Swift support for iOS development, helping in creating and managing native app components seamlessly. DianApps is also featured on a <a href=\"https:\/\/www.goodfirms.co\/directory\/state\/app-development\/iphone\/florida\">leading iOS app development directory<\/a>, which lists top-performing mobile development companies.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Ecosystem-of-Plugins\"><\/span><span style=\"font-weight: 400;\">Ecosystem of Plugins\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">You can currently manage bundled plugins available in Fleet, and soon you&#8217;ll be able to expand Fleet&#8217;s capabilities by adding support for more languages and technologies.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Port-Forwarding\"><\/span><span style=\"font-weight: 400;\">Port Forwarding<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fleet has built-in support for remote development, allowing you to forward ports from a remote development environment or machine. This means you can test your application directly within the Fleet editor, even if the code and resources are located on a different computer or server elsewhere.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"AI-Powered-Assistance\"><\/span><span style=\"font-weight: 400;\">AI-Powered Assistance<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In JetBrains Fleet, you have access to an AI Assistant that helps with coding tasks, Git commits, and documentation. It&#8217;s integrated into the editor, terminal, and Git tool, powered by JetBrains AI Service. During the preview phase, these AI features are free to use once you log in with your JetBrains Account. You can chat with the AI, get code suggestions, and generate commits and documentation, all supported by advanced language models.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Benefits-of-JetBrains-Fleet-IDE\"><\/span><span style=\"font-weight: 400;\">Benefits of JetBrains Fleet IDE<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Language-Switching-Efficiency\"><\/span><span style=\"font-weight: 400;\">Language Switching Efficiency<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">With Fleet, you can work comfortably with multiple programming languages in a single project. It automatically detects your project&#8217;s setup directly from the code you&#8217;re working on. This means you can start coding right away without spending a lot of time configuring the environment, thanks to Fleet&#8217;s intelligent code-processing engine.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Editor-Performance\"><\/span><span style=\"font-weight: 400;\">Editor Performance<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fleet is designed for developers who like coding in a straightforward and flexible environment. It&#8217;s a speedy and efficient code editor that covers essential tasks like browsing and editing code. Fleet&#8217;s user-friendly interface and easy-to-understand experience make it simple to begin coding right away.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"High-Functionality\"><\/span><span style=\"font-weight: 400;\">High Functionality<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fleet is versatile because it can switch effortlessly between a simple text editor and a robust development tool. Whether you&#8217;re working on a small project or a big one, Fleet can handle it. With just one click, Fleet offers features like finishing your code, jumping to where functions are used, spotting mistakes as you type, quickly solving problems, improving code structure, and more.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Designed-for-flexibility\"><\/span><span style=\"font-weight: 400;\">Designed for flexibility<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Fleet helps developers work faster and exceed the limits of their own computer by supporting remote development. You can connect to a remote machine and use Fleet running there, or run Fleet inside Docker containers that have the exact setup your project needs. This lets you work on projects needing more resources or different configurations than your local machine can handle.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Maximum-Collaboration\"><\/span><span style=\"font-weight: 400;\">Maximum Collaboration<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">With Fleet, you can collaborate on code in real time and do more than just work together in the same editor. You can share terminals, debug together, review code, explore projects, and more, all without needing any setup. Others can join a collaboration session you start on your computer, or everyone can connect to a shared remote development environment.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Prerequisites-for-the-development-environment-with-Fleet\"><\/span><span style=\"font-weight: 400;\">Prerequisites for the development environment with Fleet<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Download-JetBrains-Toolbox-App\"><\/span><span style=\"font-weight: 400;\">Download JetBrains Toolbox App<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Use the JetBrains Toolbox app for easy updates and managing multiple JetBrains products.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Login-to-JetBrains-Toolbox\"><\/span><span style=\"font-weight: 400;\">Login to JetBrains Toolbox<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Sign in with your JetBrains account to access the Toolbox features.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Install-Fleet\"><\/span><span style=\"font-weight: 400;\">Install Fleet<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Find the Fleet icon in Toolbox and click &#8220;Install&#8221; to set it up on your system.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Check-JDK-Version\"><\/span><span style=\"font-weight: 400;\">Check JDK Version<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Ensure you have JDK 17.0 or later installed for Kotlin Multiplatform development. Check your JDK version using:<\/span><\/p>\n<p><strong>java -version<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Install-Android-Studio-and-Xcode\"><\/span><span style=\"font-weight: 400;\">Install Android Studio and Xcode<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Set up Android Studio and Xcode to run your app on Android and iOS simulators.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">These steps simplify the process of setting up JetBrains Fleet and preparing your development environment for Android and <\/span><a href=\"https:\/\/dianapps.com\/ios-app-development\"><b>iOS app development services<\/b><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Other-Requirements\"><\/span><span style=\"font-weight: 400;\">Other Requirements:\u00a0<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ensure the installation is complete by opening both Android Studio and Xcode at least once. You may need to reopen them after updates.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">To run and debug Android applications, set up a virtual device in Android Studio.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If you encounter problems running an iOS project, check if you can run the project in the <\/span><i><span style=\"font-weight: 400;\">iosApp <\/span><\/i><span style=\"font-weight: 400;\">folder from Xcode. If successful, restart Fleet.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">When using Fleet, you can create a Multiplatform project by either:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Using the Kotlin Multiplatform wizard.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Cloning an existing Git repository via the &#8220;Clone from Git&#8221; option on the Fleet welcome screen.<\/span><\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"How-to-Develop-A-Multi-platform-App-with-Fleet\"><\/span><span style=\"font-weight: 400;\">How to Develop A Multi-platform App with Fleet?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Creating-a-Project-with-the-Web-Wizard\"><\/span><span style=\"font-weight: 400;\">Creating a Project with the Web Wizard<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Here&#8217;s how to create a new project using the Kotlin Multiplatform wizard:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Open the Kotlin Multiplatform wizard.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Go to the New project tab. Change the project name to &#8220;SampleProject\u201d. Then use &#8220;com.example.project&#8221; as the project&#8217;s ID.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Select Platforms: Choose Android, iOS, and Desktop as your platforms.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Make sure the Share UI option is selected for iOS app development.<\/span><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10014\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1.png\" alt=\"image10\" width=\"1078\" height=\"1718\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1.png 1078w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1-643x1024.png 643w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1-768x1224.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1-964x1536.png 964w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1-640x1020.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image10-1-400x637.png 400w\" sizes=\"(max-width: 1078px) 100vw, 1078px\" \/><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Click Download and unpack the resulting archive to get your new project.<\/span><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"How-to-Enable-Smart-Mode\"><\/span><span style=\"font-weight: 400;\">How to Enable Smart Mode:<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">When Smart Mode is on, Fleet provides advanced features like code completion, navigation, debugging, and refactoring. With Smart Mode off, Fleet functions as a basic code editor where you can open files and make changes but won&#8217;t have the advanced features.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the background, Fleet uses different backends to process code. With Smart Mode on, it uses the same engine as IntelliJ IDEA for Kotlin, keeping familiar functionalities.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Launch Fleet: Open the Fleet application.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Open a Project: On the welcome screen, click &#8220;Open File or Folder&#8221; or go to File &gt; Open in the menu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Select Project Folder: Find and select the &#8220;SampleProject&#8221; folder you unpacked earlier, then click &#8220;Open.&#8221;<\/span><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10015\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11.png\" alt=\"\" width=\"1999\" height=\"1223\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11.png 1999w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11-1024x626.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11-768x470.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11-1536x940.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11-640x392.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image11-400x245.png 400w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Fleet will automatically detect the project type and open it for you.<\/span><\/p>\n<p><strong>Enable Smart Mode: If prompted, click &#8220;Trust and Open&#8221; to enable Smart Mode.<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10016\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5.png\" alt=\"\" width=\"1999\" height=\"811\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5.png 1999w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5-1024x415.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5-768x312.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5-1536x623.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5-640x260.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image4-5-400x162.png 400w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Watch for messages at the top of the window as Fleet imports and indexes the project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To check if Smart Mode is on, click the lightning bolt icon at the top of your screen.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10017\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image12-1.png\" alt=\"\" width=\"546\" height=\"302\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image12-1.png 546w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image12-1-400x221.png 400w\" sizes=\"(max-width: 546px) 100vw, 546px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"How-to-Run-Your-Project-on-Fleet\"><\/span><span style=\"font-weight: 400;\">How to Run Your Project on Fleet?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">When you open a project in Fleet, it automatically creates run configurations for the targets in the build file. You can access these run configurations by:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pressing the <\/span><span style=\"font-weight: 400;\">\u00a0<\/span><span style=\"font-weight: 400;\">\u2318 R<\/span> <span style=\"font-weight: 400;\">\u00a0shortcut.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Selecting Run | Run &amp; Debug in the main menu.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Clicking the <\/span><span style=\"font-weight: 400;\">\u00a0<\/span> <span style=\"font-weight: 400;\">Run Configurations icon at the top of the window.\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">The &#8220;Run Configurations&#8221; icon in Fleet allows you to manage and customize how your project runs and debugs. You can set up different configurations for running your code, specifying parameters, environment variables, and more, ensuring your applications behave as intended during development and testing.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10024\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19.png\" alt=\"image19\" width=\"1934\" height=\"942\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19.png 1934w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19-1024x499.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19-768x374.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19-1536x748.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19-640x312.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image19-400x195.png 400w\" sizes=\"(max-width: 1934px) 100vw, 1934px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Select the &#8220;iosApp&#8221; configuration from the list and click to run it. This will start the application automatically on the iPhone simulator.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the build window, you&#8217;ll be able to track how the application is being compiled and launched.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10018\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7.png\" alt=\"image2\" width=\"1999\" height=\"1054\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7.png 1999w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7-1024x540.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7-768x405.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7-1536x810.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7-640x337.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image2-7-400x211.png 400w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"How-to-work-with-Multiplatform-Code\"><\/span><span style=\"font-weight: 400;\">How to work with Multiplatform Code?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The code generated by the web wizard gives you a good starting point to explore Fleet&#8217;s features: you can navigate through code, make edits, refactor, and debug your multiplatform projects effectively.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s look at how all these features work!<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Navigating-code\"><\/span><span style=\"font-weight: 400;\">Navigating code<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To navigate code in Fleet, let&#8217;s explore how you can move between Kotlin and Swift:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Open the App.kt file located in composeApp\/src\/commonMain\/kotlin\/. This file contains the main code for the app.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Select the App() function in App.kt and use the Usages action (\u2318 U shortcut). This shows where this function is used across different files.<\/span><\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10020\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6.png\" alt=\"image3\" width=\"1999\" height=\"1327\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6.png 1999w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6-1024x680.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6-768x510.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6-1536x1020.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6-640x425.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image3-6-400x266.png 400w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">You&#8217;ll find that App() is used to launch the Android, iOS, and desktop versions of the app.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Now, open MainViewController.kt. Here, you&#8217;ll see references to MainViewController from Swift code.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Instead of manually searching for the Swift file that uses MainViewController, use the Usages action again.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Fleet will automatically open the Swift file where MainViewController is implemented because there&#8217;s only one place it&#8217;s used.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10019\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image9.gif\" alt=\"image9\" width=\"1308\" height=\"796\" \/><\/p>\n<p><span style=\"font-weight: 400;\">This way, Fleet helps you quickly navigate between different parts of your codebase, whether it&#8217;s Kotlin or Swift, enhancing your development efficiency.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Editing-in-Multiple-Languages\"><\/span><span style=\"font-weight: 400;\">Editing in Multiple Languages<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Since you&#8217;re already in the ContentView.swift file, you can see how Fleet supports editing Swift code:<\/span><\/p>\n<p><strong>Add a new function to the ComposeView type. Fleet will assist you with coding suggestions and completion<\/strong><\/p>\n<pre class=\"font-size:14 height-set:true height:250 nums:false lang:default decode:true \">struct ComposeView: UIViewControllerRepresentable {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\/\/ \u2026\r\n\r\n\u00a0\u00a0\u00a0\u00a0func sumArray(input: [Int]) -&gt; String {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var total = 0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for item in input {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0total += item\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Total value is \\(total)\"\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n}<\/pre>\n<p><span style=\"font-weight: 400;\">Fleet provides helpful hints and completion options as you type. For instance, if you forget to add the return keyword or return a value of the incorrect type, Fleet will highlight these errors for you to correct. This helps ensure your Swift code is accurate and functional as you develop your app.<\/span><\/p>\n<p><strong>Modify the makeUIViewController() function to call the new function:\u00a0<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">func makeUIViewController(context: Context) -&gt; UIViewController {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0MainViewControllerKt.MainViewController(text: sumArray(input: [10,20,30,40]))<\/span><\/p>\n<p><span style=\"font-weight: 400;\">}<\/span><\/p>\n<p><strong>Switch back to the Kotlin code. Update the MainViewController.kt file to integrate this modification:\u00a0<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">fun MainViewController(text: String) = ComposeUIViewController { App(text) }<\/span><\/p>\n<p><strong>Update the App composable function as needed.<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">@OptIn(ExperimentalResourceApi::class)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">@Composable<\/span><\/p>\n<p><span style=\"font-weight: 400;\">fun App(text: String? = null) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0MaterialTheme {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var showContent by remember { mutableStateOf(false) }<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0val greeting = remember { Greeting().greet() }<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Button(onClick = { showContent = !showContent }) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Text(text ?: greeting)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0AnimatedVisibility(showContent) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Image(painterResource(Res.drawable.compose_multiplatform), null)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Text(&#8220;Compose: $greeting&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">}<\/span><\/p>\n<p><strong>Run the application again on iOS to see your changes in action.<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10021\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1.png\" alt=\"image13\" width=\"906\" height=\"1794\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1.png 906w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1-517x1024.png 517w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1-768x1521.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1-776x1536.png 776w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1-640x1267.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image13-1-400x792.png 400w\" sizes=\"(max-width: 906px) 100vw, 906px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The simulator now shows the message from the new function instead of the original greeting.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Refactoring-across-multiple-languages\"><\/span><span style=\"font-weight: 400;\">Refactoring across multiple languages<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In Fleet, cross-language features like refactoring also apply. For instance, you can rename functions across Kotlin and Swift seamlessly.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Select the MainViewController() function, then use Rename | Refactoring to change its name to MainSwiftUIViewController.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10023\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image16.gif\" alt=\"image16\" width=\"1296\" height=\"776\" \/><\/p>\n<p><span style=\"font-weight: 400;\">This update will reflect in both Kotlin and Swift files.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\">\n<h3><span class=\"ez-toc-section\" id=\"Debugging\"><\/span><span style=\"font-weight: 400;\">Debugging<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In Fleet, debugging across Swift and Kotlin code is seamless. Here\u2019s how it works:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Open ContentView.swift and set a breakpoint on line 17 within the sumArray() function.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Switch to App.kt and set another breakpoint in the App composable on line 23.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Navigate to Run &amp; Debug and choose Debug next to the iosApp configuration.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">When the debugger hits the breakpoint in ContentView.swift (line 17), use Step Out in the Debug menu to move to line 7.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Use Step Into to enter the MainSwiftUIViewController() Kotlin function.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Click Resume to continue to the breakpoint on line 23 in App.kt.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">This process allows you to debug smoothly between Swift and Kotlin code in Fleet.<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-10022\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3.png\" alt=\"image8\" width=\"1999\" height=\"1304\" srcset=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3.png 1999w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3-1024x668.png 1024w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3-768x501.png 768w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3-1536x1002.png 1536w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3-640x417.png 640w, https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image8-3-400x261.png 400w\" sizes=\"(max-width: 1999px) 100vw, 1999px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The above debugger shows no error in the code.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Wrapping-Up\"><\/span><span style=\"font-weight: 400;\">Wrapping Up<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">JetBrains Fleet represents a promising new entry into the IDE market, leveraging JetBrains&#8217; extensive experience and the robust IntelliJ code engine. While Fleet competes with established tools like Visual Studio Code, which benefits from being free, mature, and widely adopted, Fleet distinguishes itself with ambitious features and a redesigned user interface.\u00a0<\/span><span style=\"font-weight: 400;\">As Fleet continues to develop, it aims to carve out its niche with innovation and functionality, setting itself up as a valid choice for <\/span><a href=\"https:\/\/dianapps.com\/mobile-app-development\"><b>mobile app development services<\/b><\/a><span style=\"font-weight: 400;\"> with advanced IDE solutions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The planned plugin architecture demonstrated JetBrains\u2019 commitment to evolving Fleet\u2019s capabilities, ensuring it meets the evolving needs of <a href=\"https:\/\/www.goodfirms.co\/directory\/state\/app-development\/florida\">top mobile app developers in a changing market in the USA<\/a>. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Two years back, JetBrains discontinued one of its IDE \u201cAppCode\u201d and officially announced a whole new Integrated Development Environment, named Fleet! Built from scratch, with insights from two decades of IDE development, Fleet runs on the powerful IntelliJ code engine. It features a distributed IDE setup and has a redesigned user interface for enhanced usability. [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":10026,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_wp_applaud_exclude":false,"footnotes":""},"categories":[1],"tags":[738,736,737],"class_list":["post-9998","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business","tag-develop-ios-app","tag-ios-app-on-jetbrains","tag-jetbrains-appcode-ide"],"featured_image_src":{"landsacpe":["https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1-1140x445.jpg",1140,445,true],"list":["https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1-463x348.jpg",463,348,true],"medium":["https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1-300x169.jpg",300,169,true],"full":["https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1.jpg",1999,1125,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Guide to JetBrains Fleet IDE for Multi-platform App Development<\/title>\n<meta name=\"description\" content=\"Did you hear about the newly launched JetBrains\u2019 Fleet IDE? If not, Read this blog to learn more about this IDE.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Guide to JetBrains Fleet IDE for Multi-platform App Development\" \/>\n<meta property=\"og:description\" content=\"Did you hear about the newly launched JetBrains\u2019 Fleet IDE? If not, Read this blog to learn more about this IDE.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-11T05:42:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-21T11:36:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1999\" \/>\n\t<meta property=\"og:image:height\" content=\"1125\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Khushi Gupta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khushi Gupta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Guide to JetBrains Fleet IDE for Multi-platform App Development","description":"Did you hear about the newly launched JetBrains\u2019 Fleet IDE? If not, Read this blog to learn more about this IDE.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/","og_locale":"en_US","og_type":"article","og_title":"A Guide to JetBrains Fleet IDE for Multi-platform App Development","og_description":"Did you hear about the newly launched JetBrains\u2019 Fleet IDE? If not, Read this blog to learn more about this IDE.","og_url":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/","og_site_name":"Learn About Digital Transformation &amp; Development | DianApps Blog","article_published_time":"2024-07-11T05:42:07+00:00","article_modified_time":"2025-04-21T11:36:04+00:00","og_image":[{"width":1999,"height":1125,"url":"https:\/\/www.dianapps.com\/blog\/wp-content\/uploads\/2024\/07\/image7-1.jpg","type":"image\/jpeg"}],"author":"Khushi Gupta","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Khushi Gupta","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/","url":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/","name":"A Guide to JetBrains Fleet IDE for Multi-platform App Development","isPartOf":{"@id":"https:\/\/www.dianapps.com\/blog\/#website"},"datePublished":"2024-07-11T05:42:07+00:00","dateModified":"2025-04-21T11:36:04+00:00","author":{"@id":"https:\/\/www.dianapps.com\/blog\/#\/schema\/person\/32ea190f39896e07d5668f0b76f4763a"},"description":"Did you hear about the newly launched JetBrains\u2019 Fleet IDE? If not, Read this blog to learn more about this IDE.","breadcrumb":{"@id":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dianapps.com\/blog\/a-guide-to-jetbrains-fleet-ide-for-multi-platform-app-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dianapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Guide to JetBrains Fleet IDE for Multi-platform App Development"}]},{"@type":"WebSite","@id":"https:\/\/www.dianapps.com\/blog\/#website","url":"https:\/\/www.dianapps.com\/blog\/","name":"Learn About Digital Transformation &amp; Development | DianApps Blog","description":"Dianapps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dianapps.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dianapps.com\/blog\/#\/schema\/person\/32ea190f39896e07d5668f0b76f4763a","name":"Khushi Gupta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dianapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2023\/12\/1701261129967-96x96.jpeg","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2023\/12\/1701261129967-96x96.jpeg","caption":"Khushi Gupta"},"description":"Khushi Gupta, a seasoned content writer at DianApps, seamlessly merges creativity with technical expertise to compose compelling blogs. Driven by a profound passion for technology, her articulate expressions effortlessly bridge the gap between complexity and accessibility, making intricate subjects approachable for diverse readers.","url":"https:\/\/www.dianapps.com\/blog\/author\/khushi\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/comments?post=9998"}],"version-history":[{"count":7,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9998\/revisions"}],"predecessor-version":[{"id":12146,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/9998\/revisions\/12146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/media\/10026"}],"wp:attachment":[{"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/media?parent=9998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/categories?post=9998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dianapps.com\/blog\/wp-json\/wp\/v2\/tags?post=9998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}