百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

苹果开发者大会 WWDC 2019 在北京时间今天凌晨开幕。在这场大会上除了「史上最难看 Mac 主机」、首次出现的 iPadOS 以外,我们还终于可以对饱受诟病的iTunes 说再见了。而对于开发者来说,新发布的 SwiftUI 可能是最吸引人的特性,在 Craig Federighi 的演示中,我们可以轻松地把一百行的前端代码缩减到十几行。

Swift苹果于 2014 年发布的全新开发语言,可与 Objective-C* 共同运行于 macOS 和 iOS 平台,用于搭建基于苹果平台的应用程序。Swift 的设计以安全为出发点,以避免各种常见的编程错误类别。近年来,这种编程语言的热度上升很快,甚至有人呼吁用它来代替 Python,作为 TensorFlow 支持的语言。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

「取代 Python」并不只是说说而已。今年 4 月,谷歌Github 上开放了 Swift for TensorFlow 项目。

既然 Swift 语言已经这么有潜力了,那么我们难道不应该给它加入更多的特性,助它一臂之力吗?今天苹果就为 Switf 前端编程插上了翅膀,其最新发布的 SwiftUI 是一个基于 Swift 语言的、创新而又极为简单的用户界面解决方案,各种平台上的应用都能用它打造精致的用户界面。

SwiftUI 使用统一的一套工具和 API,即可创建在任意苹果设备使用的用户界面。通过定义一个易读易写的声明式 Swift 语法,SwiftUI 可以顺畅的和 Xcode 工具一起完成设计工作。SwiftUI 自动支持动态字体调整(Dynamic Type)、暗黑模式(Dark Mode)、本地化(localization)和辅助功能(accessibility),这意味着开发者的第一行 SwiftUI 代码是他们目前写出的功能最强大的 UI 代码。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

  • 官方教程:https://developer.apple.com/tutorials/swiftui/
  • 官方文档:https://developer.apple.com/documentation/swiftui/

SwiftUI 的特点是什么

SwiftUI 使用声明式语法,所以我们可以简单地声明用户界面的样式。例如,开发者可以声明需要由一串文本输入框构成的组件,然后定义每一个输入框的字体对齐方式、字体样式、字体颜色。这些代码比以往更加易懂,省时并易于维护。

这种声明式的方式甚至允许使用复杂的功能,如动画(animation)。只需要几行代码,即可添加动画在任何控件上,并且可以使用易于调用的特效。在运行时,SwifthUI 会自行控制创建流畅动作的所有步骤,并且可以解决程序冲突,保证 app 稳定运行。动画特效变得如此容易,我们可以发掘使 app 更加灵动的方式。

只需一次就能定义布局

开发者只需定义视图(view)中内容和布局,SwiftUI 懂得什么时候需要改变,并可以随时更新(视图)以匹配设计。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

建立可复用的组件

组合小而简单的视图,构成更大更复杂的界面。视图可以在任何一处苹果设备和平台共享。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

简化动画构建

创建流畅的动画效果十分简单,如同声明一个简单的方法。SwiftUI 可以在需要的时候自动计算并渲染。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

设计工具

Xcode 11 内建了非常直观的新设计工具,我们可以通过 SwiftUI 使用拖放等简单操作而构建界面。当我们在设计面板时,我们编辑的所有内容都与左边编辑器的代码完全同步。当我们修改预览(preview)时,对应代码可实时生成,也就是说我们对预览修改的内容能实时体现在代码中。Xcode 会立即重新编译你的修改,并将它们插入到 APP 的运行版中。因此在整个开发中,预览可视化与代码可编辑性能同时支持并交互。

百行代码变十行,苹果SwiftUI可视化编程让开发者感叹完美(apple swift 编程)

如上所示为 SwiftUI 的代码与预览部分,它们之间是可以实时交互的。总体而言,这种新型工具主要有以下三大特点:

拖拽:通过简单拖拽 Canvas 上的控件来排列用户界面上的各种组件。单机打开检查器(inspector)以选择字体、颜色、对齐方式和其它设计选项,我们也可以通过光标轻松重新排列控件。这些视觉编辑器在代码编辑器中也能用,所以我们可以使用检查器挖掘每个控件的不同选项,即使在界面的手动编程部分也是一样的。我们可以从库中拖拽控件,再放入到设计面板或代码面板都是可以的。

动态替换:Swift 编译器和运行时可以完全嵌入到 Xcode 中,所以我们的 APP 会一直处于构建和运行的状态。我们看到的预览界面并不是对用户界面的近似,它就是我们的实时 APP。Xcode 会通过「动态替换」在实时 APP 中交换编辑的代码,这是 Swift 中的新特征。

预览:现在,我们可以创建任何 SwiftUI 视图的一个或多个预览,从而得到样本数据,并配置几乎用户能看到的所有内容,例如大字体、定位或「暗黑模式」等。预览还能在任何设备上以任何朝向展示我们的 UI。

GitHub 包管理也要支持 Swift

GitHub 有很多开源项目,但真正要做成包还是需要其它包管理工具,因此 GitHub 希望能直接根据源代码发布公有或私有包。在苹果发布 SwiftUI 的同时,Github5 月份提出的 Github Package Registry 将进一步支持 Swift 包,此前它已经支持 JavaScript(npm)、 Java(Maven)等耳熟能详的工具。

Swift 包使开发者可以更简单的在不同的项目之间,以及 Swift 社区共享工具和源代码。Swift 包管理器(Swift Package Manager),是一个跨平台的构建、运行、测试和打包你的 Swift 代码的工具,现已在 Github 开源。包的信息已经写入 Swift,使我们可以更好地管理 Swift 中的 Target 、声明 Product,并管理相关环境依赖。Swift 包管理器和 Github 包列表协作可以帮助开发者更容易发布自己的 Swift 项目。

使移动端开发者有更高效的生产力工具也十分重要。随着 Swift 生态环境的增长壮大,能够和苹果团队一起合作完成 Swift 开发工具流使 GitHub 的开发者非常兴奋。在 Swift 包管理项目上线后,我们可以更加便捷地构建和调用不同的开源工作。

参考链接:

  • https://developer.apple.com/xcode/swiftui/
  • https://github.com/apple/swift
  • https://github.blog/2019-06-03-github-package-registry-will-support-swift-packages/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月20日 上午8:26
下一篇 2024年5月20日 上午8:38

相关推荐

  • 事业单位合同管理办法细则

    事业单位合同管理办法细则 为加强事业单位合同管理,规范事业单位聘用合同的签订、履行和解除行为,根据《事业单位人事管理条例》和《事业单位t合同管理办法》的要求,制定本细则。 一、适用…

    科研百科 2024年6月2日
    300
  • 良好的水质环境包括什么

    良好的水质环境对于人类健康至关重要。在这篇文章中,我们将讨论良好的水质环境应该包括哪些方面。 首先,良好的水质环境应该包括正确的过滤系统。水过滤系统可以去除水中的杂质,细菌,病毒和…

    科研百科 2024年10月18日
    1
  • 科研项目一般大三做吗科研项目一般大三做吗

    科研项目一般大三做吗? 科研项目是学生提高学术能力、扩展知识面、提高实践经验的重要途径。在大三阶段,学生通常已经具备一定的专业知识和实践经验,因此,他们通常会考虑参与科研项目。那么…

    科研百科 2024年9月8日
    34
  • 项目现场管理系统使用

    项目现场管理系统使用 项目现场管理系统是一种高效的工具,可以帮助项目经理和团队成员更好地管理项目现场。本文将介绍项目现场管理系统的使用方法和优势。 首先,让我们了解项目现场管理系统…

    科研百科 2024年12月18日
    1
  • 如何系统地管理项目

    如何系统地管理项目 在项目执行过程中,如何有效地管理项目是项目成功的关键因素之一。以下是一些系统化的方法来管理项目。 1. 制定明确的目标和计划 在开始项目之前,需要明确项目的目标…

    科研百科 2024年12月25日
    0
  • 党建引领!凝聚水利“红色力量”→(党建引领水利工作)

    近年来,我区以党建引领水利工程建设为抓手,通过“党建 精准管理”构建水利工程建设体系,结合开展水旱灾害防御、水库山塘“除险清零”、美丽河湖建设等重点任务,积极构建江河湖库塘连通体系…

    科研百科 2023年10月13日
    147
  • 四川省科研项目专家评审费发放标准

    四川省科研项目专家评审费发放标准 近年来,四川省科研项目的评审和验收工作日益增多。为了确保科研项目的顺利进行,四川省制定了一套较为完善的科研项目专家评审费发放标准。本文将详细介绍四…

    科研百科 2024年11月8日
    1
  • 西南政法双学位

    西南政法双学位:探索法律职业的新途径 西南政法双学位,是指西南政法大学开设的法学和经济学双学位课程。作为一所历史悠久、声誉卓著的高校,西南政法大学一直致力于培养具有高度社会责任感和…

    科研百科 2024年10月26日
    0
  • 园林绿化养护软件(园林绿化工程管理软件)

    园林绿化工程管理软件 随着城市化进程的加速,园林绿化工程作为城市建设的重要组成部分,越来越受到人们的关注。园林绿化工程管理软件是一种能够帮助园林绿化从业者高效管理工程的软件,本文将…

    科研百科 2024年6月3日
    75
  • 增强规范意识 共建温馨家园——运小召开住宿生管理工作会议

    没有规矩,不成方圆。为进一步加强住宿生的行为规范教育,全面提升宿管水平,2022年9月2日下午,响水县运河中心小学召开了住宿生管理工作会议。会议由后勤主任梅宇主持。 高培军校长首先…

    2022年9月28日
    420