首页
学习
活动
专区
圈层
工具
发布

WWDC20中iOS的改变

WWDC20中,绝大部份同学都会把注意力放在了iOS的布局改变和自研芯片上,这方面的文章也比较多,但作为一名开发者,更多的聚焦在iOS官方语言和官方库上来,这里仅找出几个更新比较大的点给大家分享。...现在可以在iOS 13上使用。PencilKit使开发人员可以轻松地在其应用程序中集成绘图画布视图和工具包。 PencilKit可让您轻松快捷地将手绘内容整合到iOS或macOS应用中。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户的手指中获取输入,并将其转换为您在iOS或macOS中显示的高质量图像。...用户可以在此处绘制所有艺术作品和涂鸦,而PKCanvasView支持Catalyst,虽然不支持工具选择器,但可以看出对于苹果对于“手绘”的目标,这里对于屏幕的响应在用户行为上报的地方已经有所涉猎,但大范围的绘图仍是一个考验...4.Catalyst Catalyst是能够将iOS应用程序引入macOS的基础架构,这些年,很多的iOS的app开始尝试跨平台开发,事实上,Catalyst也在不断的改进,今年也将更多iOS的库或者对应的功能加入到

3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    最新 iOS 框架整体梳理(三)

    所以关于它真的也只能一笔带过了,不过还是提一句,通知框架里的东西的确需要我们掌握的,尤其是在iOS10之后苹果在通知上是下了一份功夫的。...OpenAL的一些知识点 73、OpenGLES iOS上绘制图形的方式很多,UIKit,CoreGraphics,SpriteKit,OpenGL ES,Metal等。...iOS PDFKit框架讲解 官方文档 76、PencilKit 这个框架是在iOS13中加入的,PencilKit可让您轻松快捷地将手绘内容整合到iOS或macOS应用中。...PencilKit为iOS应用程序提供了一个绘图环境,该环境可以从Apple Pencil或用户的手指中获取输入,并将其转换为您在iOS或macOS中显示的高质量图像。...其实上面的大致意思就是说在iOS中我们平常使用的像URL等都是建立在安全框架基础上的,所以我们没必要刻意的使用这个安全框架,要视情况而定。

    2.4K10

    WWDC20全球开发者大会上开发者必须了解这些事

    开发者还可以在 Mac 上使其 iOS 和 iPadOS 应用程序可用,而无需进行任何修改。...而通过新的 SwiftUI API,开发者可以使用同样的代码为 iOS、iPadOS 和 macOS 构建一个 widget。...PencilKit现在具有Scribble功能,可以轻松创建带有文本输入字段的应用程序,用户可以使用Apple Pencil进行书写。...开发者还可以使用PencilKit访问笔划数据,同时无缝处理Apple Pencil输入和系统触摸手势。 Swift Package Manager添加了对资源的支持,以轻松共享资产目录捆绑和本地化。...如今,微信取消了微信IOS虚拟支付,两家公司因为高昂的「苹果税」积怨愈来愈深。 类似问题的结合让欧盟委员会宣布对苹果进行反垄断调查,苹果公司公开表示对这样的结果感到遗憾。

    2.5K20

    苹果推出突破性新技术,使开发人员更加轻松快捷地创建应用

    预览可以直接在连接的苹果设备上运行,包括iPhone,iPad,iPod touch,Apple Watch和Apple TV,允许开发人员查看应用程序如何响应Multi-Touch,或者在界面构建过程中与摄像头和车载传感器实时工作...Reality Composer是一款针对iOS、iPadOS和Mac的功能强大的新应用程序,它让开发人员可以在没有3D体验的情况下轻松地创建原型并生成AR体验。...开发人员第一次可以使用模型个性化更新设备上的机器学习模型。这种尖端技术使开发人员有机会在不影响用户隐私的情况下,提供个性化功能。 ?...其他开发者功能 PencilKit使开发人员可以轻松地将Apple Pencil支持添加到他们的应用程序中,并包含重新设计的工具面板。...功能强大的新Metal Device系列可以在所有苹果皮平台上实现多种GPU类型之间的代码共享,而对iOS模拟器的支持使得为iOS和iPadOS构建Metal应用程序变得简单。

    3.4K20

    iOS主线程卡顿优化实战:从30fps到60fps,用户体验翻倍(附GCD实战代码)

    尤其是在iPhoneSE、iPhone11等中低端机型上,卡顿问题更加突出。...核心优化点是利用cell复用机制,避免重复创建cell;不在cellForRowAt:方法中执行耗时操作,比如图片加载、数据处理;结合图片懒加载、分页加载,减少一次性渲染的数据量,减轻主线程压力。...第四个技巧是减少视图层级和透明视图,iOS的视图渲染是逐层绘制的,视图层级越多,渲染耗时越长;透明视图会增加GPU的混合渲染开销,导致卡顿。...给大家分享一个社交APP的主线程卡顿优化案例,这款APP上线后,用户反馈列表滑动卡顿、页面切换不流畅,尤其是在iPhoneSE(第二代)上,帧率经常跌破30fps,用户投诉量居高不下。...总结一下,iOS主线程优化的核心是“保证主线程空闲,优化渲染流程”,关键在于将耗时操作移至子线程,减少UI绘制和渲染开销。

    42010

    《Quartz 2D编程指南》电子签名、图片处理(水印、裁剪以及屏幕截图)、常见图形的绘制(饼图、柱状图、雪花、手势密码、画板)

    、文字 2》绘制、生成图片(图像) 3》读取、生成PDF文件 4》图片的裁截:圆形裁剪 5》自定义控件 1.2、quartz 2D在iOS开发中的价值 当使用uikit框架的普通控件无法实现需求的时候...6)路径主要使用在定义视图运动轨迹 1.4、quartz 2D 的内存管理 1、如果含有create、copy的函数创建对象,使用完之后必须释放,否则将导致内测泄露 2、如果retain了一个对象,不在使用时需将其.../details/113032551iOS横屏电子签名上篇【核心原理: 旋转特定的屏幕&Quartz2D】应用场景:采集电子签名iOS横屏电子签名下篇(内含demo源码)【核心原理: 只旋转特定的屏幕&...视频:https://live.csdn.net/v/158749private : https://github.com/zhangkn/TurntableV 4.3 常见图形的绘制:手势密码、饼图...逆向 CSDN认证博客专家 Swift SwiftUI Objective-C 微信公众号:【iOS逆向】 iOS逆向与安全,熟悉iphone/tweak、iphone/tool、cydia的repo

    1.4K20

    iOS 事件处理机制与图像渲染过程

    实际上这些背后关联的Layer图层才是真正用来在屏幕上显示和做动画,UIView仅仅是对它的一个封装,提供了一些iOS类似于处理触摸的具体功能,以及Core Animation底层方法的高级接口。...而Core Graphics/Quartz 2D的大部分绘制操作都是在主线程和CPU上同步完成的,比如自定义UIView的drawRect里用CGContext来画图。...按照这样的说法,如果将不在GPU的当前屏幕缓冲区中进行的渲染都称为离屏渲染,那么就还有另一种特殊的“离屏渲染”方式:CPU渲染。...当不在一个动画块的实现中,UIView对所有图层行为返回nil,但是在动画block范围之内,它就返回了一个非空值。...Facebook Pop介绍 在计算机的世界里面,其实并不存在绝对连续的动画,你所看到的屏幕上的动画本质上都是离散的,只是在一秒的时间里面离散的帧多到一定的数量人眼就觉得是连续的了, 在iOS中,最大的帧率是

    6.5K100

    iOS下 WebRTC 视频渲染

    前言 今天为大家介绍一下 iOS 下 WebRTC是如何渲染视频的。在iOS中有两种加速渲染视频的方法。一种是使用OpenGL;另一种是使用 Metal。...而Metal是iOS最近才推出的技术,理论上来说比OpenGL ES效率更高。 WebRTC中这两种渲染方式都支持。它首先会判断当前iOS系统是否支持Metal,如果支持的话,优先使用Metal。...GLKView的好处是,开发人员可以将自己的精力聚焦在OpenGL ES渲染的工作上。 GLKView展示的基本流程如下: ?...在绘制方法返回之后: 解决多采样 buffers(如果开启了多采样)。 当内容不在需要时,丢掉 renderbuffers。 展示renderbuffer内容。...理论上,距形可以通过点、线绘制出来,但这样做的话,OpenGL ES就要绘制四次。而通过三角形绘制只需要两次,所以使用三角形执行速度更快。

    2.8K30

    OpenGL与OpenGL在移动端的应用

    (以iOS平台为例) 一.用openGLES绘制图形的基本流程 1.UIView,要展示图形,还是需要基本的承载视图,UIView ?...上,可以支持opengles3.0的最低环境是iphone5s ios7.0....接着对装配好的图元进行裁剪(clip):保留完全在视锥体中的图元,丢弃完全不在视锥体中的图元,对一半在一半不在的图元进行裁剪;接着再对在视锥体中的图元进行剔除处理(cull):这个过程可编码来决定是剔除正面...如我是做iOS开发的,以前接触的图形上的东西就是view、layer这种,学了openGL后,会明白layer原来也是OpenGL ES的基本图元——两个三角形绘制而成。...在iOS12之后,OpenGL ES的api被废弃了,苹果还是主推他们自己研发的metal,对于OpenGL ES和metal,事实上很多api都非常相似,再学习成本不会很大。 ?

    4.1K30

    原以为是 Visio 的平替,没想到是个王者!

    据说它号称mac上的Visio,不仅曾经获得过苹果设计奖,还能利用Visio的导出函数来导入、导出Visio的XML文件,使用苹果电脑和ipad的科研同志有福啦,这款软件可以完美取代Visio!...矢量图、原型、流程图等等都不在话下! 它就是 Mac 上的绘图利器:OmniGraffle!...System Requirements Mac: macOS 11 iPad & iPhone: iOS/iPadOS 14 OmniGraffle是绘图软件,其只能于运行在Mac OS X和iPad平台之上...可以用来绘制图表,流程图,组织结构图,组织头脑中思考的信息或设计网页或PDF文档的原型。...流程图常用的操作如下: 圆角矩形表示“开始”与“结束” 矩形表示行动方案、普通工作环节用 菱形表示问题判断或判定环节 用平行四边形表示输入输出 箭头代表工作流方向 OmniGraffle整体界面如下: 绘制图形

    3K10

    iOS多边形马赛克的实现(下)

    第二步:绘制 前面详述了如何找出手指移动区域所覆盖的马赛克块,那么如何给这些马赛克块上色呢?上一篇里我们讲到,通过遍历maskImage对应的有效颜色区域,求出该区域的rgb平均值即可。...现在看看我们用新方案实现的涂抹绘制多边形马赛克效果吧。 ? 大功告成!看起来可还行?事实上在实现过程中也是遇到了各种坑,接下来说一下主要遇到的问题。...另外在计算马赛克重心的时候,可以看到边缘地方的马赛克块重心很有可能不在图片范围内。所以这里一定要做好预防,否则涂抹到边缘时候很有可能crash(CLAMP函数第二、三个参数分别对应最小、最大值)。...总结 回顾上下两篇iOS多边形马赛克实现,主要研究和探讨了以下几个问题:针对各种形状的多边形找到通用平铺规则;手指移动时判断经过了哪些马赛克块;计算颜色及绘制;消除锯齿问题、边界问题以及叠加顺序问题。...有兴趣的朋友可以试用一下天天P图的马赛克模块哦~ ---- 作者简介:jennysluo(罗爽),天天P图iOS工程师

    2.4K130

    爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结

    ▲ Andriod上的各种各样分析工具,请自行选用 4.1 SysTrace分析技巧 【4.1.1、UI Thread 颜色显示】 绿色:Running 白色:Sleeping 棕色:Uninterruptible...Trace上启动时间: 从bindApplication至第二次traversal完成,可认为UI第一次绘制完成,启动完成。选中开始点和结束点,可以查看过程消耗的时间。...注意: 1)不在主线程做耗时任务,如文件,网络等; 2)启动阶段初始化任务,尽量在异步线程处理; 3)主线程,不用等待或者依赖于子线程任务。...5.6 Service延后初始化 App启动中过程中,经常进行Service初始化操作,由于Service使用一般不涉及界面,可能会认为初始化生命周期不在主线程中,其实不然,在3.2的启动过程源码介绍中讲到...进一步优化:可将业务逻辑的初始化划分为,首页绘制后,5s,10s,20s三个阶段分别初始化,防止首页绘制执行任务过多造成掉帧。 成果:释放绘制阶段的CPU,可将复杂的绘制提前200ms以上。

    1.5K71

    当 Flutter 遇见 Web,会有怎样的秘密?

    更新:传统的 APP 上架之后,出现了业务 BUG,用户只能去更新 APP,进行 BUG 修复。客户端实现热更新修复 BUG,有多难,可以问问 IOS 的开发同学。...在 Android 上,v8 的 Native Binding 可以很好地实现,但是 iOS 上的 JavaScriptCore 不可以,所以如果使用 JavaScript,Flutter 基础框架的代码模式就很难统一了...在确定每个空间的位置和大小之后,就进入绘制阶段。绘制节点的时候也是深度遍历绘制节点树,然后把不同的 RenderObject 绘制到不同的图层上。...)之后送往底层,由 GPU 绘制到屏幕上。...这也导致了技术方案的实现上存在了差异。 5)既然看到了 Widget,那一定会有生命周期的存在 由于篇幅限制,这里就不在详细介绍了,简单描述一下,生命周期,让您有个影响。

    1.9K20

    OpenGL ES for Android 世界

    OpenGL ES 目前支持 iOS、Android、BlackBerry、bada、Linux 和 Windows。...在片元着色器中我们已经看到纹理变量的声明方式为: uniform sampler2D sTexture; 我们知道 uniform 属性值由应用程序赋值, /** 生成一个纹理id,texutes 用以接收纹理句柄id */ 如果要把改纹理绘制到屏幕上...将上述纹理映射到三角形上 06 OpenGL 绘制纹理 现在我们已经有一个纹理图片了,现在我们就把这张图片绘制到屏幕上,对以上内容做个整合,首先,准备顶点和片元着色器代码: 顶点着色器: private...@Override 详见 DemoGLTextureActivity 该部分代码已经在 AVPlayer 项目中有详细说明,这里就不在做介绍。...往期内容: iOS/Android 音视频开发专题介绍 iOS/Android 音视频概念介绍 MediaCodec/OpenMAX/StageFright 介绍 使用 MediaExtractor 及

    2.1K10

    Flutter 1.20 下的 Hybrid Composition 深度解析

    如今 1.20 官方开始尝试推出和 iOS PlatformView 类似的新 Hybrid Composition 模式,本篇将通过三小节对比介绍 Hybrid Composition 的使用和原理,...:一个在 iOS 平台视图之下,一个在其上面。...所以这样的好处就是:需要在“iOS平台”视图下方呈现的Flutter UI,最终会被绘制到其下方的纹理上;而需要在“平台”上方呈现的Flutter UI,最终会被绘制在其上方的纹理。...在不用 PlatformView 的情况下,Text 绘制的蓝色的 Re文本居然可以显示在白色不透明的原生 Re 白色小方块上!!! 也许有的小伙伴会说,这有什么稀奇的?...image 而如果他们不在一个区域内,那么就会各自使用自己的 FlutterImageView 。

    2.8K60

    OpenGL ES初探:渲染流程及GLKit简介

    OpenGL可以将调用函数转换成图形处理命令并传送给底层图形硬件,因此OpenGL的绘制效率非常快。...顶点着色器进行旋转、平移、缩放的矩阵变换,以及对光照进行设置,之后输出数据 图元装配:确定图形显示为什么形状,点、线或者三角形 光栅化:将图元转换为二维信息,因为屏幕是二维的 Clipping: 超出视景体的部分不在屏幕上显示...裁剪测试:确定一个像素(x, y)是否在矩形区域内,如果不在则被丢弃,不予显示 深度测试:对深度值进行比较,确定显示层级 混合:将新生成的片段颜色和保存在帧缓冲区的位置的颜色组合起来,例如两个view有重叠...iOS系统是唯一支持OpenGL ES但不支持EGL的平台,因为苹果提供了一套自己的EGL API实现,称为EAGL。...一个连接OpenGL与原生窗口间的接口,iOS系统不支持EGL,但是有一套自己的实现,成为EAGL。 3、何为GLKit?

    2.7K40

    React Native组件(二)View组件解析

    比如一个地图组件上覆盖了一个图像组件用来显示信息,但是我们不想这个图像组件影响用户的手指拖动地图的操作,这时就可以使用图像组件从View组件继承得到的pointerEvents属性来解决这个问题。...它的一个特殊的与性能优化相关的属性,通常在ListView和ScrollView中使用,当组件有很多子组件不在屏幕显示范围时,可以将removeClippedSubviews设置为true,允许释放不在显示范围子组件...它用来决定视图是否要把它本身(以及所有的子视图)渲染到一个GPU上的硬件纹理中。...在Android平台上,这对于只修改透明度、旋转、位移和缩放的动画和交互是很有用的:视图不必每次都重新绘制,显示列表也不需要重新执行,纹理可以被重用于不同的参数。...shouldRasterizeIOS (iOS) shouldRasterizeIOS的取值为bool,是iOS平台独有的属性。它决定视图是否需要在被混合之前绘制到一个位图上。

    3.3K60

    ApacheCN 安卓译文集 20211225 更新

    通过构建安卓游戏学习 Java 零、前言 一、Java、安卓、游戏开发 二、Java——第一次接触 三、变量、运算符和表达式 四、使用 Java 方法构造代码 五、安卓画布类——绘制到屏幕上 六、使用循环重复代码块...设备的内部 三、从 iOS 设备获取数据 四、从 iOS 备份中获取数据 五、iOS 数据分析和恢复 六、iOS 取证工具 七、了解安卓 八、安卓取证配置和数据预提取技术 九、安卓数据提取技术 十、安卓数据分析和恢复...让我们帮助您捕捉您的想法——WearRecyclerView和更多 三、让我们帮助您捕获您的想法——保存数据和定制用户界面 四、测量你的健康状况——传感器 五、测量您的健康状况——同步收集的传感器数据 六、无处不在的方法...——我们的地图和谷歌地图客户端 七、无处不在的方法——用户界面控件以及其它 八、让我们以一种聪明的方式聊天——消息 API 和更多 九、让我们以聪明的方式聊天——通知和更多 十、只是你的一张脸——WatchFace...虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)

    9.9K20
    领券