跨越屏幕:桌面PC端的多端开发框架介绍

2023-05-16

目前,随着互联网和移动互联网的发展,多端开发框架已经成为越来越多开发者更好的选择。主要有以下几个方面的前景:

  1. 跨平台开发需求不断增加:由于不同平台和设备的差异性,开发人员需要使用不同的编程语言和开发工具来为各个平台和设备编写不同的应用程序。跨平台开发框架能够通过共享一部分代码,在不同的平台上构建出一致的应用程序,从而降低开发成本。

  2. 移动应用市场增长迅速:据调研数据显示,移动应用市场持续发力,2018年全球移动应用市场收入超过了930亿美元,预计到2023年将达到全球1.25万亿美元。这意味着,开发人员将有更多机会使用跨平台开发框架来为多个移动平台构建应用程序。

  3. 用户设备多样化:随着人们越来越依赖数字产品,用户设备类型和数量也在不断增加,需要为不同的设备开发应用程序。跨平台开发框架能够支持多平台、多设备的应用程序开发,给开发者带来了更大的便利。

总体来说,多端开发框架是未来的发展趋势,虽然每个框架的特点和适用场景不同,但随着技术的不断进步,这些框架将会变得更加成熟和完善。因此,对于开发者和企业来说,学习和应用多端开发框架将会是非常有前景的选择。

框架介绍

桌面PC端的多端开发框架有很多,以下是一些常见的框架及其简介和优缺点:

1. Qt:

Qt 是一套跨平台的 C++ 应用程序开发框架。它提供了一个全面、易于使用的 API,可以帮助开发者构建移动应用程序、机器人控制系统、汽车、嵌入式设备以及其他各种类型的应用程序。官网:https://www.qt.io/zh-cn/product

优点:

  • 用 C++ 编写的应用程序具有高性能和快速响应
  • 支持跨平台开发,可达到重用代码的目标
  • 提供了大量的基础类和方法来简化开发工作

缺点:

  • 由于采用了 C++ 开发方式,学习曲线较陡峭,需要较高的技术水平
  • 在设计 UI 界面时有点繁杂,不如比较流行的前端框架简单易懂

2. Electron:

Electron 是一个基于 Chromium 和 Node.js 的框架,可以用 HTML、CSS 和 JavaScript 构建桌面应用程序。官网:https://www.electronjs.org/zh

优点:

  • 使用熟悉的前端技术栈进行应用程序开发
  • 可以快速创建兼容 macOS、Windows 和 Linux 的原生应用程序
  • 社区活跃,扩展性强

缺点:

  • 对于 CPU 和内存的要求较高,可能会导致程序运行速度缓慢。
  • Electron 应用程序常常占用较大的内存和磁盘空间。

3. Flutter:

Flutter 是一个 Google 开发的跨平台移动应用框架,可以用单个代码库构建高性能、美观的应用程序。官网:https://flutter.cn/

优点:

  • 高性能,快速响应,用户体验较好。
  • 使用 Dart 语言,易于学习和使用。
  • 具有灵活的 UI 库和组件,可快速构建应用程序界面

缺点:

  • 不如原生 SDK 支持丰富,可能会受到限制。
  • 需要考虑不同操作系统和设备之间的差异

综上所述,Qt、Electron 和 Flutter 分别具有自己的优缺点,开发者需要根据实际需求进行选择。Qt 更适合需要较高性能的应用程序,而 Electron 则适用于需要快速开发桌面应用程序, Flutter 则可以用于构建跨平台的高频率刷新的应用程序(如游戏)和与原生代码稍微接触交互少一些的纯前端app类型。

基本使用

1. Qt

Qt 工具集包含一个名为 “Qt Creator” 的 IDE,它是 Qt 官方推荐的 IDE。Qt Creator 集成了一个强大的代码编辑器、自动构建和部署工具、调试器和图形用户界面设计器等功能,可以帮助开发者完成整个应用程序开发过程。同时,它还支持多种编程语言,例如 C++、QML 和 JavaScript 等,可以方便地进行跨平台开发。
除了 Qt Creator 外,也可使用其他支持 Qt 开发的 IDE 或文本编辑器,如 Visual Studio、Eclipse、Sublime Text 等,并手动配置编译环境以达到与 Qt Creator 相同的效果。但是,对于初学者来说,使用 Qt Creator 更为方便快捷。

以下是 Qt 的入门详细教程:

  1. 安装 Qt

首先需要下载并安装 Qt Creator,官方网站提供了 Windows、Mac 和 Linux 版本可供下载:https://www.qt.io/download

在安装时可以根据个人需求选择需要的组件进行安装。

  1. 创建新项目

打开 Qt Creator 后,点击 “New Project” 按钮创建一个新的 Qt 项目。在弹出的 “Projects” 窗口中,选择 “Application” 类型,然后再选择 “Qt Widgets Application” 或 “Qt Quick Application”。

  1. 编写代码

Qt Creator 提供了集成的代码编辑器,支持 C++ 和 QML 两种语言。每个应用程序都包含一个 .pro 文件和一个主要的源文件(main.cpp),在这里可以打开和编辑它们。

在 main.cpp 文件中,可以创建窗口并输出一些内容,例如:

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QPushButton button("Hello World", nullptr);
    button.setGeometry(100, 100, 100, 50);
    button.show();

    return a.exec();
}

以上代码创建了一个按钮,并设置它的初始位置、大小以及显示在屏幕上。之后启动应用程序,便能够看到一个简单的窗口和一个按钮。

  1. 调试和构建

在 Qt Creator 中可以直接使用调试工具,例如 gdb。可以通过在 main.cpp 中插入断点来调试代码,同时在编辑器的左侧会显示当前执行状态。

构建和编译应用程序可以通过 “Build” 按钮进行操作。Qt Creator 也提供了丰富的构建工具,支持多种类型的构建和平台。在构建过程中,还可以设置一些参数,例如优化等级,来优化应用程序性能。

2. Electron

Electron 开发并没有特别强制的编译器要求,常用的编译器包括 Visual Studio Code、Atom、Sublime Text 等,这些编辑器都支持 JavaScript 和 HTML,可以与 Electron 集成使用,提供了代码高亮、智能提示、调试等功能,并且用户也可以根据自己的喜好选择自己习惯的编译器。推荐使用 Visual Studio Code,因为它提供了丰富的扩展和集成开发环境(IDE)功能,而且还支持调试Electron应用程序,可以提高开发效率。

以下是 Electron 的入门教程:

  1. 安装 Node.js 和 npm

在安装 Electron 之前,需要先安装 Node.js 和 npm,可以从官网下载适用于自己系统的安装包。下载地址:https://nodejs.org/en/download/

  1. 安装 Electron

在完成 Node.js 和 npm 的安装后,可以使用 npm 命令来安装 Electron

npm install electron --save-dev

–save-dev 参数表示将 Electron 添加到项目依赖中。

  1. 创建一个新的 Electron 应用程序

创建一个空文件夹用于存储应用程序,并打开终端进入该目录,然后运行以下命令:

npm init -y

该命令将在文件夹中生成一个 package.json 文件,其中记录了应用程序的名称、版本和依赖等信息。

  1. 编写应用程序代码

在前面步骤中创建了一个名为 package.json 的文件,它包含了应用程序的基本信息。可以编辑该文件添加应用程序所需的依赖。

然后,在保存应用程序的源代码的文件夹下创建一个主进程文件 main.js,在其中编写 Electron 应用程序的核心逻辑。例如,以下代码创建了一个简单的窗口。

const { app, BrowserWindow } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })

  win.loadFile('index.html')
}

app.whenReady().then(() => {
  createWindow()

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
  1. 运行应用程序

在编写完应用程序代码后,可以使用以下命令运行应用程序:

npm start

该命令将启动 Electron 应用程序并打开主窗口。

3. Flutter

谷歌开源的跨平台UI开发框架Flutter

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨越屏幕:桌面PC端的多端开发框架介绍 的相关文章

  • 迁移EFI分区至固态硬盘

    接上回 加装SSD后的第二天 xff0c 我发现原来20s开机的电脑居然变成了30s开机 于是我就开始思考什么问题导致了这个情况 xff0c 根据启动顺序问题 xff0c 我发现可能是安装系统时 xff0c 我没拔下HDD的SATA0接口的
  • go defer,panic,recover详解 go 的异常处理

    转载 https www jianshu com p 63e3d57f285f golang中defer panic recover是很常用的三个特性 xff0c 三者一起使用可以充当其他语言中try catch 的角色 xff0c 而de
  • 重新在虚拟机上安装了centOS7系统

    参考教程 xff1a VMware 安装 Centos7 超详细过程 菜鸟教程
  • centOS安装

    1 安装ImageMagick yum install y ImageMagick 2 安装GhostScript yum install y ghostscript 验证是否安装成功 gs version 3 安装libreoffice
  • 10问10答:你真的了解线程池吗?

    Java开发手册 中强调 xff0c 线程资源必须通过线程池提供 xff0c 而创建线程池必须使用ThreadPoolExecutor 手册主要强调利用线程池避免两个问题 xff0c 一是线程过渡切换 xff0c 二是避免请求过多时造成OO
  • TensorRT 加载模型onnx报错: Error Code 10: Internal Error (Could not find any implementation for node

    1 背景 在TensorRT加载ONNX文件 bert模型 xff09 过程出现如标题所示的错误信息 在相同的代码 xff0c 相同的TensorRT版本 xff0c 在3090 xff08 43 win10 xff09 可以进行正常加载和
  • 【Git】在IDEA拉取master分支到你的开发分支上

    git checkout到master2 git pull xff0c 拉去master最新代码 3 git checkout到你的开发分支 右键项目 选择远程master 确定后如果有冲突 xff0c 则解决冲突即可 弄完最后git pu
  • UNIX环境高级编程-第一章

    1 UNIX体系结构 xff1a 严格意义上说 xff0c 可将操作系统定义为一种软件 xff0c 它控制计算机硬件资源 xff0c 提供程序运行环境 我们通常将这种软件称为内核 xff0c 因为它相对较小 xff0c 而且位于环境的核心
  • AP6275S移植总结

    RK3308B 43 AP6275S移植 在rk3308b平台移植rtl8821cs rlt8821cs是wifi 43 bt一体的模组 xff0c 主要记录下移植过程中需要注意的地方 移植驱动 将rtl8821cs的驱动包复制到rk的SD
  • float类型

    float类型遵循IEEE754标准 xff0c 该标准为32位浮点数规定了二进制表示形式 IEEE754采用二进制的科学计数法来表示浮点数 对于float浮点数 xff0c 用1位表示数字的符号 xff08 浮点数正负性 xff0c 0正
  • 判断点与直线的位置关系

    判断点与直线的位置关系是计算几何里面的一个最基本算法 xff0c 可以使用向量来判断 定义 xff1a 平面上三个点A x1 y1 B x2 y2 C x3 y3 xff0c 判断点C与 A B overr
  • 【知识点总结】大数据技术原理与应用

    大数据技术原理与应用 本文是对 大数据与云计算导论 课程知识点的应试总结 基本涵盖了 大数据技术原理与应用 的重点内容 思维导图由 64 福尔摩东整理 第一章 大数据概述 1 三次信息化浪潮 信息化浪潮发生时间标志解决的问题代表企业第一次浪
  • BlockingQueue

    BlockingQueue 一 阻塞队列基本方法介绍 谈到线程池 xff0c 不得不谈到生产者 消费者模式 xff0c 谈到生产者 消费者 xff0c 就不得不谈到对应的数据结构 xff0c 谈到对应的数据结构不得不言 BlockingQu
  • 【Python爬虫】猫眼电影榜单Top100

    这是一个入门级的Python爬虫 xff0c 结构易于理解 本文对编写此爬虫的全过程进行了讲述 希望对大家的Python爬虫学习有所帮助 一 目标 爬取猫眼电影榜单Top100 xff0c 将数据存入Excel文件中 xff0c 并利用py
  • 【知识点总结】计算机操作系统

    第一章 操作系统引论 操作系统的特征 并发 共享 虚拟 异步 并发和共享是两个最基本的特征 xff0c 二者互为存在条件 1 并发与并行 并发 xff1a 指两个或多个事件在同一时间间隔内发生 这些事件宏观上是同时发生的 xff0c 但微观
  • RD Client 用户账户无效解决办法

    账户密码都正确的情况下 xff0c 在局域网内登录总是显示用户账户无效 查找了微软讨论组 csdn xff0c 使用他们提供的解决办法都未能解决我的问题 xff0c 最终在知乎找见了如下的方法 xff0c 成功连接 打开本地组策略编辑器 计
  • FRP内网穿透 远程桌面的搭建

    一 准备 内容要求操作系统Win10家庭版以上服务器具有公网ip远程软件RD Client 二 软件介绍 1 Win10专业版 企业版 2 RD Client xff08 Microsoft 远程桌面 xff09 主要功能 访问运行Wind
  • 【考研】数据结构复习

    一 线性表 1 线性表的顺序表示 xff08 1 xff09 定义 静态分配 define MaxSize 50 typedef struct ElemType data MaxSize int length SqList void Ini
  • 层板等分衣柜 简单实现

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 使用spire.doc for java 操作文档(添加段落,动态生成表格,给段落设置字体样式等)

    31 使用spire doc for java 操作文档记录 span class token comment 创建段落 span span class token keyword public span span class token

随机推荐

  • HBuilderX - uniapp - 运行项目到微信开发者工具 - 提示项目下缺少manifest.json文件

    1 有manifest json的情况下报错 xff0c 选中项目 xff0c 右键菜单 xff0c 重新识别项目类型 xff0c 再次运行 参考文档 xff1a HBuilderX 项目根目录下缺少manifest json 峻宇 博客园
  • 图片上传到FTP服务器之后,从ftp服务器下载图片到本地会失真

    问题描述 有一个需求是需要把下载的图片上传到ftp服务器 xff0c 但是当把图片上传完之后 xff0c 下载到本地发现图片失真了 xff0c 如图 xff1a 看了网上很多办法比如 xff1a ftpClient setFileType
  • hisat2 cifflinks

    hisat2 p 8 dta cufflinks x hisat2 data script sh 1 PH 1 1 0h2 1 1 fq gz 2 0h2 1 0h2 1 2 fq gz S 0h2 1 sam
  • centOS7上面安装wkhtmltopdf的记录

    Using username terry Last login Sun Feb 16 21 46 27 2020 from 192 168 31 134 terry 64 MiWiFi R4AC srv su 密码 xff1a root 6
  • 一键清理项目下pycharm和Jupyter缓存文件

    前言 在进行python编程开发时 xff0c Jupyter和Pycharm是两个比较常用的开发工具 pycharm在运行py文件时会生成以 pycache 命名的缓存文件夹 xff0c 而jupyter在打开ipynb时会生成以 ipy
  • Spring框架常考知识点总结

    1 Spring常见的注入方式有 xff1a setter注入和构造注入 2 依赖注入的目标是 xff1a 在代码之外管理程序组建间的依赖关系 3 下面关于IOC的理解 xff0c 正确的是 xff1a 控制反转和对象被动的接受依赖类 4
  • MATLAB GUI图形界面设计一个学生管理系统

    设计一个简单的学生成绩管理程序 xff0c 包含如下功能 xff1a 1 可创建不少于100名学生成员 xff1b 2 每名成员的记录包括 xff1a 学号 姓名 专业和5门课程的成绩 xff1b 3 能够实现添加 删除 修改学生成员 xf
  • Java多线程----消费者/生产者模型

    前言 生产者和消费者问题是线程模型中的经典问题 xff1a 生产者和消费者在同一时间段内共用同一个存储空间 xff0c 生产者往存储空间中添加产品 xff0c 消费者从存储空间中取走产品 xff0c 当存储空间为空时 xff0c 消费者阻塞
  • 操作系统之聊天系统的实现

    实验要求 在linux系统用c c 43 43 语言编写一个多用户的聊天室管理系统 主要功能 xff1a 1 能做到3个以上用户之间的聊天 xff1b 2 系统要有用户管理功能 xff1b 3 每个用户能管理自己的权限 xff0c 比如 不
  • Android系统连接WIFI显示网络连接受限

    问题描述 使用Android设备打开设置 xff0c 选择WIFI输入正确密码连接 xff0c 会显示已连接 xff0c 无网络 xff0c 然后变成网络连接受限 xff0c 实际可以使用此WIFI进行上网 问题分析 异常Log D Net
  • Android View绑定框架——ButterKnife & Viewbinding

    ButterKnife 是一个专注于Android系统的View注入框架 以前总是要写很多findViewById来找到View对象 xff0c 有了ButterKnife可以很轻松的省去这些步骤 最重要的一点 xff0c 使用Butter
  • Android 启动前台服务的实现方法与注意事项

    问题描述 Android R平台 收音机启动前台服务 startForegroundService 报错 span class token class name E span span class token class name Andr
  • Android 多窗口适配

    Android 多窗口适配主要是针对支持分屏 自由形态窗口 画中画等多个窗口模式的 Android 设备 以下是 Android 多窗口适配的一些常见技术点 xff1a 支持多窗口 xff1a 在 AndroidManifest xml 文
  • Python保存数据到文件的方法

    IO xff08 Input Output xff09 是指计算机与外部环境之间的数据交换 Python中的IO操作分为文件IO和网络IO两种 文件IO xff1a Python提供了内置的文件对象来实现文件IO操作 文件对象是通过内置的o
  • Windows编程之核心书籍推荐

    一 Windows程序设计 xff08 第5版 珍藏版 xff09 Windows程序设计 xff08 第5版 珍藏版 xff09 这是一本经典的Windows编程圣经 xff0c 曾经伴随着近50万Windows程序员步入编程殿堂 xff
  • Android DocumentFile基本使用

    调用DocumentUI申请权限 xff1a Android R实现访问外部存储的Android data方案 申请权限选择的目录树后 xff0c 后续所以文件操作都需要按照此目录树为基础做文件操作 Uri的构造 xff1a content
  • 最优化算法 - 动态规划算法

    动态规划算法简介 动态规划 xff08 Dynamic programming xff09 是一种在数学 管理科学 计算机科学 经济学和生物信息学中使用的 xff0c 通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法 动态规划常常
  • Android FFmpeg应用简析

    FFmpeg简介 FFmpeg是一个跨平台的自由软件 xff0c 可用于录制 转换和流式传输音频和视频 它包含了非常多的音频 视频编解码库 封装格式库以及工具库 它不仅支持各种常用的音视频格式 xff0c 而且支持一些非常罕见的格式 FFm
  • Android 机器学习模型的轻量级框架 TensorFlow Lite

    TensorFlow Lite 简介 TensorFlow Lite 是一款用于在移动设备 嵌入式设备和物联网设备上运行机器学习模型的轻量级框架 它是 TensorFlow 在移动领域的延伸 xff0c 旨在解决手机等设备上机器学习计算资源
  • 跨越屏幕:桌面PC端的多端开发框架介绍

    目前 xff0c 随着互联网和移动互联网的发展 xff0c 多端开发框架已经成为越来越多开发者更好的选择 主要有以下几个方面的前景 xff1a 跨平台开发需求不断增加 xff1a 由于不同平台和设备的差异性 xff0c 开发人员需要使用不同