Cross-platform GUI engine AWTK 1.4 released

1. Introduction

The  full name of AWTK is Toolkit AnyWhere, which is  an open source GUI engine developed by ZLG . It is  designed to create a universal GUI engine for embedded systems, WEB, various applets, mobile phones and PCs. It provides users with a powerful, efficient, reliable, easy to use A GUI engine that can easily make cool effects.

Developers are welcome to participate in development together: ecological co-construction plan .

AWTK's morals  have two aspects:

  • Toolkit AnyWhere。
  • ZLG IoT operating system AWorksOS has a built-in GUI.

AWTK  source code repository:

AWTK Designer interface design tool:

  • No need for handwritten XML
  • Drag and drop design interface, WYSIWYG
  • Quick preview, one-click packaging resources
  • Registration and download address: https://awtk.zlg.cn

AWTK Designer

Screenshot of running effect:

Chart-Demo

MusicPlayer-Demo

Watch

Second, the ultimate goal:

  • Support the development of embedded applications.
  • Support the development of Linux applications.
  • Support the development of MacOS applications.
  • Support the development of Windows applications.
  • Support the development of Web APP.
  • Support the development of Android applications.
  • Support the development of iOS applications.
  • Support the development of WeChat applets.
  • Support the development of Alipay applets.
  • Support the development of Baidu applets.
  • Support the development of 2D small games.

3. Main features

1. Cross-platform

AWTK  is cross-platform, which has two meanings:

  • AWTK itself is cross-platform. Currently supported platforms are ZLG AWorksOS, Windows, Linux, MacOS, embedded Linux, Android, iOS, Web and embedded bare system, which can be easily ported to various RTOS. AWTK can also run on various applet platforms in the future.

  • AWTK also provides a set of cross-platform basic tool libraries. These include linked lists, arrays, strings (UTF8 and widechar), event emitters, values, objects, file systems, mutexes and threads, expressions and string parsing, etc., so that applications you develop with AWTK can really Cross-platform operation.

2. High efficiency

AWTK  ensures the efficient operation of AWTK applications through a series of means:

  • Only dirty parts are updated by dirty moment algorithm.
  • Support 3 FrameBuffer to let the interface run at the highest frame rate (optional).
  • The UI description file and theme file use an efficient binary format, and the parsing is completed in an instant.
  • Supports various GPU accelerated interfaces. Such as OpenGL, DirectX, Vulkan and Metal, etc.
  • Support various 2D acceleration interfaces for embedded platforms. At present, DMA2D of STM32 and PXP interface of NXP, manufacturers can easily expand their acceleration interface.

3. Stable

AWTK strives  to make the code stable and reliable in the following ways:

  • Use cppcheck and facebook infer for static checking.
  • Use valgrind for dynamic memory checking.
  • Nearly 20,000 lines of unit test code.
  • Support from ZLG's powerful GUI team.
  • After multiple actual project verification.
  • Multi-platform / multi-compiler verification.
  • Excellent architecture design.
  • Code Review。
  • Manual testing.

4. Powerful

  • Rich controls (continuously increasing).
  • Support various picture formats (png / jpg / gif / svg).
  • Supports various font formats (dot matrix and vector).
  • Support window animation
  • Support control animation
  • Support HD screen.
  • Support interface description file.
  • Support theme description file.
  • Theme switching takes effect in real time.
  • Support control layout strategy.
  • Support dialog highlighting strategy.
  • Rich auxiliary tools.
  • Support from low-end Cortex M3 to various high-end CPUs.
  • Support no file system and custom file system.
  • Support bare system and RTOS.

5. Easy to use

  • Lots of sample code.
  • Complete API documentation and usage documentation.
  • ZLG's strong technical support team.
  • Interface editor developed with AWTK itself  .
  • Declarative interface description language. One line of code enables control animation, window animation, and display picture (png / jpg / svg / gif)

6. High scalability

  • You can extend your own controls.
  • You can expand your own animation.
  • You can implement your own main loop.
  • You can expand your own soft keyboard.
  • You can extend your own picture loader.
  • You can extend your own font loader.
  • You can expand your own input method engine.
  • You can extend your own control layout algorithm.
  • You can extend your own dialog highlighting strategy.
  • You can implement your own LCD interface.
  • You can extend your own vector engine (such as using skia / cairo).
  • All extension components and built-in components have the same treatment.

7. Multiple development languages

AWTK  itself is developed in C language and can generate bindings of various scripting languages ​​through IDL. The generated binding code does not simply map the C language API to the script language, but generates the native code style API of the script language. The following languages ​​are currently supported (added in the future as needed):

  • C
  • C++
  • take
  • java
  • python
  • Javascript on jerryscript
  • Javascript on nodejs
  • Javascript on quickjs

8. Internationalization

  • Support Unicode.
  • Support input method.
  • Support string translation (effective in real time).
  • Support picture translation (effective in real time).
  • Two-way text layout (planned).

9. The MVVM framework customized for embedded software completely separates the user interface and business logic.

  • High performance.
  • The memory overhead is small.
  • The isolation is more thorough.
  • Can be ported to other GUIs.
  • The code is small (~ 5000 lines).
  • There is no need to learn the API of the AWTK control itself.
  • Support multiple programming languages ​​(currently supports C / JS).

For details, please refer to: https://github.com/zlgopen/awtk-mvvm

10. Open source, free commercial use (LGPL).

Four, 1.4 version update


1. Perfect details

  • Improve the fs interface.
  • The perfect tool supports multiple themes.
  • list view supports up and down scrolling.
  • Improve the problem of focus restoration when switching windows.
  • Improve combobox, reopen the input method after selection
  • Progress circle supports the line cap attribute.
  • Add vgcanvas_line_join_t definition.
  • Add vgcanvas_line_cap_t definition.
  • Modified the problem that the interface is black after android resume.
  • slide view / pages Each page supports independent initial focus.
  • Add function widget_set_child_text_utf8.
  • Add function widget_set_child_text_with_double.
  • When the keyboard is in grab_keys, after the keyboard processes the key event, the application window is no longer processed.
  • Improve image value, support to add an increment when click, increase to the maximum value and return to the minimum value.

For a lot of details, please refer to:  https://github.com/zlgopen/awtk/blob/master/docs/changes.md

3. New features

  • No file system supports multiple themes.
  • opengles supports snapshot.
  • dit / mledit supports you to specify the name of the soft keyboard.
  • Click the right mouse button to trigger the context menu event.
  • Use event_source_manager to implement the main loop.
  • Add awtk_main.inc, the main function for standard programs.
  • Use SDL to reimplement the PC version of threads and synchronization related functions.
  • edit add input type "custom_password" type.

4. New controls

5. Add important API

  • Increase the action thread.
  • Increase the action thread pool.
  • Increase the dynamic link library interface dl.h.
  • 增加 waitable ring buffer。
  • Add widget_close_window.
  • Add waitable_action_queue.
  • Add path_replace_extname function.
  • Add async.c / .h to realize asynchronous call of function.
  • Add path_replace_extname function.
  • Add async.c / .h to realize asynchronous call of function.
  • Add data reader interface and data writer to abstract external flash and other devices.
  • Added function fs_get_user_storage_path to unify the directory where PC and Android platforms save data.

6. New platform

7. New language binding

8. Add related items

Developers are welcome to participate in development together: ecological co-construction plan .

Guess you like

Origin www.oschina.net/news/114836/awtk-1-4-released