Tag: 移动开发人员

Gotta Go Fast:在iOS中构建速度。 第2部分

有时,您会发现自己的应用无法正常运行。 因此,这里提供了一些您可以使用的工具以及可以使事情变得更好的最佳实践。 这是本文的第二部分,基于2017年国际移动开发者大会MBLT DEV的Fyusion的iOS工程师,RayWenderlich.com上的iOS开发教程作者Luke Parham的主题演讲。 在这里您可以找到第一部分。 在这里观看完整的演讲: 这是一个时间分析器,其顶部有一个帧速率表。 底部是调试选项中最重要的部分。 我们将介绍两个最重要和最容易解决的问题。 第一个是颜色混合层。 这是一个非常容易解决的问题。 这使我们进入了表演警察的第一部分。 基本上,许多应用程序都存在问题:甚至iMessage(心爱的Apple应用程序)也做了很多不太出色的事情。 在这里,我们看到有很多红色: 红色表示您的标签带有白色背景。 然后,它们位于另一个白色背景之上,并且由于某种原因,它们未设置为不透明。 因此,搅拌器将这些颜色(白色和白色)混合在一起,从而得到白色。 对于具有红色的每个像素,它都会进行额外的计算而没有任何好处,但是背景仍然会变为白色。 为避免这种情况,只要它们在同一颜色上具有相同的颜色,就可以使它们尽可能不透明。 如果子视图具有相同的背景色,则不需要混合。 您所要做的就是将图层的不透明度设置为1,然后确保设置了背景色。 如果您的背景颜色是透明的,则它永远不会是不透明的。 如果打开此选项,则屏幕外渲染的元素将以黄色显示。 关于Core Animation工具的好处是您可以看到其他应用程序。 您可以打开这些选项,然后转到系统中的任何应用程序,然后可以查看它们在做什么错。 在这种情况下,Instagram顶部会显示这些小气泡,向您展示人们的故事。 如您所见,它们都是黄色的。 在iPhone 5上,它们的速度非常慢。 这是因为屏幕外渲染比alpha混合差得多。 它使GPU停顿。 最终必须在GPU和CPU之间来回进行额外的计算,因此您将获得大多数情况下不必要的额外停顿。 下一条规则:不要使用转角半径属性。 如果您有一个视图并设置了view.layer.сornerRadius,则始终会引入屏幕外渲染。 相反,您可以使用贝塞尔曲线路径和早期的同类CGBitmap内容。 在这种情况下,为UIGraphics上下文。 此函数与UIImage一起使用,它具有一定的大小,并根据该大小进行圆角处理,并使用贝塞尔曲线路径进行剪切。 然后,我们裁剪图像并从UIImage上下文返回它。 因此,这将返回一个预先舍入的图像,而不是舍入该图像所在的视图。 最后一个例子。 这是Twitter,这是此动画运行的实时视图。 它应该打开并向您显示信息,但是所有这些文本和内容均已在屏幕外呈现,因此将动画放慢了速度。 这是我在App Store上的应用程序中发现的性能最低的东西。 那么这是怎么发生的呢? 导致这种情况发生的一件事是CALayer的shouldRasterize属性。 这是图层上的一个选项,允许您缓存已渲染的纹理。 有很多奇怪的规则。 就像如果未在一定毫秒内使用它一样,它将离开缓存。 然后,如果它离开缓存,它将在每帧上进行屏幕外渲染。 拥有它可能带来的好处并不真正值得。 而且很难检查它是否真的使您受益。 如果可以,请避免屏幕外渲染和Alpha混合。 […]

Hydric Media在Playgrounds Swift和Apple开发者大会上

上周,我们将领先的iOS开发人员和喜爱的Brit Kseniya发送到了在墨尔本举行的2017 Playgrounds Swift和Apple会议上。 开发人员大会持续了两天,并主持了一些激动人心的演讲嘉宾和热门话题。 活动开幕时放映了纪录片“代码-消除性别差距”,以提高女性程序员的认识,这是Kseniya的一个话题。 她用克塞尼娅本人的明智话说。 代表技术界中的女性是很酷的……尤其是那些喜欢parataaay的女性。 随着Kseniya对Reactive和Functional Swift的兴趣,会议的一些重点是Chris Eidhof关于Swift中的函数式编程和可变性的演讲。 “克里斯在技术演讲方面很棒,因为他可以在演讲期间现场编写代码,这样更有意义,而且某种程度上,它使您想要立即尝试并实践他的实践。” 其他一些亮点包括Greg Heo深入研究Reactive Swift,Wendy Lu讨论了Pinterest应用程序的开发以及“真棒”的 Harlan Haskins 。 Harlan谈到了LLVM,并在Swift中构建了一个编译器。 在总结会议经验时,Kseniya只能说些好话。 这种事件确实有助于消除您对自己作为程序员的任何疑问,并确实激发了您的灵感。 它带来了社区的支持感,并使您想尝试所有学习到的东西。 作为程序员,我们都很内向,并且有焦虑感,因此与志同道合并向您展示他们可以做什么的人在一起确实可以真正帮助开发作为编码员的个人,更不用说女性程序员了! 现在真切地认识了来自世界各地的这些杰出的开发人员。 我可以亲自与他们联系以获取最佳做法,而不仅仅是成为新手在线提问。 而且现在我还有更多的Twitter粉丝哈哈 您可以关注Kseniya的Twitter帐户,以获取会议中的所有亮点…或者,也可以继续追随她的追随者。