首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序那些事

    dart系列之:dart代码最佳实践

    简介 每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的。如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利。 首先 “dart:”,需要放在所有其他的import之前: import 'dart:html'; import 'package:bar/bar.dart'; 而”package:” 需要放在内部项目引用之前 : import 'package:foo/foo.dart'; import 'util.dart'; 如果需要导出的话,export需要和import区分开: import 'src/foo_bar.dart 格式化 对于dart来说,dart语言本身是不识别空格的,但是对于人类来说,需要通过空格来格式化代码,从而达到可良好阅读的目的。 为了统一格式,dart提供了dart format命令. 总结 以上就是dart中的代码风格总结。

    1.4K30编辑于 2022-01-04
  • 来自专栏个人路线

    Dart 代码的组件集合Dart VM

    本文主要介绍本地执行 Dart 代码的组件集合Dart VM PS:内容比较繁杂,请酌情观看 Dart VM 是用于本地执行 Dart 代码的组件集合,它主要包括以下内容: 运行时系统 对象模型 垃圾收集 例如可以使用 Dart VM AOT 将 Dart 代码编译成机器代码,然后在 Dart VM 的裁剪版本中执行,这被称为预编译运行时,它不包含任何编译器组件,无法动态加载 Dart代码Dart VM 如何运行你的代码? “如何”将 Dart代码转换为可执行代码」,然后保证执行的运行时环境保持不变。 Dart 代码,只是不会同时发生。

    2.1K30发布于 2021-08-05
  • 【教程】混淆Dart 代码

    什么是代码混淆?代码混淆是一种将应用程序二进制文件转换为功能上等价,但人类难于阅读和理解的行为。 在编译 Dart 代码时,混淆会隐藏函数和类的名称,并用其他符号替代每个符号,从而使攻击者难以进行逆向工程。Flutter 的代码混淆功能仅在生产构建上生效。 另外,--split-debug-info 选项也可以不使用 --obfuscate 来提取 Dart 程序符号,以减少代码体积。 可对IOS ipa 文件的代码代码库,资源文件等进行混淆保护。 可以根据设置对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加ipa破解反编译难度。 参考资料Flutter Code Obfuscationipaguard官方文档ipaguard重签名与加固混淆文档希望本篇博客能帮助你了解Dart代码混淆的基本概念和使用方法。

    55210编辑于 2024-01-23
  • 来自专栏小巫技术博客

    Android Studio同时Debug 原生代码Dart代码

    遇到问题 正常来说在原生工程嵌入Flutter,说明既包含Android相关的代码(Java或者Kotlin)又包含Dart代码,那这里就会有个问题,怎么同时调试? 这就非常尴尬,没法做到同时调试Android代码Dart代码。 好家伙,要等到啥时候呢,不能Debug原生代码那就变得很鸡肋了啊。那有没有其他办法能帮助我们实现这个诉求呢,答案肯定是有的,下面就是解决方案。 这样我们可以愉快的调试原生代码Dart代码了。 最后 本篇是一个小技巧,在官方没更新插件解决这个问题之前,我们可以按照这种方式解决问题。

    1.9K30发布于 2020-05-07
  • 来自专栏Flutter&Dart

    Dart代码生成器PART ONE

    这个时候,Dart代码生成器可以帮到你! Dart代码生成工具 在dart的世界里,存在两个工具: source_gen build_runner source_gen 该dart包提供一个友好的api来自动生成代码,它是对其它dart包的封装 <T>:简单的生成器,继承该类,并传入注解T类,可解析注解对应的类或成员变量或方法等 构建工作部分可以选择 SharedPartBuilder:该构建会生成一个扩展名为:.g.dart文件,用于写部分代码 ,这里先说明一下我们需要编写三个包: code_generator:dart基础包,一些基本用法,和声明注解 code_generator_gen:dart构建包,用于运行命令行生成代码的逻辑 code_generator_example 输出.png 我们会发现,没有任何的输出,需要按照上面命令行提示,在注解类文件中添加part 'code_generator_example.g.dart'这一行代码,然后重新运行 ?

    2.5K00发布于 2019-04-18
  • 来自专栏Google Dart

    Dart dart:mirrors 库

    动态调用是指在编译时不按字面指定评估代码的能力,例如调用一个其名称作为参数提供的方法(因为它在数据库中查找,或者由用户以交互方式提供)。 文档经常滥用带有Dart代码的符号,例如o.x(a),其中o和a被定义为对象;在这些情况下实际意味着o'.x(a')其中o'和a'是分别与o和a绑定的Dart变量。 状态:不稳定 dart:mirrors库不稳定,其API可能会因用户反馈而略有变化。 该库依赖于平台,因此它具有dart2js和Dart VM的实现。 两者都在开发中,可能还不支持所有操作。 MethodMirror MethodMirror反映Dart语言函数,方法,构造函数,getter或setter. Mirror Mirror 反映了一些Dart语言实体. [...] ParameterMirror ParameterMirror反映Dart形式参数声明. SourceLocation SourceLocation描述Dart代码中实体的范围.

    1.7K30编辑于 2021-12-28
  • 来自专栏JarvanMo的IT专栏

    Dart In Action -Dart快速入门(-)

    写在前面 本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 Flutter教程在这里 1.什么是Dart? Dart是面向对象的、类定义的、单继承的语言。 事实上,Dart被抛弃过,但Dart这门语言已经发展到2.x了。 2.为什么要学Dart? 大千世界,语言不计其数,这次我们要学习的为是Dart? 3.初识Dart 以下代码展示了使用频率非常高并且最基础的Dart语法: // 定义一个函数. printInteger(int aNumber) { print('The number is $aNumber 使用这个SDK可以解析Dart代码以及生HTML文档。 第一节结束

    1.4K20发布于 2018-09-06
  • 来自专栏JarvanMo的IT专栏

    Dart In Action -Dart快速入门(五)

    写在前面 本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 Flutter教程在这里 Runes 在Dart中,Runes是字符串的UTF-32代码点。 Unicode定义了一系列独一无二的数值,这些数值可以表示世界各种书写系统的每一个字母、数字以及衣符号。 由于Dart字符串是一系列UTF-16代码单元,因此在字符串中表示32位Unicode值需要特殊语法。 表达Unicode代码点的常用方法是\ uXXXX,其中XXXX是4位十六进制值。 codeUnitAt和codeUnit属性返回16位代码单元。 使用runes属性获取字符串的符文。 以下示例说明了符文,16位代码单元和32位代码点之间的关系。 在此运行示例代码。 有关更多信息,请在Stack Overflow上参阅如何在Dart中反转字符串? 。 Symbols Symbol对象表示在Dart程序中声明的运算符或标识符。

    1.4K30发布于 2018-09-06
  • 来自专栏Flutter Engine

    Dart VM 是如何运行你的代码

    Dart VM有多种方式去运行Dart代码,比如: JIT模式运行源码或者Kernal binary 通过snapshot方式:AOT snapshot 和 AppJIT shanpshot 两者的主要区别在于 VM将Dart源码转换成可执行代码的时机和方式。 代码和调用VM API的线程 所以一个线程只能进入一个isolate执行Dart代码,退出之后才能进入另一个isolate。 所以源代码要先经过通用前端CFE处理成Kernel AST,而CFE是用Dart写的,可以给VM/dart2js/Dart Dev Compiler这些不同的Dart工具使用。 [kernel-service] 但是CFE和用户的Dart代码是可以在不同的设备上执行,例如在Flutter当中,就是将Dart代码编译成Kernel,和执行Kernel的过程个隔离开来,编译Dart

    4K30发布于 2020-04-14
  • 来自专栏JarvanMo的IT专栏

    Dart In Action -Dart快速入门(三)

    写在前面 本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 内置类型 Dart特别支持以下类型: 数字类型 字符串 布尔值 表(lists,也被称作数组) 映射(maps) 符文(用于表示字符串中的Unicode字符) 符号 您可以使用文字初始化任何这些特殊类型的对象 因为Dart中的每个变量都引用一个对象 - 一个类的实例 - 您通常可以使用构造函数来初始化变量。 一些内置类型有自己的构造函数。 例如,您可以使用Map()构造函数来创建Map。

    98310发布于 2018-09-06
  • 来自专栏JarvanMo的IT专栏

    Dart In Action -Dart快速入门(二)

    写在前面 本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 尽管Dart是强类型的,但是类型注释是可选的,因为Dart可以推断类型。在之前上一节的代码中var number = 42;,number被推断为int类型。 Dart工具可以报告两种问题:警告和错误。警告只是表明您的代码可能不工作,但它们不会阻止您的程序执行。错误可以是编译时错误,也可以是运行时错误。 编译时错误阻止了代码的执行;运行时错误导致代码执行时引发异常。 int lineCount; assert(lineCount == null); 注意:在生产代码中,assert()调用将被忽略。

    1.4K30发布于 2018-09-06
  • 来自专栏JarvanMo的IT专栏

    Dart In Action -Dart快速入门(五)

    ##写在前面 本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。 Flutter教程在这里 ###Runes 在Dart中,Runes是字符串的UTF-32代码点。 由于Dart字符串是一系列UTF-16代码单元,因此在字符串中表示32位Unicode值需要特殊语法。 表达Unicode代码点的常用方法是\ uXXXX,其中XXXX是4位十六进制值。 codeUnitAt和codeUnit属性返回16位代码单元。 使用runes属性获取字符串的符文。 以下示例说明了符文,16位代码单元和32位代码点之间的关系。 在此运行示例代码。 有关更多信息,请在Stack Overflow上参阅如何在Dart中反转字符串? 。 ###Symbols Symbol对象表示在Dart程序中声明的运算符或标识符。

    1.3K30发布于 2018-08-24
  • 来自专栏Dart 语言

    Dart 变量

    在其他语言中,尝试此操作可能会导致运行时错误,但 Dart 的编译器会禁止这些操作。因此,Dart 应用不会导致运行时错误。 Dart 不会为不可空类型设置初始值。它强制您设置初始值。Dart 不允许您观察未初始化的变量。 lineCount;assert(lineCount == null);生产代码会忽略 assert() 调用。 例如,以下代码是有效的,因为 Dart 可以检测到在将 lineCount 传递给 print() 之前它是非空的:int lineCount;if (weLikeToCount) { lineCount = countLines();} else { lineCount = 0;}print(lineCount);顶级变量和类变量是延迟初始化的;初始化代码在第一次使用变量时运行。

    82700编辑于 2025-01-31
  • 来自专栏编程时光

    《深入浅出DartDart测试

    现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 单元测试和集成测试 Dart的生态系统提供了一个完善的测试框架来进行代码的单元测试和集成测试。 Dart单元测试 单元测试是在软件开发中进行的最小单元的测试。在Dart中,我们可以使用内置的test包来进行单元测试。 创建测试 然后,我们可以创建一个新的Dart文件来写我们的测试,这个文件通常放在项目的test目录下,并且以_test.dart结尾。 test命令来执行我们的测试: dart test Dart集成测试 集成测试是对多个组件或整个系统进行的测试。 在Dart中,我们可以使用flutter_test包进行集成测试。

    46420编辑于 2023-07-27
  • 来自专栏程序那些事

    dart系列之:dart类的扩展

    dart系列之:dart类的扩展 文章目录 简介 使用extends 抽象类和接口 mixins 总结 简介 虽然dart中的类只能有一个父类,也就是单继承的,但是dart提供了mixin语法来绕过这样限制 今天,和大家一起来探讨一下dart类中的继承。 抽象类和接口 dart中除了继承普通类之外,还可以继承抽象类和实现接口。 mixins 虽然dart不支持多重继承,但是可以使用mixin来实现类似多重继承的功能。 中继承的使用,dart中还可以继承方法,这是dart的高级应用,我们会在后续的文章中进行介绍,敬请期待。

    1K10发布于 2021-11-16
  • 来自专栏程序那些事

    dart系列之:dart语言中的异常

    那么在dart中的情况是不是一样的呢?一起来看看吧。 Exception和Error Dart中表示异常的类有两个,分别是Exception和Error。他们两个有什么区别呢? 但是和java不同的是,dart中所有的异常都是unchecked 异常,也就是说dart中的异常并不强制要求被捕获,是否捕获异常是由程序员自行决定的。 dart中也有很多Exception的子类,比如FormatException来表示各种不同的异常情形。 和JAVA一样,dart中的Error表示的是一个严重的错误,Error是应该在程序编写过程中需要避免的。 本文已收录于 http://www.flydean.com/05-dart-exception/

    65100发布于 2021-11-13
  • 来自专栏安卓圈

    Dart入门

    要学Flutter必先学DartDart和Java的语法很像,学过Java的人很快就能入手 Dart下载地址https://dart.dev/get-dart VSCode下载地址https://code.visualstudio.com / VSCode装好以后,安装插件Chinese汉化插件、Dart插件、code runner插件 1.基础 main(){ print('你好 dart'); } var会自动推断变量类型,赋值类型不一致会报错 这是第二行 这是第三行 '''; print(str); } * 字符串的拼接 void main(){ String str1 = "你好"; String str2 = 'Dart :convert'; import 'dart:io'; import 'dart:math'; void main() async{ print(min(12, 14)); var result :convert' as convert;//重命名 import 'package:http/http.dart' as http;//重命名 main(List<String> arguments

    1K10发布于 2019-12-27
  • 来自专栏若尘的技术专栏

    Dart Isolate

    官方文档或注释的一部分: All Dart code runs in an isolate, and code can access classes and values only from the same 所有的 Dart 代码运行在一个 Isolate 里,代码只能访问同一个 Isolate 里的类和值。 An isolate is what all Dart code runs in. 所有 Dart 代码运行在一个 Isolate 里,它像机器上的一个小空间,有自己的私有内存块和运行事件循环的单个线程。 :async'; import 'dart:isolate'; import 'package:flutter/material.dart'; void main() { runApp(MyApp(

    2.4K75编辑于 2021-12-15
  • 来自专栏九彩拼盘的叨叨叨

    Dart 概览

    Dart是Google公司发布的网络编程语言,其诞生的目的是为了让广大C类OOP程序员们克服JavaScript那”复杂”的语言特性。 引入包 import 'dart:io'; import 'package:mylib/mylib.dart'; // 安装的包里找 import 'package:utils/utils.dart'; import 'a.dart'; // 本地找 指定库前缀 来解决 两个库存在两个冲突的标识符的情况。 如: import 'package:lib1/lib1.dart'; import 'package:lib2/lib2.dart' as lib2; // ... 注意点 语句结尾一定要带 ; 资源 Dart 语法预览

    1.1K20发布于 2019-07-01
  • 来自专栏小鑫同学编程历险记

    Dart入门

    Dart 入门 [TOC] Dart数据类型 Number num age = 12; int a = 15; double b = 16; String String name = '张三'; String String, String>{ '小明': '26', '小红': '23', }; var map3 = { '小明': '26', '小红': '23', }; Dart { print(message); }, '小明'); //简写,参数1为匿名函数 running((message) => print(message), '小明'); } Dart :async'; import 'dart:io'; createStream1() async { print('start test'); Future<String> future 'end test'); } void main(List<String> arguments) async { createStream3(); } Stream操作take import 'dart

    2.1K10编辑于 2022-12-24
领券