騰訊 TDF 即將開源 Kuikly 跨端框架,Kotlin 支持全平臺

今天,在騰訊的 Shiply 平臺看 Flutter 動態化自研框架 Conch 時,在側邊欄看到了有「跨端開發框架」的介紹,點開發現有兩個產品:

  • Hippy:面向前端技術棧的跨端開發框架,Web原生開發體驗,支持 React 和 Vue 開發框架。
  • Kuikly:面向終端技術棧的跨端開發框架,完全基于kotlin語言開發,原生的性能和體驗。

關于 Hippy 在之前就大概了解過,屬于 Web 開發體驗的開源的跨端開發框架,但是 Kuikly 又是什么?

通過查找,在 openhippy 的官網可以看到,原來 Kuikly 是基于 Kotlin KMM(Kotlin Multiplatform Mobile) 技術實現的客戶端友好跨端方案,可以使用 Kotlin 原生開發語言創建 Android 、iOS、、H5、小程序和 PC 應用,屬于 TDF (Tencent Device-oriented Framework)的全新跨平臺方案。

而從目前已有的產品介紹看,Kuikly 是采用類 Compose 和 SwiftUI 的聲明式+響應式的開發模式,框架輸出的產物有:

  • Android 產物為 AAR/Dex
  • iOS 產物為 .framework/JS

運行時會映射到系統原生控件渲染,跟系統原生控件體驗完全一致,最重要的是,Android 平臺實現了基于dex 動態下發支持,iOS平臺基于 JS 動態下發,也就是完全支持熱更新,動態話能力可以依托騰訊自家的 Shiply 。

看起來為了實現動態,在 iOS 平臺使用的是 Kotlin/JS 。

同時,App 極度的輕量化,使用 Kuikly 的安裝包增量僅 300K,運行時額外的內存占用幾乎為零,從這點看大小和內存基本不會是 Kuikly 的門檻。

在查閱資料后才發現,2023 年的時候,「騰訊技術工程」團隊就在知乎分享過 Kuikly 的實現,Kuikly(Kotlin UI Kit,發音同 quickly),項目就是使用 Kotlin 開發了自己的一套聲明式 UI 框架,同時映射到系統原生控件做渲染,最終用 KMM(Kotlin Multiplatform Mobile)實現跨端。

而對于 Kuikly ,它從業務代碼、UI 框架、布局層以及渲染層全部使用 Kotlin 語言(iOS 渲染層是 OC),其中Android 端通過 KMM 編譯成 SO 文件,而,iOS 端可以編譯成 JS,不過那也是兩年前的情況。

可以看到當時騰訊幾乎是用了自己的 UI 框架實現而非直接使用了 Compose MultiPlatform,不知道現在是否還是如此?

而從現在看來,依托 KMP 項目的成熟,目前 Kuikly 很大可能已經支持可 Kotlin Native? 并且從預告看,已經支持了鴻蒙平臺,那么大概率不是 Kotlin/JS 就是 Kotlin Native

如果是為了動態化,可能還是 Kotlin/JS 的概率大一些?

如下圖所示,是過去 Kuikly 過去在知乎發過的代碼編寫情況,看起來基本上有著濃濃的 Compose 的熟悉味道:

這時候可能路過的 iOS 表示:為什么大廠弄跨平臺甚至直至鴻蒙都是 Kotlin 不是 Swift

而 Kuikly 表示,其核心的設計思路是讓 native 的渲染層盡量的薄,所以他們把布局和復雜 UI 控件封裝都放在了跨端的 Kotlin 側,native 層只有對原生基礎控件的簡單映射,這樣也能盡量減少因為兩端代碼不一致導致的功能和體驗不一致問題。

這是兩年前 Kuikly 提供的數據對比,基本和原始開發保持一致:

另外,通過代碼量對比,騰訊技術工程團隊表示:同一個頁面使用 Kotlin 和 OC 開發兩端的代碼量,是使用 Kuikly 跨端開發的代碼量的 3 倍,同時騰訊還發布了 Kuikly 與類 RN 和 Flutter 的對比:

那么 2025 年的今天,Kuikly 是否還是使用全自研發的 UI 框層?還是已經接入 Compose MultiPlatform ? 從渲染實現上考慮,看起來還是映射的可能性更大?畢竟還有考慮動態化支持,具體還是要等項目正式開源后才知道了。

  • 文檔可見:https://shiply.tds.qq.com/docs/doc?id=4012359584

  • Kuikly 入口可見:https://openhippy.com/

  • 2023 原文可見:https://zhuanlan.zhihu.com/p/622485633

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72492.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL AND OR 操作符詳解

SQL AND & OR 操作符詳解 在SQL(結構化查詢語言)中,AND 和 OR 是兩種非常重要的邏輯操作符,它們用于在查詢條件中組合多個條件。理解并正確使用這些操作符對于編寫有效的SQL查詢至關重要。 引言 在處理數據庫查詢時,我們常常需要根據多個條件來篩選數據。AND 和 OR…

nginx accesslog 打印自定義header

比如我在請求的header中添加了一個path-match-type,那我現在nginx的accesslog 中打印出來,應該如何配置呢? rootnginx-59f5d66df6-jw5k8:/# cat /etc/nginx/nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/erro…

響應式布局的設計規范

響應式設計(Responsive Design) 是一種 web 設計技術,旨在使網頁在不同的設備和屏幕尺寸上都有良好的顯示效果。響應式設計的核心思想是網頁的布局能夠根據設備的屏幕寬度、分辨率以及其他特性自動調整,使其適應桌面、平板和手機等…

說一下redis事務底層原理

Redis事務 1. 事務的基本流程 Redis 事務通過 MULTI、EXEC、WATCH 等命令實現,底層原理可以分為以下幾個步驟: (1) MULTI 命令 當客戶端發送 MULTI 命令時,Redis 會將客戶端標記為“事務模式”。在事務模式下,客戶端發送的所有…

【我的Android進階之旅】如何使用NanoHttpd在Android端快速部署一個HTTP服務器?

文章目錄 開篇:程序員的"摸魚神器"?一、為什么選擇NanoHttpd?二、五分鐘極速上車指南2.1 ? 第一步:引入依賴的哲學2.2 ? 第二步:創建服務器類:繼承大法好2.3 ? 第三步:啟動服務的儀式感三、高級玩法:讓服務器不再單調3.1 ?? 場景1:變身文件服務器3.2 ?…

播放器系列3——解碼

FFmpeg解碼過程詳解 解碼流程 #mermaid-svg-FGu92IEtteOdO2tO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FGu92IEtteOdO2tO .error-icon{fill:#552222;}#mermaid-svg-FGu92IEtteOdO2tO .error-text{fill:#5522…

SimPO算法-Simple Preference Optimizationwith a Reference-Free Reward

偏好優化(preference optimization )算法大全: 本篇介紹下SimPO SimPO(Simple Preference Optimization)的設計核心在于簡化偏好優化過程,同時提升模型的表現。其設計主要圍繞兩個關鍵點展開:長…

AIGC時代:如何快速搞定Spring Boot+Vue全棧開發

文章目錄 一、Spring Boot基礎二、Vue.js基礎三、Spring Boot與Vue.js集成四、性能優化與最佳實踐《快速搞定Spring BootVue全棧開發》 內容簡介作者簡介目錄前言/序言本書內容本書特點讀者對象 隨著人工智能生成內容(AIGC)技術的迅速發展,…

探秘基帶算法:從原理到5G時代的通信變革【六】CRC 校驗

文章目錄 2.5 CRC 校驗2.5.1 前言2.5.2 CRC算法簡介2.5.3 CRC計算的詳細過程2.5.4 CRC校驗的兩種方法詳解**分離比較法****整體運算法****不同位出錯與余數的關系****總結** 2.5.5 CRC計算的C實現及工具介紹**C實現CRC計算****CRC計算工具推薦** **2.5.6 總結:CRC校…

AUTOSAR微控制器抽象層(MCAL)詳解及綜合實例

目錄 1. 微控制器抽象層(MCAL)概述 1.1 MCAL的核心功能 1.2 MCAL的模塊劃分 1.3 MCAL的工作流程 2. MCAL的詳細功能解析 2.1 微控制器驅動 2.1.1 時鐘配置 2.1.2 電源管理 2.1.3 實例:時鐘配置 2.2 通信驅動 2.2.1 CAN驅動 2.2.2 實例:CAN通信的實現 2.3 I/O驅…

探究高空視頻全景AR技術的實現原理

1. 引言 筆者認為現階段AR技術的應用是還是比較坑爹的,大都是噱頭多但是實用的成分少,拿出來做做DEMO是可以,但是難以在實際的項目中落地產生實際的經濟價值。一方面是很難在業務上難以找到合適的應用場景(可能管線相關的項目算一…

深度解析 | 2025 AI新突破,物理信息神經網絡(PINN):Nature級頂刊的「科研加速器」,70份源碼論文速取!

🔥 為什么全球頂尖實驗室都在押注PINN? 過去一年,物理信息神經網絡(PINN,Physics-Informed Neural Networks)以「現象級」姿態席卷科研圈:不僅在NeurIPS、ICML等頂會橫掃15%相關論文&#xff0c…

0基礎學前端---品優購項目Day14

0基礎學前端—品優購項目Day14 視頻參考:B站Pink老師 本節重點:all 項目鏈接:完整的項目已放到 品優購完整項目 大家可以自行下載 強調內容 這里主要強調兩個知識點: (1) 網站TDK三個標簽SEO優化 (2) logo SEO優化 網站TDK三個…

LeetCode熱題100JS(37/100)第七天|排序鏈表|合并K個升序鏈表|LRU緩存|二叉樹的中序遍歷|二叉樹的最大深度|對稱二叉樹

148. 排序鏈表 題目鏈接:???????148. 排序鏈表 難度:中等 刷題狀態:1刷 新知識: - dic.reduceRight((t,c)>(c.nextt,c),null) 方法從數組的末尾開始執行 解題過程 思考 示例 1: 輸入:head […

課程2. 機器學習方法論

課程2. 機器學習方法論 訓練算法并評估其質量將樣本分成訓練和測試。分層 交叉驗證方法sklearn 接口算法模型訓練模型的應用質量評估 數據預處理標準縮放Violinplot 數據集使用模型Pipeline 在上一講中,我們討論了機器學習專家面臨的挑戰。無論解決的問題類型和解決…

六足仿生機器人地形自適應步態規劃研究

六足仿生機器人地形自適應步態規劃研究 第1章 緒論第2章 機器人系統建模第3章 地形感知與建模第4章 自適應步態生成算法第5章 動力學仿真與實驗第6章 驅動代碼設計與實現源碼&文檔鏈接 第1章 緒論 1.1 研究背景與意義 1.2 國內外研究現狀 1.2.1 多足機器人步態規劃 1.2.2 …

mysql表分區

本文簡述了mysql表分區的作用和特點,又演示了mysql表分區的創建過程,詳細演示了指定不同分區目錄時的處理辦法。由于表分區對crud操作是透明的,對于普通開發同學其實不用過多關注,但是本著學習的態度,在分庫分表等高大…

Nessus安裝

Nessus:https://pan.quark.cn/s/f5fb09b6d4fb 1.軟件安裝 點擊安裝,剩下的下一步即可。 直接下一步安裝即可 2.Web端安裝 會彈出一個web窗口 開始初始化 創建用戶 開始初始化 3.Cracker 會彈一個黑窗口 運行完,回車即可。訪問https://loc…

26-小迪安全-模塊引用,mvc框架,渲染,數據聯動0-rce安全

先創建一個新聞需要的庫 這樣id值可以逐級遞增 然后隨便寫個值,讓他輸出一下看看 模板引入 但是這樣不夠美觀,這就涉及到了引入html模板 模板引入是html有一個的地方值可以通過php代碼去傳入過去,其他的html界面直接調用,這樣頁…

第十三屆藍橋杯大賽軟件賽決賽C/C++ 大學 B 組

A 【2022——暴力DP / 優雅背包】-CSDN博客 B 【鐘表——類日期問題】-CSDN博客 C 【卡牌——二分】-CSDN博客 D 【最大數字——DFS】-CSDN博客 E 【出差——Dijkstra】-CSDN博客 F 【費用報銷——01背包】-CSDN博客 G 【故障——條件概率】-CSDN博客 H 【機房—…