-
Notifications
You must be signed in to change notification settings - Fork 31
Open source is not easy, strive to persist! Order a Star, it's very important to me!
I started occasionally searching for Go's desktop GUI framework a few years ago, when I was purely interested.
I have found and tried some, but I personally feel that each has its own advantages and disadvantages, which is only at the level of trial. Not very well understood.
From 2021 to 2022, a friend introduced an outsourcing project, the APP+PC Paperless office intelligent conference software, which needs to be cross platform and support windows, domestic systems (linux, linux arm), Android, IOS, and PC customers need to use java as the client, and a layer of shell is packaged based on CEF
It's really uncomfortable to write a Java client and never want to write again after this experience. In short, there are various issues.
Ever since this project, I've been thinking of using Go to write one myself, give it a try?
I don't know how to start. I accidentally found the govcl open source project, the system native UI encapsulated by the lcl component library based on Lazarus, and then learned how to do it. At first, I saw that the Free Pascal language was unused, and then I began to experience the installation environment. Later, I became more and more fond of govcl, which is compact and a Dynamic-link library.
Later on, while researching and learning free pascal, I looked at whether this thing could be used as a browser based cross platform desktop framework
The client interface of the Govcl component library is not very attractive. Not as flexible and ever-changing as HTML+CSS, but there are really many components. If you have the ability, you can also extend liblcl yourself
The advantage of the Govcl component library is that the compiled volume is very small and the compilation speed is also fast You only need liblcl Dynamic-link library (lcl component library)+go environment
The most important aspect of Lazarus is cross platform Windows, Linux (ARM), Mac (ARM), and many other architectures that I have never heard of, and the APP also supports Android that I have never used before
Furthermore, I discovered CEF4Delphi during a study of Lazarus extension components. Upon seeing that it is open-source and entirely written based on CEF, I was wondering if it could be integrated into the liblcl dynamic library and started researching
After a period of testing, it is feasible. Then start writing the Energy Journey.
At the beginning, I didn't know how to use free pascal very well. While learning and writing, I changed the clone govcl to golcl (retaining the original author's authorization and information) and added extensions to enrgy while retaining the native components of the lcl system
Time: October 2022~June 2023, from the initial v1.0 to v2.0, lasting for over 8 months
V1.0 has not fully implemented the CEF interface yet, and there are many logical functions written in liblcl, and not many CEF functions are implemented
V2.0 transfers all logical functions from the liblcl library to go for implementation, while adding 90% of CEF's export APIs to Energy
The framework code may not be perfect or there may be many issues, welcome to raise them.
Welcome to Sanlian: watch、star、fork