老司机 iOS 周报 #8
lipiwang 2024-11-27 17:19 8 浏览 0 评论
老司机 iOS 周报 #8
新的一年,欢迎第十位编辑 @Parsifal 的加入。
新闻
App Store 描述截图从 5 张增加到 10 张
苹果再次对 App Store 更新了上架规则,新的规则宣布,开发者对于其开发的 App,在截图介绍部分可以添加 10 张屏幕截图,而之前是 5 张。
四月起,所有提交审核的 APP 都要基于 iOS 11 的 SDK 开发
苹果发出最新通知,从 2018 年 4 月开始,所有提交审核的 APP 都要基于 iOS 11 的 SDK 开发,且支持 iPhoneX 的 Super Retina 显示屏。
这也意味着,开发者至少需要使用 Xcode 9 来开发 App ,并确保他们的 APP,在 iPhoneX 上根据安全区域进行了适配。
文章
探索 iOS 内存分配
介绍了 iOS(OS X)系统中 VM 的相关原理,以及如何使用 VM Track 模板来分析 VM Regions,通过深入了解 iOS 的内存分配,可以有针对性的对内存进行优化。
移动场景下通信协议 FlatBuffers、ProtocolBuffers、MessagePack 选优
JSON 有可读性高、易于使用的优点。但是也有解析费时、解析内存耗费高、及数据量大的缺点。除了 JSON,现在主流的还有 MessagePack、FlatBuffer、ProtocolBuffers 通信协议。文章综合不同场景对比了这几种通信协议的优劣。
Just Controllers
iOS 上的 MVC 模式最后会导致 VC 中有大量代码在业界已经达成了共识。优化的一种方式是把 VC 中的代码拆分到 child view controller。实践中你会发现 child view controller 的使用起来并不像 UIView 一样简单,要注意它和 parent view controller 的生命周期控制。View controller 中的 view 使用起来和一个单纯的 UIView 实例也有不同。有的场景自定义一个 controller 类包含 UIView 也许会是一个更好的主意。
UIVisualEffectView Tutorial: Getting Started
利用 UIKit 中提供的 UIVisualEffectView 来实现常见的模糊背景的效果简单又好用。文章介绍了模糊的算法原理和 UIVisualEffectView 的使用方式。
Unit testing asynchronous Swift code
介绍了单元测试中处理异步代码的几个小技巧:通过设置 XCTestExpectation 的 inverted 属性来验证任务是否完成;将异步闭包添加到同步线程中,接着在同步线程中执行一个空的闭包来判断异步操作是否执行完成;在代码中通过 mock 将异步的操作封装为同步的操作方式来避免处理异步的情况。
iOS Developer Roadmap
国外开发者维护的 iOS 开发技能导图,作者将 iOS 开发中所涉及到的技能总结为一个个 topic,并提供对应 topic 的学习资源。无论你是还未入门的小白,还是想继续提升的开发者,亦或是正在准备面试的求职者,都可以利用这份图谱进行知识学习和梳理。
iOS IP 直连原理剖析
移动互联网的网络状况十分复杂,三大运营商、3G、4G、Wi-Fi、地点等任何一个状态的改变都会导致网络状况的变化,IP 直连可以跨过运营商 LocalDNS 服务器解析过程,从而达到降低延迟、避免劫持的效果。本文对 iOS IP 直连原理进行了剖析,高度概括,通俗易懂,值得一看。
iOS Code Signing Tutorial Series
由 Shashikant Jagtap 发布的 iOS Code Signing 相关系列博客,总共五篇。众所周知,iOS Code Signing 对于大部分 iOS 开发者来说,一直都是最神秘的存在,尽管有所谓的官方文档。显然作者也发现了这个问题,所以他采用了亲身实践的方式,力求更简单的为读者解读 iOS Code Signing 的一些细节,小编大体看了下,确实通俗易懂很多。(PS:有在做技术文章翻译的童鞋可以考虑把这个系列翻译成中文,造福更多开发者~)
我是怎么慢慢变懒的(2) : Jenkins 全自动化
作者根据自己的实际项目经验,写了一篇总结。大概讲了「我搭建了一个怎么样的 Jenkins 环境」以及在搭建过程中遇到了哪些问题。
工具
Snipaste for Mac 公测版推出
具体介绍可以看少数派的文章:Snipaste for Mac 公测版推出,改变你在 Mac 上的截图体验。
代码
ZHStatusVolume
设置音量时隐藏系统的 hud,将音量变化展示在状态栏上。用 OC 写的,兼容 Swift,刚刚发布第一个版本,如果使用中有问题欢迎联系我@没故事的卓同学。
ReactiveLists
ReactiveLists 基于 React 编程思想,封装 UITableView 和 UICollectionView 的 API,使用该 API 可以编写 无状态函数 来生成列表页面。作者认为,在向 UIKit 组件提供数据上,这些无状态函数相比 DataSource,Delegate 更易于阅读和迭代,而且还易于测试。
作者关于 ReactiveLists 的介绍:Open Sourcing ReactiveLists for iOS
Uber 的 App 开发架构 RIBs
Uber 的跨平台开发框架 RIBs,架构名由 Router, Interactor 和 Builder 的首字母组合而成,表示了该架构的构成。优势如下:
- 在 iOS 和 Android 间共享同一套架构;
- 可测性和隔离性,便于进行单元测试同时各个独立的 RIB 类间高度解耦;
- 提供代码生成、内存泄漏检测、静态分析和运行时集成等一系列开发工具;
- 一种可伸缩的架构,已被证明可适用于几千人基于统一代码库开发的场景。
一种适合响应式编程和大项目的架构,对架构有兴趣的同学一定不要错过。
SwifterSwift
SwifterSwift 是一个用 Swift 编写的 Extension 的集合,涵盖了开发过程中大部分会用到的方法和函数,是一个不错的工具库。同时 SwifterSwift 大概有 SwiftStdlib Extensions、Foundation Extensions、UIKit Extensions、AppKit Extensions、CoreGraphics Extensions、CoreLocation Extensions、Misc. Extensions 等一系列分类。
音视频
Swift’s Reflective Underpinnings
Swift 核心开发团队成员在 Swift Summit 上的演讲视频。介绍了 Swift 的动态能力的构建基础,提及了未来 Swift 版本中可能引入的动态特性。其实在 Swift 中已经有一些反射的能力,每个类型在内部都有 metadata ,可以查到这个类型的字段、方法,只是没有暴露出来。强烈推荐 Swift 爱好者观看,干货很多。
另外 Swift Summit 的其他视频也都分享在了 Skilled 网站上,大家可以关注一下。
本期编辑
@没故事的卓同学,@mmoaay,@EyreFree,@Damonwong,@张嘉夫,@AidenRao,@Parsifal
说明
表示需翻墙, 表示店长推荐
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)