OpenKuiklyIOSRender 2.0.0

OpenKuiklyIOSRender 2.0.0

Maintained by arnonchen.



  • By
  • Kuikly

Kuikly Logo

English | 简体中文 | Homepage

Introduction

Kuikly is a pure native cross-platform UI framework based on Kotlin. Utilizing Kotlin Multiplatform technology with a custom DSL, it enables developers to build UI interfaces in a simple, declarative manner that runs across multiple platforms. Currently supported platforms:

  • Android
  • iOS
  • HarmonyOS
  • Web
  • Mini Programs

As a pioneer in KMP technology for cross-platform solutions, Kuikly was initially incubated by the QQ team and further developed through collaboration with multiple Tencent teams. It aims to provide client-side developers with a "write once, run anywhere" framework that is extremely developer-friendly, dynamically flexible, and delivers high performance across all platforms. Currently, Kuikly has been successfully implemented in products including QQ, QQ Music, QQ Browser, and Tencent News.

Key Features

  • Cross-platform: Kotlin-based implementation ensuring consistent operation across multiple platforms - one codebase, five platforms
  • Native performance: Generates platform-native binaries (.aar/.framework)
  • Native development experience: Native UI rendering, native toolchain support, Kotlin as primary language
  • Lightweight: Minimal SDK footprint (AOT mode: ~300KB for Android, ~1.2MB for iOS)
  • Dynamic capability: Supports compilation into dynamic deliverables
  • Multiple paradigms: Supports both declarative & traditional imperative development approaches

Project Structure

.
├── core                    # Cross-platform module implementing core capabilities like responsive UI, layout algorithms, Bridge communication, etc.
  ├── src
    ├──	commanMain            # Shared cross-platform code, defining cross-platform interfaces
    ├── androidMain           # Android platform implementation (outputs aar)
    ├── jvmMain               # Generic JVM platform code (no Android APIs, outputs jar)
    ├── iosMain               # iOS platform implementation (outputs framework)
├── core-render-android    # Android platform renderer module
├── core-render-ios        # iOS platform renderer module
├── core-annotations       # Annotations module, defining business annotations like @Page
├── core-ksp               # Annotation processing module, generates Core entry files
├── buildSrc               # Build scripts for compilation, packaging, and artifact splitting
├── demo                   # DSL example code
├── androidApp             # Android host shell project
└── iosApp                 # iOS host shell project

System Requirements

  • iOS 12.0+
  • Android 5.0+
  • HarmonyOS Next 5.0.0(12)+
  • Kotlin 1.3.10+

Getting Started

Building from Source

Environment Setup

Refer to Environment Configuration

Running Android App

Ensure environment preparation is complete before building:

  1. Open KuiklyUI root directory in Android Studio and sync project
  2. Select androidApp configuration, then Run 'androidApp'

Running iOS App

Ensure environment preparation is complete before building:

  1. Navigate to iosApp directory

  2. Execute pod install --repo-update

  3. Open KuiklyUI root directory in Android Studio and sync project

  4. Select iOSApp configuration, then Run 'iOSApp'

    Alternatively, open KuiklyUI/iosApp in Xcode and Run

Kotlin Version Support

The KuiklyUI directory contains Gradle configurations for various Kotlin versions:

Naming convention: x.x.xx.gradle.kts (default uses Kotlin 1.7.20)

Test publishing scripts for each version are available as x.x.xx_test_publish.sh for building local artifacts.

Note: Kotlin 1.3.10/1.4.20 require JDK11

After successful build on any platform, you can modify Core, Render, and Demo to experience Kuikly development.

Roadmap

Roadmap (2025)

Contribution Guidelines

We welcome all developers to submit issues or MRs for Kuikly. Please review our Contribution Guide before contributing.

Code of Conduct

All project participants are expected to adhere to our Code of Conduct. Participation constitutes agreement to these terms.

FAQs

Kuikly Q&A

Contributors

Kuikly is made possible through the efforts of our core team members and contributors.

  • Special thanks to tom(邱良雄) kam(林锦涛) watson(金盎) for their outstanding contributions in taking Kuikly from 0 to 1.
  • We also extend our gratitude to the core team members for their ongoing contributions to the continuous improvement of Kuikly:
    tom kam watson rocky jonas ruifan pel layen bird zealot zhenhua vinney xuanxi arnon alexa allens

Join the Community

For questions or suggestions, please submit via GitHub issues or scan the QR code below to join our WeChat user group.

Kuikly Logo