NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

iOS 开发周报:Swift 开源,新的包管理和 Swift 3.0 前瞻

  • 2015-12-08
  • 本文字数:2107 字

    阅读完需:约 7 分钟

新闻

  1. Apple 开源 Swift :WWDC 15 上 Apple 宣布会在年内开源 Swift,而本周 Apple 如约开源了 Swift。公开的源代码包括之前大家已经知道的 Swift 编译器,标准库和 REPL 环境等,另外这次 Apple 开同时开源了一个 Swift 重写的 NSFoundation 框架和一个全新的包管理系统。所有的项目都可以运行在 OS X 和 Linux 上,这也是 Apple 迈向跨平台的重要一步。Apple 以 Apache License 2.0 以及一个 runtime 例外的条款进行开源,这是一个比较宽松的条件,基本意味着你可以在自己的项目中保留版权说明的情况下随意使用。对于 app 开发者来说,Swift 开源意味着会有更多社区力量成为持续不断的开发,并推进这门语言的发展。同时 Swift 的路线图也在这里进行了公布,开发者们可以在这里找到 Swift 2.2 和 3.0 可能迎来的变化。
  2. Apple Watch 第三季度估算销量为 390 万部:Apple 选择不在财报中单独列出 Apple Watch 的销量,这让业界纷纷猜测。最近国际数据公司 (IDC) 给出了一份全球可穿戴设备销量的预估。2015 年第三季度 Apple Watch 的估算销量在 390 万部左右,在可穿戴设备的市场上仅落后于 Fitbit。这个数字相信也可以为企业决定是否要开发适配 Apple Watch 的应用的决策提供了一些依据。
  3. 知名 OS X 应用 Sketch 宣布退出 Mac App Store :和 iOS 的 App Store 不同,因为 OS X 的开发者可以自行销售软件,所以上架 Mac App Store 并不是唯一选择。Sketch 是 OS X 上一款绘图软件,专注于为应用界面和 UI 进行绘制,受到很多开发者和设计师喜爱。本周 Sketch 开发团队宣布他们将退出 Mac App Store,而仅在自己的商店进行授权销售。此前,用户可以选择在 Apple 商店或者 Sketch 商店进行购买。Sketch 给出的理由是无法提供一些沙盒外的功能,较长的审核时间不利于 bug 修正,以及没有升级价格等问题。这些确实也是当前 Mac App Store 面临的主要问题,本次 Sketch 团队的退出是一个危险的信号,希望 Apple 能及时改进 App Store 的体验。

教程

  1. Objective-C 引用计数原理:一篇比较底层的探索 Objective-C 中引用计数实现的文章。虽然在 ARC 时代对 iOS 开发者来说内存管理已经非常简单了,但是这一套内存管理从原理上并没有改变。从一个 iOS 入门者进阶的道路上,内存管理的方式和原理总是不可能绕过的门槛。这篇文章和之前的黑幕背后的 Autorelease 从比较底层的角度为我们详解了这方面的内容。不论是 iOS 开发新人还是已经有一定层次的开发者应该都能在这两篇文章中有所收获。
  2. Xcode 插件: MMNavigatorFont :一个 Xcode 插件开发的教程,从目标开始到最终效果一步步为我们讲述了如何实现一个可以替换 Xcode 项目面板中字体的插件。Xcode 插件的开发现在没有 Apple 的官方支持,不过 Apple 对于插件开发是采取默许态度的。作为业余时间满足开发好奇心的话,开发 Xcode 插件还是很有意思的一项活动。如果你有需要 hack Xcode 的需求的话,这篇文章可以带领你入门 Xcode 插件开发。
  3. OS X Feast :Raywenderich 推出了一系列 OS X 开发的教程,帮助开发者上手 OS X 开发。相对于 iOS 开发,OS X 相对来说复杂一些,但是同时竞争也不如 iOS 上那样激烈。如果你已经精通于 iOS 开发,想要尝试一些其他东西的话,OS X 开发会是一个很好的方向。因为两种开发使用的语言是一样的,而两者所使用的框架在最近也有融合的趋势,因此对 iOS 开发者来说转换到 OS X 平台的时候也会非常简单。

开源项目

  1. Swift :本周最大的新闻就是 Swift 开源了,这里是 Swift 的开源主仓库。可以看到 Swift 项目的第一行代码是在 2010 年提交的。对于语言设计者和编译器的开发者来说,Swift 会是非常好的学习材料。对于 Swift 的一般的使用者和应用开发者来说,语言开源本身意味着之后这门语言的发展将由开发者们一同决定。而在今后的应用开发中,相比起编译器,我们更有可能接触到的是 Swift Package Manager 这个包管理系统。
  2. Crayons :在应用开发中如果使用 Interface Builder 来构建界面的话,经常会需要为 view 指定颜色。Crayons 是一个帮助我们记录在 IB 中使用过的颜色的插件。你可以为项目添加定义颜色列表,然后在颜色选择界面中直接选择颜色,而不用再进行颜色输入。通过更改列表中的定义,还可以直接将 IB 中的颜色都进行更改,非常方便,这可以大大加快应用的界面开发的速度。
  3. Swiftline :随着 Swift 开源,相信会涌现出不少跨平台的命令行工具,而 Swiftline 就是一个帮助我们开发命令行工具的项目。它提供一系列工具链,可以让我们很轻易地处理命令行输入的参数,构建问答式的命令行交互,以及在命令行中输出彩色的字符串等等。如果你要用 Swift 构建命令行工具的话,这个项目会为你的项目提供很好的起点。
  4. Chatto :Chatto 是一个 Swift 的聊天框架,可以很容易地实现类似信息 app 那样的聊天界面,包括图片发送,内容分页,可交互的键盘等等,是一个实现非常完整的解决方案。

感谢徐川对本文的审校。

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

2015-12-08 18:005520
用户头像

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

关注

评论

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

常见的软件可靠性度量和分析方法

穿过生命散发芬芳

可靠性度量 6 月 优质更文活动

RabbitMQ工作模式 Pub/Sub订阅模式

不觉心动

6 月 优质更文活动

解决vue组件终端报错: error Component name “xxx“ should always be multi-word vue/multi-word

不觉心动

6 月 优质更文活动

SpringBoot整合RabbitMQ生产者

不觉心动

6 月 优质更文活动

深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

汀丶人工智能

人工智能 深度学习 计算机视觉 语义分割算法 6 月 优质更文活动

解决SpringBoot整合Mybatis和Mybatis-Plus不能公用(版本兼容性问题)

不觉心动

6 月 优质更文活动

RabbitMQ工作模式 Routing路由模式

不觉心动

6 月 优质更文活动

RabbitMQ工作模式总结

不觉心动

6 月 优质更文活动

使用SpringBoot整合数据库连接池Druid的错误总结

不觉心动

6 月 优质更文活动

Redis的发布订阅

不觉心动

6 月 优质更文活动

当中间件遇到云原生,看看会发生什么事

金蝶天燕云

云原生中间件 中间件套件

深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

汀丶人工智能

人工智能 深度学习 计算机视觉 语义分割算法 6 月 优质更文活动

SpringBoot项目使用hutool工具进行HttpClient接口调用的处理(文件上传)

不觉心动

6 月 优质更文活动

【Netty】「NIO」(五)多线程优化

sidiot

Java 后端 Netty 6 月 优质更文活动

openEuler22+GreatSQL+dbops玩转MGR

GreatSQL

MySQL 高可用 greatsql greatsql社区

Vue安装并使用axios发送请求

不觉心动

6 月 优质更文活动

RabbitMQ工作模式之Work queues工作队列模式

不觉心动

6 月 优质更文活动

新斗罗大陆游戏详细图文架设教程

echeverra

斗罗大陆

ESP8266调用NTP服务器进行时间校准

DS小龙哥

6 月 优质更文活动

《弥合鸿沟——2023校园招聘调研报告&备战攻略》重磅发布!一文速览10大关键发现

用友BIP

招聘 人才 校招

文末有奖品 | 开放原子全球峰会最新剧透,给我冲!

KaiwuDB

数据库

纠删码技术在vivo存储系统的演进【上篇】

vivo互联网技术

分布式存储 磁盘故障 纠删码 数据可靠性

C语言编程—头文件

智趣匠

C语言 头文件 6 月 优质更文活动

SaaS公司如何成为 AI 独角兽?发挥长板:流程、用户需求和数据积累

B Impact

Vue使用axios进行get请求拼接参数的两种方式

不觉心动

6 月 优质更文活动

聊聊那些奇葩的代码规范 —— 滥用静态导入

HoneyMoose

科兴未来|第六届中国·南宁海(境)外人才创新创业大赛

科兴未来News

2023年全媒体广告投放代理怎么加入?微信广告代理怎么做的?

微点全媒体微信推广渠道

npm安装nanoid生成随机id并简单使用

不觉心动

6 月 优质更文活动

Redis.confp配置文件的一些配置

不觉心动

6 月 优质更文活动

Springboot整合RabbitMQ生产端和消费端

不觉心动

6 月 优质更文活动

iOS开发周报:Swift 开源,新的包管理和 Swift 3.0 前瞻_移动_王巍_InfoQ精选文章