hero

LarkSDK

用户手册

开始阅读

跨平台

LarkSDK 是一款跨平台 C++ 开发框架。它使得用户无需花费精力在操作系统的特性和底层调用细节,从而更专注于业务需求开发。

纯自研

LarkSDK 并非是任何其他框架的套壳产品,这意味着,除了引用一些不得不引用的基础轮子之外,LarkSDK 的所有代码都是完全自研的。

超轻量

受益于后发优势,LarkSDK 的开发环境的部署实现了极简化配置,同时最终生成的程序包体积也被控制在最低限度,让构建、分发和部署都变得非常容易。

# 一个简单的例子

我们追求设计清晰的语义与自我解释的代码,同时参考知名框架的代码风格,让具备相关经验的用户得以快速上手。例如下列代码将创建一个指定宽高的普通窗体,窗体内部存在一个完美居中的按钮,点击按钮将弹出一个消息对话框。

#include <lwindowapplication.h>
#include <lmessagebox.h>
#include <lbutton.h>
#include <lflexlayout.h>

int main()
{
    LWindowApplication app;
    LWindow w(400, 300);
    w.rootComponent()->setLayout(LFlexLayout());
    LButton button("我绝对居中,请调整窗口大小", w.rootComponent());
    button.clickSignal.connect([&w]() {
        LMessageBox::info(&w, "消息框", "欢迎使用 LarkSDK!");
    });
    w.show();
    return app.exec();
}

上述代码虽然简短,但基本覆盖了 LarkSDK 构建用户界面的常见要素:

  • 创建了一个窗体;
  • 创建了一个按钮组件;
  • 利用布局机制,将按钮组件放置在窗体内绝对居中的位置;
  • 利用信号槽机制,设置按钮组件被点击时发生的行为;
  • 显示窗体,进入主事件循环。

代码在 Windows 下的运行结果如下(测试环境:Windows 10):

Demo Win32

在 Linux 下的运行结果如下(测试环境:Ubuntu 22.04):

Demo Linux

# 轻量的开发与部署体验

如果框架本身过于臃肿,那么无论是在开发端还是在部署端都会造成极其不好的体验。我们希望解决这个问题,在保证产品功能的前提下,尽可能控制开发包与最终输出程序包的体积,让开发回归简单、专业与优雅。

Size Dev

如图所示,我们当前版本的开发包控制在 40MB 内,其中包含 20MB 左右的动态库和 20MB 的内置字体文件(后续可裁剪)。部署时,也仅需简单的将动态库和资源文件与可执行程序打包即可。