前言 本期是 Swift 编辑组自主整理周报的第八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 Swift 周报在 GitHub 开源[1],欢迎提交 issue,投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。 风起雨坠袭大地,叶落冬来又一年。Swift社区,和你同风雨,与你共未来!👊👊👊 周报精选 新闻和社区:苹果发布最新声明!将工人健康放在首位,iPhone 14 Pro 收获需等待更长时间。 提案:Swift 论坛讨论人气最高的提案 Swift 论坛
本期是 Swift 编辑组自主整理周报的第十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
苹果软件工程高级副总裁Craig Federighi表示,“新应用程序开发技术使开发人员能够更快,更轻松,更有趣地开发应用程序,这代表着在所有苹果平台上创建应用程序的未来。”
List 可能是 SwiftUI 附带的内置视图中最常用的一种,它使我们能够在任何 Apple 平台上呈现“类似于表格视图”的用户界面。今年,List 获得了许多非常重要的升级,使其更加灵活和易于定制。让我们看看都有哪些新功能。
TIOBE 6月榜单出炉!编程语言地位大洗牌,Swift 的排名从 15 升至 12
近日,苹果正式将 Apple Vision Pro (AVP) 推广到更多国家的市场。考虑到 AVP 的独特性,尤其需要为戴眼镜用户提供定制的镜片,消费者能够亲身体验这款产品无疑会增进对其的了解,有望带动销量。然而,若价格、佩戴舒适度和生态系统等核心问题未能得到显著改善,仅仅扩大销售范围恐难以带来令人振奋的市场表现。
在前面的文章中谈了谈对SwiftUI的基本的认识,以及用我们最常见的TB+NA的方式搭建了一个很基本的场景来帮助认识了一下SwiftUI,具体的文章可以在SwiftUI分类部分查找,这篇我准备在写UI的时候从SwiftUI角度我们具体的应该怎样去做,或者说是用SwiftUI我们该从什么角度去解析一个页面。以及对SwiftUI里面的其中一些细节知识做一下分析总结。
我最近开始重新开发我的“健康笔记”应用程序。由于新版本将只支持 iOS 17 及以上版本的设备,这让我在选择技术路线上享有更大的自由。
前几期周报内容是同步翻译的英文版周报,目前英文版停更,周报停滞半年多。经过多次讨论,我们决定重启周报,分模块整理内容同步给大家。
Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为上篇。
编译 | 核子可乐、Tina SwiftUI 很好,但是苹果对它投资不足。 在 2019 年的 WWDC 大会上,苹果推出了一个全新的 SwiftUI 框架,这是一个现代化的 UI 界面编码结构,它是基于 Swift从头开始构建的。新框架使用声明性范例,让开发者用更少的代码编写相同的 UI。 SwiftUI 的愿景是降低开发 iOS 门槛,吸引更多开发者、丰富 iOS 的业态。并且 SwiftUI 可以“实现一次编码,可适应五端 Apple 产品平台”, 包括watchOS、tvOS、macOS 等,
SwiftUI的TextField可能是开发者在应用程序中最常使用的文本录入组件了。作为UITextField(NSTextField)的SwiftUI封装,苹果为开发者提供了众多的构造方法和修饰符以提高其使用的便利性、定制性。但SwiftUI在封装中也屏蔽了不少的高级接口和功能,增加了开发者实现某些特定需要的复杂性。本文为【SwiftUI 进阶】系列文章中的一篇,在本文中,我将介绍如何在TextField中实现如下功能:
在 UIKit 和 SwiftUI 中设置颜色时,无法直接通过.的方式进行颜色的书写,必须带上前缀UIColor或者Color,因为无法根据上下文进行成员推测,Swift 5.4 中改进了这个语法,可以省去前缀且支持链式调用。
苹果在 WWWDC 2022 上推出了 SwiftUI 图表,这使得在 SwiftUI 视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了如何用比以前从头开始创建同样的折线图少得多的代码轻松创建折线图。此外,自定义图表的外观和感觉以及使图表中的信息易于访问也是非常容易的。
苹果在WWWDC 2022上推出了SwiftUI图表,这使得在SwiftUI视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了如何用比以前从头开始创建同样的折线图少得多的代码轻松创建折线图。此外,自定义图表的外观和感觉以及使图表中的信息易于访问也是非常容易的。
随着近年来有关 SwiftUI 的文章与书籍越来越多,开发者应该都已经清楚地掌握了 —— “视图是状态的函数” 这一 SwiftUI 的基本概念。每个视图都有与其对应的状态,当状态变化时,SwiftUI 都将重新计算与其对应视图的 body 值。
SwiftUI中的界面是严格数据驱动的:运行时界面的修改,只能通过修改数据来间接完成,而不是直接对界面进行修改操作。
Swift作为Apple推出的新编程语言,旨在简化iOS和OS X应用的开发过程。它被描述为“Objective-C without the C”,意味着它在保持Objective-C核心功能的同时,提供了更简洁、更现代的语法2。这使得学习Swift成为iOS开发者或计划成为iOS开发者的首要任务2。
大多初学者都会在第一时间惊叹于 SwiftUI 轻松实现各种动画效果的能力,但经过一段时间的使用后,他们会发现 SwiftUI 的动画并非像表面上看起来那样容易驾驭。开发者经常需要面对:如何动、怎么动、什么能动、为什么不动、为什么这么动、如何不让它动等等困扰。对 SwiftUI 的动画处理逻辑了解的不够深入是造成上述困扰的主要原因。本文将尝试对 SwiftUI 的动画机制做以介绍,以帮助大家更好地学习、掌握 SwiftUI 的动画,制作出满意的交互效果。
要在Xcode中预览画布上的视图并与之交互,请确保您的Mac运行的是macOS 10.15 beta版。
Swift 是苹果于 2014 年发布的全新开发语言,可与 Objective-C* 共同运行于 macOS 和 iOS 平台,用于搭建基于苹果平台的应用程序。Swift 的设计以安全为出发点,以避免各种常见的编程错误类别。近年来,这种编程语言的热度上升很快,甚至有人呼吁用它来代替 Python,作为 TensorFlow 支持的语言。
梁启健,携程金融支付中心开发工程师,主要负责支付iOS端的开发与优化工作,喜欢研究大前端和跨平台技术。
SwiftUI Overlay Container[1] 是一个用于 SwiftUI 的视图容器组件。一个可定制、高效、便捷的视图管理器。
每当我们将修饰符应用于 SwiftUI 视图时,我们实际上都会创建一个,应用了更改的新视图 —— 我们不仅仅是修改现有的视图。 如果你仔细想想,这种行为是有道理的 —— 我们的视图仅保留我们赋予它们的确切属性,因此,如果我们设置背景颜色或字体大小,则无处存储该数据。
2020 年 6 月 22 日,苹果召开了第一次线上的开发者大会 - WWDC20。这可谓是一次可以载入史册的发布会,宣布了 ARM 架构 Mac 芯片、软硬件的生态大统一、iOS 14 系统界面大改等一系列激动人心的消息。
我接触电脑的时间比较早( 第一台电脑型号是 CP-80,CPU 是 MC6800 ),开始学习编程也比较早( 从中华学习机开始,Apple II 的国内兼容机 )。对于电脑和编程也都一直很有兴趣,不过从来也没有真正的把写代码当做过职业。虽然也使用过几种编程语言在不同的平台上写过些代码,但都不能算作完整的产品。习惯性地对信息行业的前沿动态以及一些新的技术方向保持着关注,但由于生意及其它方面的原因,从 10 几年前便完全没有再接触过编程了。
在刚刚结束的WWDC发布会中,苹果不仅带来了大家期待已久的 iOS 13,还有3个内容的更新我比较关注,分享给大家。
visionOS是苹果Vision Pro的操作系统。将visionOS与熟悉的工具和技术一起使用,为空间计算构建沉浸式应用程序和游戏。
在 UIKit(AppKit)的世界中,通过框架提供的大量钩子(例如 viewDidLoad、viewWillLayoutSubviews 等),开发者可以将自己的意志注入视图控制器生命周期的各个节点之中,宛如神明。在 SwiftUI 中,系统收回了上述的权利,开发者基本丧失了对视图生命周期的掌控。不少 SwiftUI 开发者都碰到过视图生命周期的行为超出预期的状况(例如视图多次构造、onAppear 无从控制等)。
本文将探讨涉及 SwiftUI TextField 的事件、焦点切换、键盘设置等相关的经验、技巧和注意事项。
在这篇文章中,我们将探讨几个在 SwiftUI 开发中经常使用且至关重要的属性包装器。本文旨在提供对这些属性包装器的主要功能和使用注意事项的概述,而非详尽的使用指南。
Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。
每当我们将修饰符应用于SwiftUI视图时,我们实际上都会创建一个应用了更改的新视图——我们不仅会修改现有的视图。如果您考虑一下,这种行为是有道理的——我们的视图仅保留我们赋予它们的确切属性,因此,如果我们设置背景颜色或字体大小,则无处存储该数据。
WWDC 2023 正在如火如荼地进行。苹果不仅带来了全新形态的硬件产品,还推出了几个相当震撼的新框架。本文将聊聊我对本届 WWDC 中 SwiftUI 5.0 和 SwiftData 的初步印象。
在上篇[2]中,我们对 result builders 做了较详细的介绍。本篇我们将通过对 ViewBuilder 的仿制,探索更多有关 SwiftUI 视图背后的秘密。
本文中我们将探讨在 SwiftUI 视图中批量获取 Core Data 数据的方式,并尝试创建一个可以使用 mock 数据的 FetchRequest。由于本文会涉及大量 前文[1] 中介绍的技巧和方法,因此最好一并阅读。
去年 12 月 25 日,我的博客经过重新设计后正式上线。这次改版的一个重要变化是提供了文章的中英文两个版本,并且我也停止了在中国其他技术平台上更新文章。一个月后,即从 12 月 25 日至 1 月 23 日,博客的访问数据呈现出显著的变化:
卫衣、书包、运动鞋……美国圣何塞当地时间4日中午12点,一个学生得不能再学生模样的小伙子按照约定时间,准时出现在了我们的采访地点,WWDC19(苹果全球开发者大会)媒体下榻酒店。
苹果一直是 AI 领域的务实参与者,提供了卓越的设备端 AI 功能。然而,自从去年生成式 AI 的兴起,投资者、消费者、开发者都渴望苹果能够提供更加直观和感知丰富的 AI 技术。鉴于当前市场的需求,可以预见,在今年的 WWDC 2024 上,与 AI 相关的内容将占据极其重要的地位。
苹果为 Vision Pro 打造的 VisionOS 新平台在设计上大量借鉴了现有 3D 与 iOS 工具。但在开发者眼中,这一切是否足够有吸引力?
本文是笔者参加 2023 年 4 月 20 日 “SwiftUI 技术沙龙( 北京站 )” 活动的分享内容。基于记忆整理而成。有关本次活动的情况,可以参阅 我在北京参加 SwiftUI 技术沙龙[1] 一文。
作者简介 Derek Yang,携程资深研发经理,专注于iOS开发&跨端技术研究,热衷于新技术探索。 一、前言 2020年9月苹果发布了iOS 14.0,相较之前有了很大的功能改观,很重要的一点是用户可以更加个性化的定义自己的桌面,Widget就是这项功能的主角。 近期接到一项产品需求,需要实现若干机票业务相关的Widget,此文总结该需求开发上线过程中的踩坑填坑经验。 Widget俗称小组件,是苹果推出的众多App Extension中的一款。因此在介绍Widget之前,需要先了解App Extensi
这种问题问得真是糟心,下面有些回答更糟心,最糟心的是我其实无视了这个问题很久,懒得回答,但知乎还 tmd 老推给我。
本文是笔者参加 2023 年 4 月 20 日 “SwiftUI 技术沙龙( 北京站 )” 活动的分享内容。基于记忆整理而成。有关本次活动的情况,可以参阅 我在北京参加 SwiftUI 技术沙龙 一文。
已迈入第三个年头的SwiftUI相较诞生初始已经提供了更多的原生功能,但仍有大量的事情是无法直接通过原生SwiftUI代码来完成的。在相当长的时间中开发者仍需在SwiftUI中依赖UIKit(AppKit)代码。好在,SwiftUI为开发者提供了便捷的方式将UIKit(AppKit)视图(或控制器)包装成SwiftUI视图。
“对齐”是 SwiftUI 中极为重要的概念,然而相当多的开发者并不能很好地驾驭这个布局利器。在 WWDC 2022 中,苹果为 SwiftUI 增添了 Layout 协议,让我们有了更多的机会了解和验证 SwiftUI 的布局原理。本文将结合 Layout 协议的内容对 SwiftUI 的 “对齐” 进行梳理,希望能让读者对“对齐”有更加清晰地认识和掌握。
HTTP/1.1 协议提供了一种使用Upgrade (en-US) 标头字段的特殊机制,这一机制允许将一个已建立的连接升级成新的、不相容的协议。
SwiftUI 提供了强大的布局能力,不过这些布局操作都是在视图之间进行的。当我们想在 Text 中进行图文混排时,需要采用与视图布局不同的思路与操作方式。本文将首先介绍一些与 Text 有关的知识,并通过一个实际案例,为大家梳理出在 SwiftUI 中用 Text 实现图文混排的思路。
拥有优秀的交互效果和手感,是很多 iOS 开发者长久以来坚守的原则。同样一段代码,在不同数据量级下的响应表现可能会有云泥之别。本文将通过一个优化列表视图的案例,展现在 SwiftUI 中查找问题、解决问题的思路,其中也会对 SwiftUI 视图的显式标识、@FetchRequest 的动态设置、List 的运作机制等内容有所涉及。本文的范例需运行在 iOS 15 及以上系统,技术特性也以 SwiftUI 3.0 为基础。
领取专属 10元无门槛券
手把手带您无忧上云