<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oderlan Freire</title>
    <description>The latest articles on DEV Community by Oderlan Freire (@oderlanfreire).</description>
    <link>https://dev.to/oderlanfreire</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F688872%2F256ffa39-8c77-494f-b642-b66e6c898775.jpg</url>
      <title>DEV Community: Oderlan Freire</title>
      <link>https://dev.to/oderlanfreire</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oderlanfreire"/>
    <language>en</language>
    <item>
      <title>Getting Started with MicroEJ </title>
      <dc:creator>Oderlan Freire</dc:creator>
      <pubDate>Mon, 27 Sep 2021 16:38:05 +0000</pubDate>
      <link>https://dev.to/oderlanfreire/getting-started-with-microej-13k0</link>
      <guid>https://dev.to/oderlanfreire/getting-started-with-microej-13k0</guid>
      <description>&lt;p&gt;Based on my first contact with &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt; technology and a little bit of research, I decided to make a short introduction to this interesting technology. I am going to talk a little bit about the history behind it, where it can be used and how to install and run a Hello World example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is MicroEJ?
&lt;/h2&gt;

&lt;p&gt;MicroEJ is a French company who has created a development application kit focused on embedded systems and IoT, using C, Java® technologies and recently JavaScript® as a programming language. The main objective of this development kit is to help developers create applications for devices which require a high level of performance, compact size, energy efficiency, while still enjoying all the benefits of a high level language such as, Java® or JavaScript®.&lt;/p&gt;

&lt;p&gt;Currently, &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt; has three products available:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.microej.com/product/vee/" rel="noopener noreferrer"&gt;MICROEJ VEE&lt;/a&gt;: A virtual machine that can run on devices with very low computing power, including microcontrollers, microprocessors and SoT. It includes free libraries and &lt;a href="https://developer.microej.com/mej32-virtual-software-processor-for-embedded-systems/" rel="noopener noreferrer"&gt;MEJ32&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://www.microej.com/product/sdk/" rel="noopener noreferrer"&gt;MICROEJ SDK&lt;/a&gt;: An application development kit, that involves a complete pack of tools and a library, to develop applications that will run on the MICROEJ VEE virtual machine. As well as  that, it is possible to create embedded systems simulators called Virtual Devices.&lt;br&gt;
&lt;a href="https://www.microej.com/product/forge/" rel="noopener noreferrer"&gt;MICROEJ Forge&lt;/a&gt;: A cloud technology that helps developers and companies to store applications, assets, libraries and more.&lt;/p&gt;
&lt;h2&gt;
  
  
  History:
&lt;/h2&gt;

&lt;p&gt;MicroEJ was founded in 2004, by &lt;a href="https://www.linkedin.com/in/fredrivard/" rel="noopener noreferrer"&gt;Fred Rivard&lt;/a&gt; PhD. and went by  the name of Industrial Smart Software Technology (IS2T). After a first phase of research and development, the company grew and raised investment with Innovacom at the end of 2011. The company was renamed to &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt;, with the challenge of building a virtualization core that needed to be 1000 times lower than Android, to standardize and viabilize the development of applications to more than 10 billion devices that are fabricated every year, embedded devices and IoT. &lt;/p&gt;

&lt;p&gt;Currently, MicroEJ technology runs on 100 million devices, in various industry sectors across manufacturing, smart home, wearables, retail, healthcare, metering, utilities, industrial, consumer, defense, etc.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation on Windows(7, 8, 8.1, 10):
&lt;/h2&gt;

&lt;p&gt;To start the installation, first you have to go to the &lt;a href="https://developer.microej.com/get-started/" rel="noopener noreferrer"&gt;official MicroEJ download page&lt;/a&gt; and &lt;a href="https://repository.microej.com/packages/SDK/21.03/MicroEJ-SDK-Installer-Win64-21.03.exe" rel="noopener noreferrer"&gt;download&lt;/a&gt; the &lt;a href="https://developer.microej.com/get-started/" rel="noopener noreferrer"&gt;SDK&lt;/a&gt;. The site has all the necessary information for installation, including the necessary requirements and information about what comes installed in the SDK. For the SDK to run on your computer,  you will need to have &lt;a href="https://www.oracle.com/br/java/technologies/javase-jre8-downloads.html" rel="noopener noreferrer"&gt;JRE8&lt;/a&gt; installed on your PC.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d48htmfjcy4swmajo9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d48htmfjcy4swmajo9f.png" alt="Get Started"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then just follow the standard Windows installation by clicking next, accept the terms of use, and follow the process by clicking next until you complete the steps and the IDE installation is finished.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6hf3f2fm8rfmc24cx49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6hf3f2fm8rfmc24cx49.png" alt="Step one of the installation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8rm4hcgvvxmhs5jbdfq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8rm4hcgvvxmhs5jbdfq.png" alt="Step two"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2276jwrporqzjr33c1gp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2276jwrporqzjr33c1gp.png" alt="Step three"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft22u8wiu5nlzx63h7tkc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft22u8wiu5nlzx63h7tkc.png" alt="Step four"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg0pztwf9h4zjqbpvuqe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frg0pztwf9h4zjqbpvuqe.png" alt="Step five"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbcdxxa73qqmp8lm4vwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbcdxxa73qqmp8lm4vwt.png" alt="Step six"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Running the basic Hello World in Java:
&lt;/h2&gt;

&lt;p&gt;After starting the IDE, creating a MicroEJ program is quite simple, just go to "File" &amp;gt; "New" &amp;gt; "Standalone Application Project"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ed777te764bsq4ycmo6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ed777te764bsq4ycmo6.png" alt="creating a project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, give the name of the project and the module name will be filled automatically&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdhhlbuy6uk1ee95qd10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdhhlbuy6uk1ee95qd10.png" alt="building the project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you click "Finish", the Main.java class is built&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpizxdq15qj6wrccvap9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpizxdq15qj6wrccvap9q.png" alt="Main class built"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since this is a Main class with Hello World, to run it just right-click on the file, "Run As" &amp;gt; "MicroEJ Application".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60kx3jlu4wm8q6zzvni4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60kx3jlu4wm8q6zzvni4.png" alt="Run as MicroEJ application"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After running, the console will display the following message:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello World!
=============== [ Completed Successfully ] ===============

SUCCESS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Hello World with MicroEJ Template and Emulator
&lt;/h2&gt;

&lt;p&gt;To run the &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt; &lt;a href="https://repository.microej.com/packages/blue/2.0.2/applications/blue_firmware_applications_1.0.0.zip" rel="noopener noreferrer"&gt;Hello World template&lt;/a&gt;, first, you need to install one of the virtual device emulators, in this case, I'll use the &lt;a href="https://developer.microej.com/create-your-first-application/get-started-app-development-on-nxp-om13098-lpcxpresso54628/" rel="noopener noreferrer"&gt;NXP OM13098&lt;/a&gt;. After downloading it, save it in your workspace. Run the MicroEJ IDE, go to "Window" &amp;gt; "Preferences" &amp;gt; "MicroEJ" &amp;gt; "Virtual Device menu".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsup16knlk8drqpvpxjwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsup16knlk8drqpvpxjwz.png" alt="Virtual Devices"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step is to import the emulator and select the directory where the emulator is saved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrxn1wo0fo63am4149st.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkrxn1wo0fo63am4149st.png" alt="Select the directory"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu035ivqoptxrwt6egnl2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu035ivqoptxrwt6egnl2.png" alt="Directory"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After selection, simply accept the terms of use of the emulator, click "finish", wait for the import process to finish and click "apply and close".The emulator will be installed and ready for use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Famwws4iwu7sruosx6mx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Famwws4iwu7sruosx6mx6.png" alt="License Agreement"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2k6vr4ffgob3blwiblf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd2k6vr4ffgob3blwiblf.png" alt="Importing the Device"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdefs0qh6j2nleour192.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdefs0qh6j2nleour192.png" alt="Device ready to use"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To demonstrate the execution of the virtual device, I will use the &lt;a href="https://repository.microej.com/packages/blue/2.0.2/applications/blue_firmware_applications_1.0.0.zip" rel="noopener noreferrer"&gt;Hello World template provided by MicroEJ for download&lt;/a&gt;. The template comes ready to run, you only need to import the file to the IDE after unzipping it. Unlike the HelloWorld in the first example, this one has to be executed by right-clicking on the folder as it contains more than one file. Follow the same steps: “Run As” &amp;gt; “MicroEJ Application”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyk8nauj2xbnpw0zrq80a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyk8nauj2xbnpw0zrq80a.png" alt="Run as MicroEJ Application"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This should be the result in the &lt;a href="https://developer.microej.com/create-your-first-application/get-started-app-development-on-nxp-om13098-lpcxpresso54628/" rel="noopener noreferrer"&gt;NXP OM13098&lt;/a&gt; virtual device:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcw08a3zr9bl8qajcsdu1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcw08a3zr9bl8qajcsdu1.png" alt="Result in the NXP OM13098 virtual device"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember that &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt; supports execution on various types of simulators, such as &lt;a href="https://developer.microej.com/create-your-first-application/get-started-app-development-on-stmicroelectronics-stm32f746g-disco/" rel="noopener noreferrer"&gt;STM32&lt;/a&gt;, &lt;a href="https://developer.microej.com/create-your-first-application/get-started-app-development-on-espressif-esp32-wroverkit-v41/" rel="noopener noreferrer"&gt;ESP32&lt;/a&gt; and more.&lt;/p&gt;

&lt;p&gt;Conclusion:&lt;br&gt;
    &lt;a href="https://www.microej.com" rel="noopener noreferrer"&gt;MicroEJ&lt;/a&gt; is a very interesting technology, focused on development for embedded devices, that makes it possible to run Java® technology on microcontrollers with low computing power and even IoT. It has a very easy installation and setup due to the Java® programming language used. Also the IDE is well known by software developers as they use Eclipse, and they provide a well-organized &lt;a href="https://forum.microej.com" rel="noopener noreferrer"&gt;forum&lt;/a&gt; and &lt;a href="https://developer.microej.com" rel="noopener noreferrer"&gt;specific site for developers&lt;/a&gt; in addition to its own &lt;a href="https://repository.microej.com" rel="noopener noreferrer"&gt;repository&lt;/a&gt;. This provides a great help for those who are starting out or are just curious to know more about how to create Java® applications for MCUs.&lt;/p&gt;

&lt;p&gt;I am Oderlan Freire from Ocara, Ceará. I started working at TotalCross in 2021, a student of Information Systems at the Federal University of Ceará, and I participated in the SharinAgro project, one of the top projects selected for the Microsoft contest IA for Earth.&lt;/p&gt;

</description>
      <category>poweredbymicroej</category>
    </item>
    <item>
      <title>TotalCross: A Powerful Cross-Platform Development Technology</title>
      <dc:creator>Oderlan Freire</dc:creator>
      <pubDate>Wed, 18 Aug 2021 21:08:22 +0000</pubDate>
      <link>https://dev.to/oderlanfreire/totalcross-a-powerful-cross-platform-development-technology-1nbd</link>
      <guid>https://dev.to/oderlanfreire/totalcross-a-powerful-cross-platform-development-technology-1nbd</guid>
      <description>&lt;p&gt;I decided to make this article based on my first few contacts with &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; technology. It was something totally new and exciting for me, as I believe it is for all developers, to be able to manipulate a new, robust and powerful technology. In this article I will talk about what &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; is, how it works and about &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; in VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is TotalCross?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; is a Java based cross-platform SDK technology, aiming to make life easier for the developer or even the common user.It has a very low footprint, taking up a small amount of space on your device, less than 5MB in fact. Being cross-platform, the developer only needs to worry about learning the basics of Java and the &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; library to be able to run the program on embedded systems, Windows, Linux, Mac, IOS and Android. It has the same performance with all systems, and doesn't risk changes to the program or how it will behave regardless of the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works?
&lt;/h2&gt;

&lt;p&gt;The developer uses the Java language to develop the program code and compile it to generate the Java bytecode. TCVM converts this Java bytecode to TC bytecode, therefore giving a performance boost that is characteristic of &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt;, thus packaging and distributing it to the desired platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  TotalCross on VSCode
&lt;/h2&gt;

&lt;p&gt;Starting to developing TotalCross on VSCode is quite simple, just install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross" rel="noopener noreferrer"&gt;TotalCross plugin&lt;/a&gt; from VSCode's own marketplace. It is important to know that for the plugin to run well, it is necessary to have &lt;a href="https://jdk.java.net/11/" rel="noopener noreferrer"&gt;JDK11&lt;/a&gt; and &lt;a href="https://maven.apache.org/" rel="noopener noreferrer"&gt;Maven&lt;/a&gt; installed on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a project:
&lt;/h2&gt;

&lt;p&gt;After installing &lt;a href="https://jdk.java.net/11/" rel="noopener noreferrer"&gt;JDK11&lt;/a&gt;, &lt;a href="https://maven.apache.org/" rel="noopener noreferrer"&gt;Maven&lt;/a&gt; and the &lt;a href="https://marketplace.visualstudio.com/items?itemName=totalcross.vscode-totalcross" rel="noopener noreferrer"&gt;plugin&lt;/a&gt;, it's time to start the first project.&lt;br&gt;
Open your VSCode, when the welcome screen appears, press "Ctrl + Shift + P" to open the command palette, type TotalCross and 4 options will appear to you, click Create New Project.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxb2fh2xxpmgfl578one5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxb2fh2xxpmgfl578one5.png" alt="Create Project"&gt;&lt;/a&gt;&lt;br&gt;
When the file explorer opens, select or create the folder where you want to store the project. You can use a folder in any location, however, I would recommend creating it in the "Documents" directory for better organization.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbgik6cp38o3gzfw5awu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbgik6cp38o3gzfw5awu.png" alt="Folder Selection"&gt;&lt;/a&gt;&lt;br&gt;
When you select the folder, the VScode will ask you to enter the GroupId, which is basically the company or user ID. The following format should be used, ".com.company_name/user". For example com.totalcross.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kda2ukslevmhcitbb45.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kda2ukslevmhcitbb45.png" alt="Project ID"&gt;&lt;/a&gt;&lt;br&gt;
Right after that, it will ask the user to give the program a name:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn5lr2sbt04pba3fzja90.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn5lr2sbt04pba3fzja90.png" alt="Project Name"&gt;&lt;/a&gt;&lt;br&gt;
The next step is to choose the version of the TotalCross SDK, I recommend choosing the most recent one.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmstt8qu6hh1bgxp22sh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwmstt8qu6hh1bgxp22sh.png" alt="versao TC"&gt;&lt;/a&gt;&lt;br&gt;
Select which platform you want to develop the code for, then press enter or click OK:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmlsyibmodpld4f9676e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnmlsyibmodpld4f9676e.png" alt="Devices"&gt;&lt;/a&gt;&lt;br&gt;
Next, VSCode will automatically download a HelloWorld template for you to modify and start developing your program.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F773iygbc1jss1cxmi0g1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F773iygbc1jss1cxmi0g1.png" alt="Hello World  Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to run the code:
&lt;/h2&gt;

&lt;p&gt;Right-click on the file named RunApplication.java and click on the option Run Java.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6eb4ax8y1vv4u8mo9vge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6eb4ax8y1vv4u8mo9vge.png" alt="Run"&gt;&lt;/a&gt;&lt;br&gt;
VSCode will import, compile and run the Java project, creating the application window:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67jheq6hb8pkza5rbzzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F67jheq6hb8pkza5rbzzy.png" alt="App"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion:
&lt;/h2&gt;

&lt;p&gt;I hope you enjoyed this article about TotalCross. After my first contact with this technology, I can say that I recommend it. If you are looking for a new, powerful, accessible and quality technology to develop your program, whether it is cross-platform or not, I strongly recommend &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt;. This is due to the facilities that the technology offers with its library, easy installation, small footprint, agility, performance increase due to TCVM, and the fact that it has a large community that is on the rise. The &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; community is always open to help you learn, exchanging experiences and answering any questions.&lt;/p&gt;

&lt;p&gt;You can join the &lt;a href="https://totalcross.com" rel="noopener noreferrer"&gt;TotalCross&lt;/a&gt; community through the official website, &lt;a href="https://github.com/TotalCross/totalcross" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and &lt;a href="https://discord.gg/dwRhV4yY" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;. It will be a great experience and you are sure to learn a lot of great things! Look forward to seeing you there!&lt;/p&gt;

&lt;p&gt;I am Oderlan Freire from Ocara, Ceará. I started working at TotalCross as an intern in 2021, student of Information Systems at the Federal University of Ceará, and I participated in the SharinAgro project, one of the top projects selected for the Microsoft contest IA for Earth.&lt;/p&gt;

</description>
      <category>totalcross</category>
      <category>install</category>
      <category>tutorial</category>
      <category>firstpost</category>
    </item>
  </channel>
</rss>
