2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Swift 被 Apple 定义为面向 Protocol 的编程语言 - iOS 移动开发周报

  • 2015-06-29
  • 本文字数:1261 字

    阅读完需:约 4 分钟

新闻

  1. 21.5-inch 的 4K Retina iMac :在 SDK 放出后,程序员们就没有停止对其中隐藏细节的挖掘。自上周曝出 12-inch 的 iPad Pro 后,这周又有开发者在 OS X El Capitan beta 中发现了分辨率为 4096 x 2304 的一款 iMac 设备,这应该对应的是 Retina 的 21.5-inch iMac。
  2. Apple 发布了第二版 iOS 9 beta SDK :相比起第一版 SDK,beta 2 中主要实装了像 OptionSetType 等 Swift 2 特性,另外还修复了海量的 Swift 编译器错误。一些详情可以在这里找到。

教程

  1. Introducing Protocol-Oriented Programming in Swift 2 :Swift 2 通过 Protocol Extension 大幅强化了 protocol 在这门语言中的地位,而整个 Swift 标准库其实也是基于 protocol 来设计的,使用了大量的 protocol。可以说 Swift 是一门面向 protocol 的语言。这篇教程中列举了一些 protocol 在实际使用中的方法,可以让你掌握面向接口编程的基础知识。
  2. 《RAC Marbles》:一个直观的交互展示 RAC 中各种信号行为的网站。虽然是针对 RAC 的,但是其实很多概念都是函数式编程通用的。对于函数式编程有兴趣的朋友可以看看,另外也很适合在日常工作中用到时进行查阅。
  3. 《基于 CoreText 的排版引擎》:CoreText 在做图文混排和一些复杂的富文本排版时是不可避免要接触到的。这一系列的文章从最基本的开始,一步一步完成一个支持图文混排、支持图片和链接点击的排版引擎。推荐给想要入门和使用 CoreText 框架的朋友阅读。

开源项目

  1. Tropos :Thoughtbot 开源的一个天气预报 app,使用了 ReactiveCocoa 和 MVVM 进行架构。想要学习使用这两种技术的同学不妨仔细读一下代码,毕竟天气预报作为一个入门 app 来说简直是再适合不过了。之后这个项目还有已计划迁移到 Swift 以及 ReactiveCocoa 3.0,所以可以持续关注。
  2. Bohr :实际开发过一些 app 的话你就会知道,设置页面一直很难做好。传统来说我们会选择使用 static 的 table view 来制作设置页面,但是很多时候条件判断和变更起来很不方便。Bohr 虽然也是基于 table view,但是却是一个很不错的改善方案。它封装了一些常用的 cell 来帮助简化构建设置页面的流程,另外也将添加 cell 的工作进行了剥离,这使得设置页面的制作更加简便灵活。
  3. GEOSwift :GEOSwift 是 Swift 写的用来处理地理模型和拓扑模型关系和转换的框架。另外这个框架也和 MapKit 和 MapboxGL 有很好的集成,app 中如果有地图相关内容的话可能会很有用。
  4. SXWaveAnimate :一个很漂亮的灌水动画,可以用来丰富 app 中的动画效果。可能泛用性并不是很好,但是可以对实现的动画代码进行参考,并调整写出自己的动画代码。
  5. DownloadButton :类似 App Store 下载时的按钮,提供了多种样式和状态,并且可以在 Interface Builder 中进行自定义。如果 app 中有类似的按钮需求的话,这个自定义控件能让你省掉很多工作量。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-29 06:3011236
用户头像

发布了 59 篇内容, 共 24.8 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

准备好迁移上云了?请收下这份迁移步骤清单

龙智—DevSecOps解决方案

迁移计划 迁移上云计划 迁移上云步骤 上云步骤清单 云迁移策略

SLSA: 成功SBOM的促进剂

安势信息

开源 开源软件供应链 软件物料清单 SBOM SLSA

直播分享| 腾讯云 MongoDB 智能诊断及性能优化实践

MongoDB中文社区

mongodb

游戏资产复用:更快找到所需游戏资产的新方法

龙智—DevSecOps解决方案

游戏开发 游戏资产 艾尔登法环 游戏资产复用

Python 设计模式:适配器模式

宇宙之一粟

设计模式 适配器模式 6月月更

在宇宙的眼眸下,如何正确地关心东数西算?

脑极体

混沌工程,了解一下

华为云开发者联盟

云计算 测试 后端 混沌工程 华为云

为什么你的数据图谱分析图上只显示一个值?

清林情报分析师

数据分析 可视化 知识图谱 三元组 情报分析

脚本之美│VBS 入门交互实战

Windows Server 6月月更 VBS 脚本之美

RabbitMQ访问Web端口报错User can only log in via localhost

龙空白白

基于微信小程序的婚纱影楼小程序开发笔记

CC同学

小程序

活动报名 | MongoDB 5.0 时序存储特性介绍

MongoDB中文社区

mongodb

如何轻松快速构建区块链应用?技术大牛带来一线技术实践分享

腾源会

八大误区,逐个击破(终篇):云难以扩展、定制性差,还会让管理员失去控制权?

龙智—DevSecOps解决方案

Atlassian 云版 版本选择 迁移上云

应用实践 | Apache Doris 整合 Iceberg + Flink CDC 构建实时湖仓一体的联邦查询分析架构

SelectDB

数据库 flink Doris iceberg

openGauss Developer Day 2022正式开启,与开发者共建开源数据库根社区

微信视频号如何用 PC 电脑做直播?

boshi

直播 视频号

Flutter中的GetX状态管理用起来真的那么香吗?

岛上码农

flutter ios 移动端开发 安卓开发 6月月更

SAVE: 软件分析验证和测试平台

华为云开发者联盟

云计算 测试 后端 开发 软件分析

火线沙龙第26期-多云安全专场

腾源会

学C++还是学Java?做软件研发还需掌握哪些知识和技能?

dvlinker

Java c++ 数据库 网络知识 汇编代码

Fabric.js 手动加粗文本iText

德育处主任

canvas FabricJS 6月月更

区块哈希竞猜游戏系统开发(dapp)

薇電13242772558

哈希值

如何通过7个步骤编写出色的在线用户手册

小炮

Helix QAC更新至2022.1版本,将持续提供高标准合规覆盖率

龙智—DevSecOps解决方案

C语言 静态代码分析 Helix QAC 代码合规率 代码合规

如何使用物联网低代码平台进行流程管理?

AIRIOT

低代码 物联网,

JDBC 在性能测试中的应用

阿里巴巴云原生

阿里云 云原生 JDBC 压测

好用的人事管理软件有哪些?人事管理系统软件排名!

优秀

企业管理软件 OA管理系统

远程办公之:如何成为时间管理大师?| 社区征文

甜甜的白桃

初夏征文

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

阿里巴巴云原生

阿里云 架构 云原生 混部 Koordinator

RabbitMQ基础知识

龙空白白

RabbitMQ

Swift 被 Apple 定义为面向 Protocol 的编程语言 - iOS移动开发周报_移动_王巍_InfoQ精选文章