/totalcross

TotalCross is a Software Development Kit that helps cross platform application development. Currently supported platforms are: Windows, Wince, Android, iOS, Linux and Linux ARM for embedded systems.

Primary LanguageCGNU Lesser General Public License v2.1LGPL-2.1

TotalCross

TotalCross

Try in 8 minutes   •   Website   •   Docs   •   Blog   •   Telegram   •   Videos   •   Community

What is TotalCross?

TotalCross is a tool to make easy and fast GUI creation:

  • KnowCode: A computer vision project to help developers build user interfaces in less time. A library that converts a design image to a file that runs android XML UI + TotalCross SDK on Linux Arm, iOS, Android and more;
  • TotalCross SDK: Is a free open source GUI Creator and framework for developing cross-platform applications for Embedded Systems, Android, iOS, Wince, Windows and Linux desktop applications, and Linux Arm. Current supported languages are Kotlin, Java and any Java Based language.

FOSSA Status

How TotalCross SDK works?

Usage flow

You can use Kotlin or Java to create applications using TotalCross Java API which provides rich GUI components. The application source code is then compiled resulting in ByteCode Java, which is converted to TotalCross Optimized Bytecode, packaged and distributed to the platforms the user specifies which can be Window and Linux desktop, iOS, Android and Linux ARM.

What is inside this repository?

The TotalCross SDK, comprised by two main components:

  • TotalCross Java API - Combination of several APIs such as GUI components, Database and GPIO to create a single more robust API that guarantees quality and support in application development.
  • TCVM - Totalcross Virtual Machine, originally idealized as a Master's Thesis, has been built and improved over 10 years. It's log-based (Java) architecture, bytecode "itself with its own folders" for the most frequent and implemented almost 100% with C guarantees performance equivalent to native development. To read more about the TCVM click here.

Community

TotalCross's goal is to build a large and supportive community composed by enthusiastic mobile and embedded developers. You can be part of the telegram and here on GitHub.

Become a TotalCross contributor

In order to create a better tool and develop GUI for embedded systems and develop cross platform applications, it helps us in the community, so we have separated some challenges for those who want to contribute:

  • Creating graphical components in the Java API:
    • Create support for maps;
    • Create customized widgets on camera.
  • Improving the TC Java API:
    • Adding API port for Python.
  • Improving the TCVM:
    • Create support for external and native libraries.
  • Interacting in the issues repository;
    • Reporting and fixing new bugs;
    • Responding issues report;
    • Suggesting and voting on new features.
  • Making documentation more clear and complete:
    • Improving the getting started;
    • Pointing out improvements needed in our documentation and suggest new themes by opening issues.

Our contributors

These people have helped make TotalCross better by enriching ongoing discussions, reporting bugs, opening issues, and publishing relevant content (videos, articles and etc):

RoadMap

To find out what TotalCross world domination plans are, by clicking here.

Where you can find us