Slint Development
Slint is a relatively new approach to user interface development. The declarative GUI toolkit, launched by a group of former Qt team members and with the goal of providing a lightweight scalable, intuitive and native interface design space, Slint has gained market share as developers embrace Slint’s Qt alternative.
WHAT IS SLINT DEVELOPMENT?
Slint is a declarative GUI toolkit for developing a graphical user interface for a backend application. Built to allow separation between the UI layer and the business logic, it includes a capacity to build in real time (Live Preview), build responsive native user interfaces as well as supporting multiple programming languages (Rust, C++, JavaScript and others). Slint files are compiled to native code. It is a lightweight, modern, and high-performance option for UI design compiled to machine code and deployment on a wide range of MPUs and MCUs.
The main challenges of slint development
Unfamiliar Functional Programming
Slint design markup language is based on Rust and is therefore a functional programming approach. While not new, it is likely to be unfamiliar to many developers and your internal teams may not have the skills, experience, or expertise to effectively develop and build native user interfaces with a functional approach.
New UI approach
Functional programming might not be new, but Slint ushers in a new era. Launched relatively recently, Slint is both inspired by Qt and QML, and a replacement for both. Teams that have only ever developed with Qt or other front end or UI frameworks will have a steep learning curve to develop a Slint UI for a native application from scratch.
Downsizing resources
Developing a UI for a resource-poor device can be a challenge at the best of times. Slint makes that easier as it is light enough to work on MPUs and MCUs alike, and able to work with downsized resources and minimal resource consumption. For Slint developers, constrained resources are no problem, but it is a challenge for many developers used to working with more powerful systems.
Key elements to consider
Architect project
- Assess Functionality and Needs
- Choose Backend Language
- Pricing and Business Case
Industrialization
- Separate UI from Business Logic
- Maintenance
- Ongoing flexibility
Ismail Tounsi
Product Line Manager
Working with Witekio has been instrumental in upgrading our commercial building solutions. The team’s ability to understand our needs, coupled with their collaborative approach, ensured the delivery of a user-friendly and highly efficient product. This project has not only modernized our offerings but also positioned us strongly in the market.
HOW TO DEVELOP IN THE SLINT DECLARATIVE GUI TOOLKIT
Architect project
Any Slint development project begins with a study of what is required from the user interface and investigation into how end users will engage with and make use of the product once it is marketed.
GUI developers talk with internal teams to assess functionality and needs so that the user interface that is developed can meet all expectations. Buttons, calls to action, animations, images, and close attention to customer journeys form the basis for the interface that will be developed.
Next, if a backend application does not yet exist, clients will need to choose a backend language, usually either JavaScript, Rust or C++. Slint is unique in that the choice matters little to the UI design and development in terms of functionality, but understanding how the business logic written in Slint Files in the domain specific language compiled to native code in Rust, C++ or JavaScript will help developers make the best integrations.
Finally, business development teams will work with the client on a pricing and business case as Slint, like other commercial approaches, comes with a financial cost. With long-developed expertise working with similar business models and many examples, Witekio teams can advise and support your team on which license to choose to ensure that your business goals are met.
Build UI
With the project plan architected and in place, the development of the user interface in the UI toolkit Slint can begin.
Software engineers and designers work together to build the UI and ensure that it is attractive, useable, and meets the expectations of your teams and the end users. Care is taken to make sure that the user interface works for the real-world situations that might be quite different from initial expectations.
All of the software goes through extensive testing and validation to be sure that what is delivered is bug free, crash free, and works perfectly in sync with the existing backend application. Automated and manual testing and code validation exercises continue until the development and design teams sign off on the final UI.
The Slint UI is then fully documented so that internal teams understand why and how it works, and its connections with the backend are outlined so that any changes made to the business logic written in Slint language later can be integrated into the user interface, too.
Finally, the code and the documentation are provided to the client in the handover. Internal teams are provided with everything they need to take ownership of the user interface written in Slint, and the developers from Witekio are available to answer any remaining questions for support.
Industrialization
Products and devices are constantly evolving, and successful device vendors rarely stay still in rapidly changing markets for connected objects, robots, and embedded devices.
With Slint, it is possible to entirely separate the UI from the business logic, which means that changes can be made to either the front or back end without necessarily impacting the other. Being cross-platform, a Slint UI is also easily transferred to a new device or project to maintain consistent UI experience without relying on the same backend.
Maintenance is also an essential consideration. While some clients rely on their internal teams and Witekio’s extensive documentation to maintain their Slint UI, many return to the teams at Witekio to keep their devices safe, secure, and with a reputation for quality.
Finally, clients that have chosen to build their user interface with Slint enjoy ongoing flexibility, that only a native application can offer, and support to update that user interface to meet client needs or shifting market expectations. Engineers can rapidly and easily update the user interface, export it to a new device, and take full advantage of Slint’s agility.
The main benefits of Slint development
Flexible backend
Slint offers flexibility to product owners and developers when it comes to building the backend application for a project or product. If C++ works better for a particular device, there are no issues at all using Slint for the front end interface. On the other hand, if the application is coded in Rust, Slint works just as well to make interacting with the device easy and smooth. The flexibility that Slint offers means that product owners and device manufacturers can develop with confidence, knowing that they will never be constrained by their UI language choice in the development process.
Real-time UI build
Developers using Slint have a real-time eye on the user interface as it is built. Instead of needing to compile code and wait for the UI to be revealed, Slint enables developers to see what they are building as they write the code. Slint Files are compiled ahead, which allows the compiler to optimize pure functions. This can lead to improvements like a better rendering time on low end devices .This capacity makes for quick changes, short feedback loops, and the possibility to integrate changes requested by clients live. Developers can use Slint’s ‘Live Preview’ feature to tweak colors, shapes, text, animations and responsive layouts instantly, accelerating development and adding value for owners.
Re-use UI code
Slint is not only capable of delivering fantastic user interfaces, but also light enough to be used on different hardware without a problem. For example, as well as working fine on microprocessors, Slint is able to be deployed on microcontrollers. This offers significant flexibility for device makers that can embrace the same UI for products with different resources and hardware components. Reusing the same Slint UI code base on different devices is a resource saving as well as a means to accelerate development and get to market faster.
Witekio can support your Slin development
Slint is a relatively new approach to user interface design but offers some significant advantages over existing approaches and other GUI toolkits. While new and on active development, Witekio engineers have already established experience working in Slint and delivering projects that work with backends written in the programming languages Rust, C++ and JavaScript.
Working with our teams means leveraging our expertise and support in user interface design gained over decades of experience in a variety of industries, no matter which platform – desktop, mobile, web or embedded system.
Whether part of a larger software development project with front- and back-end components, or just a refresh for the UI of an existing product, Slint and Witekio make for a formidable pair. Witekio engineers are experts in embedded devices and developing web applications using languages like Rust, C++, JavaScript and others. Contact us for more information about Slint development, Slint Apps and support for your project.