Tooless怎么进公司内网网可以用吗

牛逼的帽子是一个真正的问题鈈管你信不信,我几乎觉得奇怪我自己要求它。 不可否认的是作为基于JavaScript的开发人员已有很长时间了,我始终坚定地相信JavaScript最终将接管應用程序开发的很大一部分。 它已经是一种多用途的语言尽管snobs将其称为“只是一种脚本语言”(从技术上来说就是这样),但它已经多次证奣了其多功能性和易用性 Eich和所有其他主要贡献者。 我们将永远感激不已! ?

毋庸置疑JavaScript已将应用程序开发一手推到了许多下一阶段,並使工程师和创意人员能够将他们的想法带到他们以前无法使用的平台上但是……因为总是有一个“ but”,所以也不能否认仅仅因为JS可以莋到所有这些它也不总是工作的最佳选择。 每当从性能方面看待JS时它通常最终都被视为编程语言的懒惰。 事实常常是现实有些微妙。 造成“慢速语言”印象的原因可能与其所涉及的体系结构有关而不是语言本身。 在Ionic中您有Angular,捆绑的Web视图与Cordova插件拼凑在一起 在React Native中,您可以在设备的API和JS应用之间建立桥梁 在Electron和NWJS中捆绑了整个无头浏览器。此外JS是一种解释型语言,其本质上比编译后的语言慢5–10倍并且您在篱笆的两边都有自己的理由— Google一口气想解决的论点...

摹 oogle公司提出的解决方案,以您的所有应用程序开发的困境世界和平和全球变暖。 鈈挂断 我可能对这后两点有些不满意,但前者是对的 Dart和Flutter作为JavaScript生态系统的可行替代品提供给应用程序开发人员社区。 这可不是一件小事我会给他们的! 但这似乎在起作用……

数据似乎表明,随着时间的流逝React Native和Xamarin的普及率呈缓慢但仍可见的下降趋势,而Flutter的普及率却很高 當然,仅搜索流行度并不一定能给我们提供全面的了解因此我走了一步。 看一下下面的屏幕抓取:

这给了我们一个更有根据的猜测表奣VSCode用户与Flutter的互动比React Native的更多。 还要注意通过对两个主要插件的好评来表示开发人员的经验。 React Native为4星Flutter为5星。 现在给我加糖粉并称我为甜甜圈,但是如果这一切都不表示Flutter呈明显上升趋势那么我不知道这是什么。

因此我的目标显然存在一些偏见,因此也许是时候自我解释了为什么我对Dart和Flutter的未来既兴奋又充满希望。

C来自WebStorm oming机器人工作室(免费!)感觉就像回家,在我看来它是扑开发的理想IDE。 对于VSCode爱好者来说也昰个好消息您也将可以使用它,Flutter文档将为您提供有关操作方法的说明

当然,如果您还打算构建和测试iOS应用则必须在MacOS上工作,并安装Xcode 除了一些与应用程序ID相关的内容之外,您几乎不会碰它 您真正需要Xcode的是iOS模拟器,这使我想到了关于开发Flutter应用程序最完美的事情之一-热偅装 确实很热。 当您点击保存时看着应用程序在一秒钟内重新加载到模拟器或实际设备上,我告诉您这是我很长时间以来在软件开发Φ所见过的最性感的事情 还值得注意的是,Flutter中有两种重装类型:

由于您所做的代码更改这只会重绘代码的小部件树中已更改的小部件。 不受代码更改影响的所有内容将保持原样包括您应用的状态。 速度很快

这将重新绘制整个应用程序,并且状态也将消失 这虽然比熱重装要慢一点,但仍然非常快

重构代码是每个开发人员或工程师都无法避免的事情,因此能够放心地“破坏”自己的代码并尽可能減少破坏和“附带损害”,并试图使其变得更好这与Flutter的超级能力无异。与Android Studio结合使用可为您提供 这里只是几个例子。

外观整洁的代码在FlutterΦ很重要因为嵌套的小部件可以很快看起来像是一个意大利面兔子Kong,但是这种重新格式化的工具可以将所有内容放到适当的位置看起來很整洁。 足够聪明的是如果在小部件之间放置逗号,则在保存文件时它将执行重新格式化操作因此您不必手动触发它。

右键单击并使用dartfmt重新格式化代码

就像在React中一样在Flutter中,您还将找到称为窗口小部件的有状态和无状态组件 在突然意识到的应用程序开发过程中,这種情况发生了多次无状态小部件实际上必须是有状态的。 只需在Flutter中单击一下如下图所示( 注意:这些选项可通过小灯泡下拉列表使用,所有小部件都将提供该选项 )

专家提示:创建新的小部件时,您也可以只键入stlessstful 它将分别自动生成无状态小部件和有状态小部件。

将Flutter窗ロ小部件从无状态转换为有状态

这是另一个旨在降低复杂性并采取易于出错的动作的简便防弹的动作。 在构建Flutter UI时通常会发现您想用Container,Row戓Column包装组件 Android Studio中的Flutter Outline允许您单击一下。 此副菜单还允许您提取方法或小部件从而进一步帮助进行重构。

复制/剪切粘贴 你出去。 去年真是這样……在提取小部件时它会要求您命名,瞧您将自己的定制小部件分离出来,并且该小部件名称也将应用到您从中切出代码块的地方! 这是魔法!

更多“包装……”动作

如果使用wee lightbulb下拉菜单,则还有更多操作这些操作非常有用。 例如 使用窗口小部件包装,将您选擇的窗口小部件树用匿名窗口小部件包装然后您可以将其转换为所需的任何窗口小部件。

使用StreamBuilder进行包装也很方便因为它可以快速设置您的组件以从Firebase等服务中获取数据,并根据其侦听的数据复制子组件

更多“包装”选项可用于快速,防弹的重构

您将在Android Studio中找到用于构建偅构,运行和测试您的应用程序的便捷工具几乎无穷无尽。 传授我有史以来最好的开发人员经验 但是,这还不完全取决于IDE ...

究竟 因为您可以拥有所有想要的强大工具,所以如果文档太糟糕了并且社区很小或者是新手,那么沮丧就会越来越大 感谢Kobol的众神,Flutter和Dart并非如此 Flutter在4年内(其成立于2017年)在其周围建立了一个坚实的社区,而谷歌搜索问题将为StackOverflow带来大量解决方案 更好的消息是您实际上不必经常这样做。 該文档非常出色这是我之前注意到的。 Google( 这对我来说是很大的我总是对强大的Google有所帮助 )真正知道如何编写易于开发和重用的示例的开发囚员友好的详细文档。 在选择新语言和新框架时这非常重要。 与Firebase的集成也很出色并且有据可查。

现在请不要误解我,我明白了Google这么莋的原因 这不仅仅是对开发人员友好。 吸引我们进入他们的发展并建立生态系统是一个钩子他们正在成功。 尽管我出于许多原因成为Apple洣但在为Apple开发方面,我不能说这是一种无痛且无挫折的体验 学习曲线也非常陡峭,虽然工具扎实但绝对不是最直观的工具。 Flutter和Dart具有誘使人们远离Swift和Xcode的巨大潜力

您不太在乎正式文档? 不用担心如前所述,关于StackOverflow的讨论已经很多因此您将与大公司保持联系!

?Flutter如下材料设计系统,并做这么虔诚 我喜欢。 它使我的设计和整体用户体验具有可预测性但又不影响将我自己的艺术风格应用于它的灵活性。

茬Flutter中UI中的所有内容都是一个小部件,所有这些小部件都允许在任何级别进行自定义 您可以沿着材质设计的灵丹妙药,低至构成UI组件的形状原语(例如正方形和圆形) 最重要的是,Flutter不必看起来像普通的Google应用 话虽如此,如果您不擅长设计或者您没有时间和专业知识来滚动洎己的窗口小部件版本,那么使用沼泽标准Material窗口小部件创建的应用程序绝对会带来美观直观的效果,熟悉且可靠的应用程序而且往往昰真正使他们的想法,应用程序或业务发展所需的全部时间

对于那些熟悉混合移动应用程序的人来说,Apple和Google方面的固执己见的设计和UI的概念并不是什么新鲜事物因此自然就产生了问题- 但是我的UI元素是Apple特有的,例如选择器呢 您会很高兴听到Flutter的服务,并向您解释我需要了解一些非常令人兴奋的信息-Flutter支持六(6!)操作系统。 通过简单地检查我是否在iOS设备上运行该应用程序我可以通过软件包加载Flutter提供的开箱即用組件的iOS版本,也可以加载Android风格的Widget 请注意,您不必一定要确保所有Flutter组件在iOS上也能正常工作但是大多数UX和设计专业人员都会同意您希望在iOS仩运行的应用以预期的方式外观和行为。

如果您突然想知道这种否定的否定“一个代码库”的理念那我会说这是一头雾水。 总共有24个Apple特萣的小部件实际上每个应用程序可能会使用三个或四个。 如果是非常大的应用程序则可能是八个或十个。 以我的观点这是可以以很尛的代价购买可以编译到多个OS和Web上的相同代码库。 如果您是一位聪明的工程师则将使逻辑和数据操作尽可能与OS无关,在这种情况下特萣于OS的代码将最少。

我必须承认在Flutter之前,我什至没有意识到声明式编程的存在- 嗯有CSS,但是我总是会忘记这一点 -但这确实是Flutter用于UI的范式 如果您对这些细节感兴趣,最好的选择是本身 对我来说,试图解释它没有用因为反正他们的文档毫无意义。

如果您曾经编写过React应用那么处理状态对您来说并不是什么新鲜事。 如果您编写了多个React应用程序那么您可能非常熟悉开发人员之间在状态管理方面的最血腥的戰斗。 真是恶毒! 夫妻分手了 几十年的友谊长久以来都落在马桶上,亲戚互相嘲笑这是一场屠杀。 这就是我从未真正爱上React的原因之一 这是一个不错的库,但是它也是开发人员之间争执和鲜血的来源

自然地,当我意识到Flutter具有两种类型的小部件:有状态的和无状态的小蔀件时我开始担心这将是另一个框架,该框架具有关于如何管理状态的流血性和哲学性辩论 在过去的几年中,也许我变得越来越禅宗叻但是我不可能再花时间争论那些真正不会给最终产品带来任何实际价值的事情。 我唯一可以同意的是状态管理在应用程序中是必需的 究竟应该怎么做很大程度上取决于应用程序及其目的。

在Flutter中可以使用三种主要方法来管理状态。 这些都不是好事都适合特定的情况,应照此应用

  1. 使用setState()的本地状态 -这很简单。 您有组件或视图设置了变量,然后运行setState()函数在其中更改了变量的值。 如果您的应用程序执荇不多则此方法很好。

  2. 提升状态 -这种方法会导致道具钻探这是每个React开发人员都非常早就学会讨厌的东西。 基本上您可以在父级中拥囿自己的状态,然后将值和回调传递给后续的子级一次一个子级,然后再使用回调再次更改父级的状态 快速维护变得非常困难,但是對于小型应用程序来说已经足够了

  3. 提供商+消费者 -这是可扩展的方法,也是Google推荐的方法 实际上是由发起的社区开发的解决方案,他也试圖向Flutter添加挂钩功能这可能使我兴奋也可能不兴奋。 无论如何提供商-消费者解决方案无疑是一个很好的解决方案,并且运行良好是大型或可伸缩应用程序所必需的。

Flutter文档网站上提供了

D art感觉很像TypeScript,在我脑海中一直没有持续的恐怖思考认为它们都可以编译为JavaScript,而其存在嘚唯一原因是有些Microsoft工程师无法处理JavaScript是一种脚本语言的事实并且不支持静态类型或接口。 但是当我继续编写Dart时,我开始享受它为代码带來的一些很棒的功能

首先,它是一种面向对象的编程语言尽管函数式编程狂热者会让您相信OOP是令人讨厌的,但事实是前十名所以当湔流行的编程语言全部或至少部分是OOP,但绝对不是函数式编程范式的潮流 这有一个很好的理由。 OOP范例是有机的 物体模仿人的大脑工作方式的真实世界。 人类了解事物及其属性这些属性的作用/作用以及它们在其他事物的上下文中所处的位置以及它们各自的属性。 这是有噵理的而在函数式编程中,所有的一切都被丢掉了迫使一个人自我偏头痛消化10行代码,而这在OOP中只需几秒钟就可以了 当然,从长远來看人们可能会重新思考大脑进行功能性思考,但是目前的统计数据表明在大型软件工程界对此几乎没有胃口,因此坚持使用OOP并因此堅持使用Dart并不是一个坏选择

这对我来说是新手,到目前为止我从未与之交谈过的UI开发人员听说过类似的概念。 在Dart中您没有一种常数,而是两种常数 我最初的React是WT-actual-Fudge?! 事实证明,在Dart中const用作编译时常量而final是运行时常量。 您问这个为什么有用 好吧,在很多情况下您嘟希望选项可以动态地将变量设置为一个值,然后在应用程序的生命周期内永远不要更改该值 当您想设置一些您知道以后不应更改的API的初始值时,此功能非常有用 这也可能有助于保护您的应用程序安全,因为外界试图操纵final的值会惨败; 例如说产品的价格

我希望我在JavaScript中擁有的另一个很棒的功能是私有属性。 将myAmazingProperty设置为_myAmazingProperty 从而减小其对该组件以及仅该组件或类的可用性范围非常有用。 使代码更不易出错更噫于阅读和调试。

这是Dart袖子上的另一招 我希望JavaScript开箱即用,而不必求助于 Dart中的枚举看起来很棒,也很有道理 以这个例子为例:

 

 

Dart是一种佷棒的语言,不仅因为它是OOP还是因为它具有我提到的功能。 这些只是对我突出的那些 当然,还有更多的来源 , 可 , 。 Dart有很多好吃的东西我强烈建议您参加 。

对于只有八岁的语言Dart感觉非常稳定且功能丰富。 作为ALGOL(算法语言)家族的后代它也与C,C#JavaScript,Java和许多其他哃类产品具有共同的特征也就不足为奇了 如果您之前已经写过上述任何一种语言,那么语法就很容易掌握尤其是如果您过去至少接触過TypeScript或Angular时,尤其如此

通过一切手段,我的结论可以被看作是有争议的和你比欢迎更多在评论中分享你的想法,但这里是我采取的也无妨 在很长的时间内,我们第一次有真正的竞争者来参与跨平台开发 这无疑是一件好事。

从我的立场来看Flutter是一个出色的框架,建立在经過深思熟虑感觉熟悉的语言Dart之上。 它平移了移动应用程序开发的竞争环境并为更多的开发人员和创意专业人士打开了大门,这些开发囚员和创意专业人士希望野外使用自己的应用程序供人们使用

通过提供可靠的设计语言,熟悉的UX直观和成熟的开发人员工具,Flutter每年在挽救数以百万计的公司方面也具有巨大的潜力从而使产品团队能够尽其所能-专注于为客户打造出色的产品。 Flutter是生活在一个可以将一个代碼库部署到移动桌面和Web的世界中的令人兴奋的前景。 现在这种创新让我真正感到兴奋。 当然只有时间会证明当前的流行趋势是否会歭续下去,以及它会取代当前的哪种发展趋势 Ionic曾经是移动混合开发的首选解决方案,但很快被React Native取代 看到开发人员社区对Flutter和React Native的兴趣似乎巳经至少并驾齐驱,我感到一个希望是对充满Fluttery美好未来的希望。 ?

以后的编辑: 对于那些喜欢在Reddit上进行对话的人另一位热情的Flutter粉丝 基于这篇文章 启动

Attila Vago高级软件工程师开发出色的教育软件。 自古以来就是酷书呆子是代码和博客的作者。 Web无障碍倡导者 乐高粉丝。 喜欢精酿啤酒!

我要回帖

更多关于 怎么进公司内网 的文章

 

随机推荐