前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )

【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )

作者头像
韩曙亮
发布2023-03-29 09:12:06
1.6K0
发布2023-03-29 09:12:06
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、Native 应用


原生应用开发 : Android / iOS , 各自开发本平台的应用 ;

Android 使用 Android Studio 开发环境 , Java / Kotlin / C / C++ 语言 , 开发 Android 平台的应用 ;

iOS 使用 Xcode 开发环境 , Objective-C , Swift 语言 , 开发 iOS 平台应用 ;

每个平台开发出的应用只能在特定平台上运行 ;

原生应用的外观渲染 , 运行性能是最好的 , 用户体验最好 , 不差钱的话 , 一般开发原生应用 ;

优点 :

  • 性能流畅
  • 可访问本地资源 , 如数据库 , SP
  • 可访问硬件 , 如 蓝牙 , 摄像头 , 传感器

缺点 :

  • 成本高 , 需要 Android / iOS 两个团队开发
  • 版本发布慢 , 更新版本成本高 , 用户可能会拒绝更新版本
  • 上架需要审核 , Google Play , App Store

二、Web 应用


Web 应用使用的是 WebView / 浏览器 在 Android / iOS 手机中展示网页 , 如 PhoneGap 技术 , 该技术属于网页的前端开发 , 会绘制渲染效率受 WebView 或 浏览器内核 限制 ;

开发使用的技术就是网页前端相关技术 , JavaScript + HTML5 + CSS ;

写出移动端的页面在浏览器 / WebView 上运行 ;

浏览器 与 WebView 性能不是很高 , 优化到极限 , 也比不上 Native 开发的运行速度 ; Web 应用没有运行在操作系统上 , 而是运行在浏览器上 , 性能会很低 , 用户体验很差 ;

Web 应用无法访问原生资源 , 如 蓝牙 , 摄像头 , 传感器 , 日历 , GPS , NFC 等等 , 也无法调用 JNI 层的 C / C++ 相关高性能功能 , 如高性能音频 AAudio , OpenGL , OpenSL 等 ; 功能上有很大的局限性 ;

优点 :

  • 成本低 , 只需要一个前端团队
  • 更新快 , 更新应用 , 只需要在后台服务器 ( Tomcat ) 部署最新程序即可 , 与发布网站原理一样 , 不需要经过用户手动安装
  • 跨平台 , 开发后可以在 Android , iOS , Windows , Linux , Mac , 嵌入式设备 , 等有浏览器的设备上运行

缺点 :

  • 性能低 , 受浏览器 / WebView 性能限制
  • 资源在服务器 , 受网络限制
  • 无法访问原生设备 , 如摄像头 , 蓝牙 , 传感器 等
  • 无法访问本地文件 , 如数据库 , SD 卡 , SP 等

三、Hybrid 应用


混合应用 , Hybrid App , 一部分是原生应用 , 一部分是 Web 应用 ;

综合 Web 应用 和 原生应用的优点 ,

  • Web 应用容易开发 , 跨平台 ,
  • 原生应用性能高 , 可以调用 蓝牙 , 摄像头等 原生设备 ;

可以综合 原生应用 与 Web 应用的优点 ;

四、ReactNative 应用


React Native 可以调用系统的原生控件 , 这种性能就比调用 WebView 或 浏览器性能高 ; 使用 JavaScript 写出代码 , 编译时 , 编译成 Android / iOS 的原生组件 , 不同平台的原生组件表现出来是有差异的 , 有差异就需要进行兼容处理 ;

Native 原生组件需要与 JS 进行通信 , 如果通信非常频繁 , 对性能消耗很大 ;

貌似快凉了 ; 先挂着 , 有时间学一下 ;

五、Flutter 应用


Flutter 特点 : 使用了跨平台的绘制引擎 Skia , 可以在不同的平台 , 生成表现相同的程序 , 各个平台展示效果基本没有差异 , 不需要进行兼容处理 ;

Flutter 的渲染性能很高 , 同时 Flutter 不用进行跨层通信 , 可以直接操作 UI 层 ;

Dart 语言既操作程序的代码逻辑 , 又操作 UI 渲染显示 , 不涉及到跨层通信 , 因此没有通信上的资源消耗 ;

尽快刷完 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Native 应用
  • 二、Web 应用
  • 三、Hybrid 应用
  • 四、ReactNative 应用
  • 五、Flutter 应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档