• 几种跨平台解决方案:React Native、Kotlin、Flutter、Swift


    React Native

    avatar

    在 React 框架中,JSX 源码通过 React 框架最终渲染到了浏览器的真实 DOM 中,而在 React Native 框架中,JSX 源码通过 React Native 框架编译后,与Native原生的UI组件进行映射,用原生代替DOM元素来渲染,在UI渲染上非常接近Native App。

    优点:
    • 相比Xcode中原生代码需要较长时间的编译,React Native 采用热加载的即时编译方式
    • React Native 可以通过 JSBundle 即时更新 App。相比原来冗长的审核和上传过程,发布和测试新功能的效率大幅提高。
    • React Native摆脱了WebView的交互和性能问题,同时可以直接套用网页开发中的css布局机制。脱了 autolayout 和 frame 布局中繁琐的数学计算,更加直接简便。
    缺点:
    • 目前的React Native 官方文档中可以发现仍有部分组件和API都区分了Android 和 IOS 版本,即便是共享组件,也会有平台独享的函数。也就是说仍不能真正实现严格意义上的“一套代码,多平台使用”。
    • 动画性能差:React Native 在动画效率和性能的支持还存在一些问题,性能上不如原生Api。

    kotlin Multiplatform

    Netflix就是使用kotlin Multiplatform来编写的平台中立性业务逻辑,并通过Kotlin/Native将其编译为分别面向Android的Kotlin库和面向ios的原生通用框架。

    Flutter

    flutter基于Dart语言(个人感觉很不好用...)

    缺点:
    • flutter基本上是Android优先的开发环境,从底层开始就依赖Android的Material Design。如果ios的flutter出现错误,只能等待谷歌修复。
    • flutter的Skia渲染引擎可以让应用模仿原生的外观和体验,但并不会使用原生按钮、切换、滚动条、表视图或者其他界面和导航元素。
    • 此外,flutter的相关文档很少,我在学习的过程中,即使是按照官方文档敲写demo,也遇到了很多bug,只能慢慢的调试找问题所在。也就是说,如果要精通dart及flutter,成本是很高的。

    SwiftUI

    目前苹果也在推进自己的下一代声明开发技术:SwiftUI。虽不能支持Android应用,但恶意一次性支持所有苹果平台:iOS、iPadOS、macOS、watchOS和tvOS。

  • 相关阅读:
    使用respondsToSelector:来发现对象是否响应消息
    使用iskindofclass来发现对象是否是某类或其子类的实例
    集合set的使用
    字典的使用
    数组的使用
    对NSNumber的理解
    数组、字典和集合的定义
    强引用strong和弱引用weak的定义
    类工厂方法的定义
    POJ 2262 / UVa 543
  • 原文地址:https://www.cnblogs.com/chengl062/p/13949007.html
Copyright © 2020-2023  润新知