AWTK (Toolkit AnyWhere): Universal GUI "turn" for embedded, mobile and desktop development

Source: Internet
Author: User

Turn from: 80958279

AWTK = Toolkit AnyWhere

AWTK is the essence of FTK and CANTK, the re-developed GUI, which is planned to be implemented in the following phases:

    • The first phase focuses on embedded systems to reach and exceed the touchgfx/embedded Wizard's capabilities. The plan was completed at the end of 2018/9.
    • The second stage uses the AWTK itself to develop the interface editor (or configuration software IDE) to verify AWTK's ability to support PC software development. The plan is to be completed by the end of 2018.
    • The third phase supports mobile application development, which is easier because the first stage is to extend the modern GUI on the phone to a traditional embedded system. The plan was completed in 2019/3.
    • Phase IV supports 2D game development, incorporating the experience of the previous development of the game engine into the AWTK to facilitate the development of interactive multimedia applications. The plan was completed in 2019/6.

Final goal:

    • Support the development of embedded software.
    • Support for developing Linux applications.
    • Support for developing MacOS applications.
    • Support for developing Windows applications.
    • Supports the development of Android apps.
    • Support for developing iOS apps.
    • Support the development of 2D games.

Its main features are:

  1. Small. In a thin configuration, you can develop some simple graphics applications without relying on third-party packages, only 8K ram+32k Flash.

  2. Efficient. The dirty rectangle clipping algorithm is used to draw and update only the changing parts at a time, which greatly improves the running efficiency and energy utilization.

  3. Stability. The stability of its operation is ensured through good architectural design and programming style, Unit testing, dynamic (Valgrind) checking and code review.

  4. Rich GUI components. Provides Windows, dialogs, and a variety of common components (users can configure the components they need to reduce the requirements of the operating environment).

  5. Supports multiple font formats. Built-in bitmap fonts (with conversion tools), or you can use Stb_truetype or FreeType to load TTF fonts.

  6. Supports multiple image formats. Built-in bitmap images (with conversion tools), or you can use Stb_image to load images in formats such as png/jpg.

  7. Compact binary Interface description format. An XML-formatted interface profile can be edited manually, or you can use the QT designer interface to convert to a compact binary interface description format to improve operational efficiency and reduce memory overhead.

  8. Supports themes and uses a compact binary format. Development uses an XML format to describe the topic, and then transforms it into a compact binary format that improves operational efficiency and reduces memory overhead.

  9. Bare system support, no OS and file system required. Fonts, pictures, themes, and interface description data are compiled into code, stored as constant data, and run without loading into memory.

  10. Built-in AGG/PICASSO/NANOVG for high-quality vector animations.

  11. Supports modern GUI features such as window animations, control animations, and slide animations.

  12. Support Internationalization (Unicode, string translation, input method, and so on).

  13. Portable. Supports porting to various RTOs and embedded Linux systems and runs through SDL on a variety of popular pc/phone systems.

  14. Scripted. Extracts the API's descriptive information from API annotations, which can be used to automatically generate binding code for various scripts.

  15. Open source with the LGPL protocol, which is not paid for when used in commercial software.

Now that the core functions have been completed (not yet applied to the product level), interested friends are welcome to transplant to each RTOS.

Analog Run: Mac

If you do not have scons and SDL2 installed, run the following command at the terminal (assuming that brew is installed):

install scons sdl2
    • 1

Compile and run (under Terminal, go to the directory where AWTK is located and run the following command):

scons./bin/demoui
    • 1
    • 2
Ubuntu

If you do not have scons and Libsdl2-dev installed, run the following command at the terminal:

sudo apt-get install scons libsdl2-dev
    • 1

Compile and run (under Terminal, go to the directory where AWTK is located and run the following command):

scons./bin/demoui
    • 1
    • 2
Windows

(Please first install scons and visual Studio C + + (version >2012)

Compile run (in command-line mode, go to the directory where AWTK is located and run the following command):

sconsbin\demoui
    • 1
    • 2
Porting for each platform
    • Stm32f103ze

    • Stm32f429igtx

    • awtk-aworks-rt1052

Document 1: Working with Documents
    • Introduction to layout parameters for AWTK controls
    • Introduction to AWTK Interface description file
    • How to display pictures in AWTK
    • Vector graph drawing function in AWTK
    • Event handler functions in the AWTK
    • The international string translation in AWTK
    • Topics in AWTK
    • Resource Manager in AWTK
    • Window animations in the AWTK
    • Animation of controls in AWTK
    • LCD rotation (horizontal screen and vertical screen)
    • Input methods in the AWTK
2.HowTos
    • How to manipulate GUI controls in non-GUI threads
3. Internal principles
    • AWTK implementation of script bindings-LUA binding
4. Porting Documents
    • Embedded platform porting considerations
    • Porting the AWTK to the Stm32f103ze bare system
    • Porting the AWTK to the STM32F429IGTX bare system
    • Porting AWTK to the Aworks platform
5. Technical Notes
    • Several ways to use framebuffer
    • Three ways to implement LCD interface
Completion of tasks

Todo.md

Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced. 80958279Article Tags: GUI awtkPersonal Category: Game engine/gui design and implementation of embedded GUI FTK

AWTK (Toolkit AnyWhere): Universal GUI "turn" for embedded, mobile and desktop development

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.