flutter历史的简单介绍

做混合的话Uniapp和Flutter我应该学哪个啊?

Uniapp目前比较成熟,而且用的是Vue语法,学习成本比较低,而且行业里面用的也比较广泛,而Flutter的话,学习成本略高,因为要学习新的语言,还有就是目前生态不是特别完备,等他再发展发展吧。黑马程序员官网有成套免费视频哦,有什么不懂的可以直接过去学习。您的采纳是对我成长的鞭策

在临泉等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作按需网站建设,公司网站建设,企业网站建设,高端网站设计,成都全网营销,外贸网站制作,临泉网站建设费用合理。

Flutter动态化方案调研

腾讯课堂14M

今日头条3M

闲鱼22M

百度贴吧13M

蚂蚁财富56.8M

百度网盘14M

手机淘宝15M

贝壳找房8M

由粗粒度小组件动态拼装出页面,Native端已经有很多成熟的框架,如天猫的Tangram。

开发语言:iOS、Android

适用场景:快速迭代的活动营销页面

优点:无侵入,更新简单

缺点:提前预埋,扩展性差,灵活性差

以webview作为容器的app,历史悠久,最早到2011年。

开发语言:HTML

适用场景:双端严格一致的银行类app,容器类的支付宝小程序等

优点:动态更新,跨平台

缺点:性能,加载速度

UI用Xml+JS表达,用Native View渲染。

开发语言:Xml+JS

适用场景:双端严格一致的银行类app,容器类的支付宝小程序等

优点:native组件,生态成熟

缺点:三方库crash,性能缺陷

UI用Dart表达,用Dart engine渲染。

Flutter官方不支持动态化。原因是Flutter在 Release 模式下构建的是 AOT 编译产物,在 Debug 模式下构建的是 JIT ,AOT 依赖的 Dart VM 和 JIT 并不一样, JIT Release 并不支持 iOS 设备。可行的方案是:AOT 需要一个编译后的 “Dart VM”。抽离一份 DartVM 独立编译,再以动态库的形式引入项目。

开发语言:Dart

适用场景:iOS、Android、Web、Desktop、Embed

优点:性能最佳

缺点:增大包体积 20MB+

大厂的主流方案。UI用JS表达,用Dart engine渲染。

开发语言:JS、类JS

适用场景:iOS、Android

优点:性能最佳

缺点:需要掌握JS、Dart两个语言和框架

大厂的主流方案。UI用Dart表达,用Dart engineX渲染。

开发语言:Dart

适用场景:iOS、Android

优点:性能最佳

缺点:需要改造Dart engine

1、 美团外卖Flutter动态化实践

2、 携程App 首页动态化探索

3、 Flutter 动态化在最右 App 中的实践

4、 Flutter 动态化热更新的思考与实践

5、 NOW直播Flutter动态搜索列表页实现

6、 Flutter动态化的方案对比及最佳实现-闲鱼

7、 基于JavaScript 的MXFlutter

Flutter获取的OverlayState来自哪里?

当在flutter中做一个全局的Toast,loading,Alert的时候,会使用到OverlayEntry,只要通过OverlayState.insert()就能展示在界面上。如此好用那OverlayState又是从哪来的呢?

首先,获取OverlayState可以直接调用OverlayState overlayState = Overlay.of(context);直接就拿context去找了:OverlayState result = context.findAncestorStateOfTypeOverlayState(); 

能找到?怎么就找到了呢

那看下Overlay的注释:

尽管您可以直接创建一个[Overlay],但最常见的是使用[WidgetsApp]或[MaterialApp]中的[Navigator]创建的。导航器使用其overlay来管理路由的视觉外观。

其中很关键的点在Navigator,那去找Navigator,顺便还找到了Route。

Navigator中一层结构就是Overlay。那看下Flutter中导航到底是怎么做的。

许多应用程序在其小部件层次结构的顶部附近都有一个导航器,以便使用[Overlay]来显示它们的逻辑历史,其中最近访问的页面可视化地位于较旧页面的顶部。通过使用此模式,导航器可以通过在覆盖图中移动小部件从一个页面可视地过渡到另一个页面。

既然Overlay从导航而来,那App中怎么就有导航呢?

Flutter创建的的时候,main里面的入口runApp(),在视图的最底层会写一个MaterialApp().

找到MaterialApp。

那就找在哪创建了Navigator。没找到,但是在return时用的是WidgetsApp,看下介绍。

WidgetsApp定义了基本的应用程序元素,但不依赖于Material库,也就是MaterialApp是对WidgetsApp的上层封装,为我们集成了Material元素。继续找WidgetsApp。

在build里面创建了Navigator。

那么流程就是:MaterialApp —— WidgetsApp —— Navigator。

Overlay.of(context)拿到了Navigator里面的OverlayState.

Flutter笔记三之Dart库文件的使用

一个 dart 文件就是一个库文件

每个 dart 文件默认导入了系统核心库 dart:core 其他库需手动导入:

import 'dart:系统库库名';

import 文件后可直接使用,默认导入一个库的所有变量和方法。

文件名后+ as +自定义名称,导入的库起的别名,同python

文件名后+ show +导入的变量或方法:只导入 show 后面的变量或方法

文件名后+ hide +隐藏的变量或方法:出 hide 后面的变量或方法,其他的变量和方法全部导入

export 公共的库文件的抽取

可以在pub.dev网站中查找第三方库。

然后即可引用使用

Flutter(67):Layout组件之ListBody

一个widget,它沿着一个给定的轴,顺序排列它的子元素

注意点:

最后这几个组件怎么使用看需求选择最适合的就行。

Flutter(5):基础组件之Row/Column

Flutter(33):Material组件之ListTile、RefreshIndicator、ListView、Divider

下一节:Layout组件之CustomMultiChildLayout

肚皮舞的起源传说

肚皮舞起源于生育与宗教

代表传说:女子祈祷舞——  “相传有一位身材绝佳的妙龄女子,婚后不能生育,来到神庙祈祷。她在神像前投足、扭腰、摆臀,好似舞蹈,祈求生育之神,能圆她的美梦。她那婀娜多姿的优美舞蹈,使在场的祭司们为之倾倒,即刻禀报了法老。后来将她的‘舞蹈’作为祭司舞蹈。”这种说法认为,东方舞蹈正是由这种舞蹈发展起来的。   印证——  肚皮舞舞者跳舞时要打着赤脚的传统,正印证了在古代肚皮舞是一种宗教仪式的说法,舞者赤脚正是要表示亲近自然,与大地保持最直接的联系,表现大自然与人类繁衍生命力的深远意境。  这种说法还有另一个典型例证——肚皮舞当中两个慢动作就是对妇女生产时腹部动律的模仿。并且有一种理论就是主张肚皮舞是起源于中东地区怀孕的妇女们为顺利身产所做的准备动作。  美国有一位民俗学家就记载了她在摩洛哥一个偏僻村落中亲眼目睹的一场惊心动魄的“舞蹈生育仪式”。她以惊异的笔触记载了当时的场面:一位摩洛哥妇女临盆分娩之际,村落中其他妇女在她的周围密密匝匝围成三圈,她们一边歌唱,一边翻滚着她们的腹部,并不时地把腹部用力地回拉,动作比我们现在肚皮舞动作中说的“flutter(拍打抖动)”更慢更强烈,她们一边重复着这些动作,一边把排列的圆圈顺时针移动……一个新的小生命诞生了,男子们雀跃了,妇女们仍然继续她们的歌唱和舞蹈,直至日落,这位民俗学家也感动得哭了。  生命如此神圣,如此珍贵,肚皮舞就是对生命的礼赞——这也是肚皮舞的原始精神所在。今天,当我们随着那仿佛来自洪荒远古的鼓点翩翩起舞时,是否能体会到这些许古老意蕴?

肚皮舞起源于宫廷与情欲 代表传说:莎乐美的故事——   莎乐美是古希律王的继女,她的母亲Herodias为杀死反对她和希律王婚姻的信徒约翰,让莎乐美给希律王跳七层纱之舞。 她身着七层薄纱在希律王面前翩翩起舞,然后随着音乐的节奏慢慢地依次退去身上的每一件纱衣,玉臂轻舒、舞步飘转……当最后一层轻纱从莎乐美晶莹无暇的身体上褪下,少女之美令希律王为之疯狂,王许给她一个愿望,哪怕是要巴比伦的一半国土,王也会应承。于是莎乐美按照母亲的指示提出了要国王把约翰的人头盛在盘子里呈献给她要求。  有一种说法认为,莎乐美所跳的“七重纱之舞”(Dance of the Seven Veils),就是肚皮舞的前身,“七重纱之舞”起源于古巴比伦神话——有一位战争与爱情女神名叫伊什塔尔(Ishtar),她也是大地女神,传说她是月亮的女儿,有着能令妖魔也为之倾倒的美艳容貌,为了追寻死去的情人塔木兹(Tammuz)下到地狱里,终于获得成功,回到了地上。传说这位女神从上天下到地狱时,每降下一重天、进一重门,便脱去一层纱衣,依次渐渐失却她的神性。可谓是为了爱情不顾一切,不禁让人想起了中国古典传奇中同是为爱情上天入地的白娘子,还有那位为情而亡,又为情重生的杜丽娘。七重纱之舞便是模仿伊什塔尔从天体降到地狱时那样,一次次地脱去纱衣,在这过程中,不断调动各种肢体语言,是一种十分具有官能刺激的张扬着情欲的舞蹈。

印证——  另一段历史传说也印证了肚皮舞起源于宫廷情欲的说法:在鄂图曼土耳其帝国时期,苏丹王朝的后宫是美女如云,拥有三千佳丽,于是,如何能赢得苏丹王的眷顾,集三千宠爱于一身,便成了后宫女眷们日思夜虑的事情。而据说苏丹王遴选佳丽的方法让宫女们用纱巾蒙上面部,仅仅裸露出腹部在苏丹王面前翩翩起舞,于是宫女们腹部技巧高超与否也成为了能否吸引王注意的一大因素。东方舞就是在这样的情况下在后宫逐渐流行起来,又由于宫女们大多是被买卖进宫的,按当时规定在七年合约期满后就可以出宫,于是再自然不过的,这些出宫的女眷们就把后宫中的舞蹈带到了民间,这种舞蹈渐渐成为了人们在聚会或节日中的娱乐表演形式,渐渐成为了人们生活中的一部分。真是“旧时王谢堂前燕,飞入寻常百姓家”呀。   这个传说也恰恰能解释为什么今天土耳其风格的肚皮舞无论在动作还是服装上都比其它风格的肚皮舞更为魅惑俏丽、热辣奔放,为什么土耳其肚皮舞有更多的地板动作。

总之,无论肚皮舞是否真的起源于宫廷,毋庸置疑的是, 肚皮舞的确曾经是阿拉伯世界中的宫廷舞蹈 ,也难怪有人会称肚皮舞是阿拉伯的芭蕾舞了,在地位上,的确是相当于17世纪法国宫廷的芭蕾舞。  今天爱跳肚皮舞的人们,是否记得几千年前的阿拉伯宫廷中那一个个倩影,是用尽了她们所有的爱在进行着每一个动作,是爱给了她们舞动的力量,在这个意义上,肚皮舞是对爱——这个永恒主题的表达。

肚皮舞有哪些特点?

肚皮舞是非常女性的舞蹈,肚皮舞其特色是,随着变化万千的快速节奏,摆动腹部、使劲的舞动臂部、胸部,这些动作,成为肚皮舞,牢不可破伝统舞技,肚皮舞必需在平滑的地板,赤足舞蹈,配合音乐,以极快速,错综复杂之感性肢体动作,快速的舞步,一如欧美的狐步舞般,交叉摇摆的舞姿,时而优雅、时而感性、妩媚娇柔,时而傲酷,神秘,肚皮舞迷人的特资,令人目不暇接。

肚皮舞当然可以无伴奏的独舞,充满浪漫的独特阿拉伯音乐肚皮舞更具动感,伴奏常见的乐器如乌德(UT)琴、耐笛(Ney)、地尔巴卡(Deblek)手鼓,扬琴山都尔等等,其中打击乐器的手鼓尤为重要,在舞者施展扭腰舞腹的绝活时,鼓的加入有相乘动感。

肚皮舞时亦结合其他的道具,如蛇、刀剑、面纱、蜡烛、火焰等等,这些道具的出现,可能受到古代肚皮舞和神秘的宗教仪式的影响。这些极戏戏化又神秘的表演方式,中东的一些国家,仍然尊循无误。尤其是错综复杂的蛇把戏,蛇像征男人和女人,雌雄同体蛇,非常诡异,充满了阿拉伯的神秘。

作为一种优美的身体艺术,肚皮舞通过骨盆,臀部,胸部和手臂的旋转以及令人眼花缭乱的胯部摇摆动作,塑造出优雅性感柔美的舞蹈语言,充分发挥出女性身体的阴柔之美。它是一种全身的运动,可以让你的腿部、腹部、肩膀以及颈部都得到充分的活动,从而提高身体的弹性和柔韧性。手臂的动作非常重要,它能表达出舞者的优雅和精巧。它不仅仅是一种运动,它也为心灵与身体建立了一种精神纽带。

肚皮舞 并非女性的专利

我们在拍摄肚皮舞者时,通常会选择那些穿着迷人的露腰装,做着令人眼花缭乱的胯部摇摆动作的女性肚皮舞演员……我们基本上不会去拍摄那些男性肚皮舞者。

肚皮舞,也就是西方人所熟知的东方舞蹈,是由阿拉伯民间舞蹈演变而来的。但这种民间舞蹈并不是女性的专利。

东方舞蹈家、历史学家Tarik Sultan向我们解释,“直到20世纪,肚皮舞才成为纯女性表演的舞蹈,在受到欧洲影响之前(17世纪晚期),东方男性表演者并不稀奇,而是非常常见。

尽管Sultan作为一位东方舞者取得了个人成功,他说他最大的挑战就是要开阔人们的眼界,让人们理解,他的表演并不是在模仿女性的表演。

Sultan收到越来越多的表演邀请,他说“我反对那种认为我是男人跳女人的舞蹈的观点,实际上我为人们提供了一个实实在在的文化的视角。有一次一位观众看过我的表演的接受程度非常好。”

Sultan有20年的表演和授课经历。住在纽约的他在许多著名的舞台上演出过,比如美国的林肯中心。

他承认作为一位男性东方舞者有时候找工作会有挑战,因为“人们要是不知道某样东西的存在就不会去找它。”

肚皮舞的风格有哪些?

肚皮舞的渊源

源于中东地区的肚皮舞,是世界上最古老的舞蹈形式之一。传说中是为了庆祝女人多产以及颂扬生命的神秘的一种娱乐形式。随着时间的推移和地域文化的交融,肚皮舞渐渐发展成为一种民间舞,在节日和欢庆场面经常可见。目前肚皮舞从中东蔓延到世界各国,不光是欧美各地热辣美眉的挚爱,也是中国、日本、韩国姑娘们的新宠。

主要的肚皮舞风格

埃及风格:内敛、含蓄的埃及味道,有宫廷舞蹈的优雅。动作幅度比较小,但是很强调对肌肉的控制。

土耳其风格:动作大胆、奔放,幅度很大,胯部的动作非常夸张,而且穿着比较暴露,很有视觉冲击力。

肚皮舞锻炼的重点是纤腰和瘦臂,但是如同每种有氧锻炼一样,有规律地长期坚持才会出效果。听着音乐,找对感觉,在节奏中释放热情。

肚皮舞初学者必知的六个误区

误区一、害羞、不敢跳,动作放不开。

这个是每个初学者第一道关,也是学习肚皮舞或者是其他舞种必须克服的最基本的问题。不管做什么事情,实践最重要,尤其是学习舞蹈,如果自己不去跳就不可能跳好。

误区二、不喜欢看着镜子跳。

有些人跳的非常沉醉,沉浸在自己的感觉中,自己跳的好坏完全不管。其实再好的舞者也应该有不断的改进,所以要在镜子中发现自己的问题,才能不断进步。所以,学习舞蹈的时候一定要对着镜子跳,这样,才可以及时的改进自己的不足。当然等到基本功好了的时候,舞蹈学扎实了的时候,就应该多去表演,多去比赛。锻炼自己,提高自己。

误区三、只追求技术,不追求感觉。只追求动作,忽视音乐。

这个是练到一定阶段之后,很多学员就容易犯的错误。不少学员练好了一个很难的动作,会非常有成就感,或者为了练习完整的成品舞,而忽视跳舞的感觉(也就是我们说的舞感)。

如果是这样的话,那我还是建议你去学健美操吧。记住一点,你是在跳舞,不是在玩杂技,或是跳健美操。每个舞蹈动作是离不开音乐的。跳肚皮舞就是应该听这音乐就能立马作出相应的.动作。身体应该随着音乐舞动,没有音乐的舞蹈是没有感染力的。练习的时候要用70%的精力去听音乐,剩下的30%交给身体。

误区四、掌握不了拍子和理解不了灵魂。

拍子(beat): 我们首先要理解音乐,拍子是很重要的,刚开始跳舞的同学老是跟不了拍子,每次出来的动作都会比音乐拍子快,这就导致了舞蹈和音乐没有关系,效果就是一盘散沙。练习很简单的,我们强调的是dance to the music 任何的舞蹈都要与音乐结合才行,在上课的时候前面我们会做准备运动,那个时候就是听音乐的时候了。

记住:要全身心的去听音乐的拍子和旋律,这样做的好处是让音乐给自己带来一个状态,与现实生活脱离的状态,完全进入音乐,让心情变舒畅!如何去跟好拍子,其实很简单,每一个准备运动的动作也是跟音乐节拍有关系的!每一个节拍都清晰明了的出现在我们的耳朵里,只是你有没有用心去听而已,在做每个准备动作的时候我们会听见音乐里有一个 “咚” “啪”, 常规音乐都是这样。

我们的动作就是跟着这两个点走的,无论多快无论多慢,这个定律都是不变的!有的同学说,我跟上了拍子的,其实我们用眼睛看到你的动作不是快了就是慢了!!原因是这样的:我们仔细听咚 啪 两拍,咚的时候是有一定的持续时间 啪 也是同样的道理,很多同学是咚还没有咚完就匆匆忙忙的进行了下一个动作,这就造成了抢拍,在练习的时候就要用慢歌来练习,我们的基训时间大多是慢歌,把音乐拍子的持续时间用耳朵听出来,慢慢习惯之后你的动作永远都不会脱离轨道,这样的话你就成功了一半了!所以动作不在多和花,只要你能把拍子跟好才能 dance to the music 再强调一点:没有拍子这个东西,再多的动作都是像浮云一般寂寞!!再简单的动作能把拍子跟好的话,一切都是锦上添花!

灵魂(soul) :我们把拍子练习好之后,每个动作跳出来之后都很好看了,但是缺乏生命。如何把生命力注入到舞蹈中呢?其实练习起来也是很简单的。第一:也是在准备运动中去练习,音乐放出来之后用全身心去体会它,体会成你听到的感觉是什么,通俗点说,音乐可让人可惜可悲浮想连篇,同样的道理你听到这首歌之后是什么感觉,这就称为舞感!把基本的感觉和心情再结合动作去释放自己的内心活动,你的动作就会有生命力了,记住:首先要感动自己,然后看你跳舞的人就会被你感动!

所以一个好的 dancer 在跳舞的时候是很忘我的。基础训练的歌曲是最能让人感觉到舒服的,同学们可以感受歌曲里的东西,当然每个人的感受是不同的,比如一个音乐放出来,有的人感觉很积极、有一种冲动在里面,而有的人感受是:想起以前分手的情景,这就是对音乐感情的理解。一个好的dancer 是能够把他所有理解到的和联想到的东西全部用舞蹈表现出来的。真正能做到这一点的不是好的dancer了,而是艺术家了。舞者的高低不是看谁的动作好看,而是看谁能把音乐表现的更多,更完美! 当然要表现音乐感情就需要很好的基本功还有对音乐丰富的理解拉!

误区五、不坚持练习,不注重基础。

很多初学者会常抱怨,学了的动作,没有过多久就忘记了,或者抱怨自己记性不好,根本就没法学。其实,这只能说明你练习的还不够多,所以,一定要坚持练习。要真正把肚皮舞学好,良好的基础是必不可少的。初学者,往往会最强调老师不要做基础训练直接教动作,这样就忽视了基础的学习,觉得基训很枯燥。其实,要把任何舞蹈学好就应该能耐得住,要能坚持,只有把最基础的做好,才能不断进步。

误区六、为了什么而跳舞?出路是什么?

首先想说跳舞是跳舞,演出是演出,比赛是比赛,不一样.演出是为了观众,没有观众就不能称之为演出。观众是演出的重要组成部分,别人花钱请你演出,给点起码的职业道德。能感染观众,换来观众的共鸣、认可和掌声,就是好的演出。比赛就多了,有人说为了锻炼自己,有人为了长世面,有人为了交流学习,有人为了证明自己!这些都没错。哪怕你光明正大的说,我就是为了赢那奖金,也没错。但是不管为了什么,都放平心态尽力去做,做完后你就会发现,之前想的什么都不重要了,享受过程的感觉比什么都棒!


名称栏目:flutter历史的简单介绍
标题来源:http://azwzsj.com/article/phejdo.html