Flutter开发(0)—— 认识各种跨平台框架

移动App分类

  • Web apps:指通过网络浏览器通过网络(如Internet)访问的应用程序。
  • Progressive web apps (WPA):指那些使用指定技术和标准模式来开发的web应用,这将同时赋予它们web应用和原生应用的特性。
  • Native apps:以特定编程语言针对特定设备平台(iOS或Android)构建的软件应用程序。如Android是用Java/Kotlin编写的,iOS是用OC/Swift编写的。
  • Hybrid apps:即Web apps和Native apps的结合,故称混合App。

Web apps

Web应用程序与网站有何不同?
差异是主观的,但是大多数人都同意,网站通常仅是信息性的,而Web应用程序提供附加的功能和交互性.
例如,维基百科是一个网站,它提供信息;Facebook是一个更具交互性的网络应用程序。

Progressive web apps

直到最近,Web应用程序还缺少本机应用程序的功能,例如发送推送通知,脱机工作以及在主屏幕上加载的功能。互联网主要由静态网页组成。
但是,浏览器和Web技术已得到改进-Web应用程序现在可以利用所有这些功能。
利用这些功能的应用程序称为渐进式Web应用程序(PWA)。

Native apps

与主要使用Javascript编写的Web应用程序不同,原生应用程序是使用为其构建平台所接受的语言编写的应用程序。
例如,使用Swift或Objective-C编写原生iOS应用程序,使用Java或Kotlin编写原生Android应用程序。
苹果和谷歌为应用程序开发人员提供了他们自己的开发工具,界面元素和标准化的SDK——XcodeAndroid Studio

Hybrid apps

混合应用程序使用混合框架将web网站嵌入本机应用程序中。
这允许使用Web技术进行开发(并可能直接从现有的移动网站复制代码),同时还保留了本机应用程序的某些优势(例如,直接访问设备硬件,脱机操作,应用程序商店可见性)。
混合应用程序框架包括 Apache CordovaElectronFlutterHaxeReact NativeXamarin等。

各种跨平台框架

我们将讨论5个Hybrid apps开发平台:FlutterReact NativeNativeScriptXamarinIonic

本机和跨平台之间的区别

  • 本机应用程序使用平台的技术/语言,即iOS的Objective C或Swift,以及Android的Java或Kotlin。由于本机应用程序充分利用了基础平台,因此它们可提供最佳性能和用户体验。
  • 跨平台应用程序使用不同的语言(不同于OS语言)编写,并在运行时呈现本机应用程序体验。

跨平台应用程序的优点是可以使用单个代码库进行开发,从而节省了大量时间,精力和成本。您可以利用某些最受欢迎的编码语言,而无需学习Swift,Objective C,Java或Kotlin。与本机应用程序相比,这些应用程序在性能上有些欠缺,但是开发的简便性大大超过了性能上的差异。
两种跨平台框架方法,即“编译为本机”和“ Webview包装器”。

编译为本机
该应用程序是用单个代码库开发的。然后,框架将代码库编译为本地iOS或Android。
在目标平台中,仅代码的UI组件会转换为等效的本机UI组件。

编译为本机平台 编程语言 维护者
Flutter Dart (similar to JavaScript, custom language by Google) Google (open source)
React Native JavaScript Facebook (open source)
NativeScript TypeScript Progress (open source)
Xamarin C# (Dot Net) Microsoft (open source)

Webview包装器
应用程序代码被包装在Web视图中,并且在没有浏览器栏的情况下显示为审阅“本机”应用程序。因此,与“编译为本机”不同,不进行任何代码转换。
应用程序检测设备正在运行的操作系统,并且在浏览器中呈现应用程序时,UI代码使用CSS,Sass等模仿底层操作系统的UI外观。
而且,“ Webview”框架可以访问的设备硬件功能要少得多。但是Ionic使用Cordova桥和电容器包来利用本机设备功能。

Webview包装平台 编程语言 维护者
Ionic JavaScript/HTML/CSS Ionic (open source)
Apache Cordova JavaScript/HTML/CSS Apache (open source)
PhoneGap JavaScript/HTML/CSS Adobe (PhoneGap is Adobe’s commercial version of Cordova)

各平台GitHub stars

截止2021.03.10

Flutter React Native Ionic NativeScript Xamarin
Stars 116k 93.8k 43.2k 19.8k 2k

结语

生命有限,接下来我们只挑选Flutter和React Native这两个跨平台框架进行讨论。
见开篇占位图。

引用
Native Apps, Web Apps or Hybrid Apps? What’s the Difference?
React Native vs Flutter vs Ionic vs Xamarin vs NativeScript
Web application

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,273评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,905评论 2 374
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,281评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,817评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,690评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,491评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,886评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,513评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,810评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,839评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,642评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,455评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,901评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,091评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,381评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,895评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,104评论 2 338

推荐阅读更多精彩内容