iBooks

iBooks 数据库设计分析

很久以前还吐槽过 iBooks 的数据库表设计特别鬼畜,实际上后来我发现我错了。为什么错了呢?但是我为了研究如何自定义 iBooks 丛书集的时候[1],用 SQLite 的方式打开的数据库文件,导致我看到了一堆大写字母拼写成的数据项名字。而实际上正确的打开方式是用 Xcode 的 Core Data 组件打开。 获取数据库 Schema 我们可以通过「显示包内容」的方式进入到 iBooks 软件的内部文件夹,查找拿到编译过的数据库 Schema 文件(.mom)。或者直接在命令行输入 cd /Applications/

  • ココロ
    ココロ
2 min read
macOS

Sparkle 常规使用姿势

Maria 在最近终于添加上了自动更新的功能,之前有想过加这个功能,但是当进入 Sparkle 官网看到密密麻麻的文档和需要手动签证书什么的字眼,懒癌突然发作。 寒假一天闲着总算是把这个功能添加上了。总的来讲,添加这个功能非常的简单,但前提是你使用较新版本的 Xcode,第二前提是你有耐心仔细的看使用文档[1](这一点特别重要,不然你会犯一些特别弱智的错误)。 appcast.xml Sparkle 发布更新是通过 RSS 的方式来做的。Sparkle 自定义了一套专用的 xml 格式,如果手动书写的话会比较麻烦,所以自己写了一些小程序来快速生成 appcast.xml。 // npm install xml

  • ココロ
    ココロ
2 min read
OS X

Maria 开发记录 II

Maria 是为 aria2 这款命令行下载软件定制的 Native App,开发 Maria 本身是不用写下载核心代码的。 这个项目最初创建于4月份,至今已经有6个月了,从最初的一个 Today Widget 发展到现在已经快要接近于完整的 macOS 应用了,(但是在我眼里还是不算完整应用,因为下载核心需要依赖 aria2 项目,而缺乏自己的下载核心程序),之前也写过一篇文章简单讲了一下这个程序的编写过程。最近的几次更新主要是对 aria2 的深度集成,到目前也已经有所成果了,所以准备记录一下这其中的过程和坑。 集成 aria2 一开始是根本没打算集成 aria2 的,

  • ココロ
    ココロ
5 min read
Swift: 从入门到重学?
Xcode

Swift: 从入门到重学?

当时 Swift 才出来的时候就去体验过了这门新语言,也写过一篇文章介绍这门语言,而现在 Swift 3.0 发布,我决定重写这篇文章,你可以看到,前后两次我对这门语言的理解是有很大不同了。 同时这也说明了一个道理,如果你没有花一定的时间精力去认真体会一门语言,你是根本没有权利去评判一门语言的好坏的。 有很多人说,这 Swift 一年一个语法版本大更新,垃圾语言,在我看来不过是人云亦云的跟风狗罢了。 关于 Swift 我打算分成两部分讲: 第一部分是语言部分,主要是这门编程语言的语法,还有内置的一些库,比如枚举类型、可选类型、协议等等; 第二部分是函数式编程思想,这当中可能会涉及到函数式编程鼻祖 Haskell

  • ココロ
    ココロ
7 min read
OS X

Maria 开发记录

Maria 是为 aria2 这款命令行下载软件定制的 Native App,开发 Maria 本身是不用写下载核心代码的。 这篇文章主要目的是分享我在开发过程中的一些经验以及遇到的一些坑,顺便期望着有人能快速看懂我的代码提出意见。 Aria2 我们先来说一下 Aria2 是什么。Aria2 是一款命令行下载软件,你可以在终端输入简单命令直接下载文件,而不用再非常麻烦的打开其他下载工具了。~~(其实我觉得一点也不麻烦)~~比如快速下载某个文件: $ aria2c "https://moeoverflow.com/moe.gif" 我们通常所说的 Aria2,其实是指的 Aria2

  • ココロ
    ココロ
9 min read
OS X

Cocoa dev 运行 shell 命令

近期在做 Maria 的开发的时候,需要运行 Shell 命令,这里把遇到的一些坑说明一下。 Sandbox 首先如果你需要通过 Shell 多外操作的话,需要关闭 Sandbox,不然执行 Shell 命令的时候就会一直卡在那里。 .sh 文件 执行 Shell 命令,一般都是先写到一个 .sh 文件里面。当你添加一个 .sh 文件到工程项目里时,请注意要连接上项目相应 Target. Error 如果遇到程序 Crash 并给出

  • ココロ
    ココロ
1 min read
Swift 初体验
Xcode

Swift 初体验

准备 Objective-C 转 Swift 了「转什么转诶,反正两个不都得学嘛 「而且本来OC都还没没学好呢、 第一次看到 Swift 的代码,首先注意到的就是语句末尾讨厌的分号终于被干掉了,真是有点小学生作文体「高兴得跳了起来」的感觉呢。 整体看来 Swift 的代码是变得更加简洁了。Swift 与 Objective-C 相比,虽然大体上编程思想差不多,但是语法方面还是有很多的地方差别蛮大的,第一次看到的 Swift 的代码多少都觉得有点奇葩。 「Swift 相比原先的 Objective-C 最重要的优点之一,就是对函数式编程提供了更好的支持。」 由这两个代码段就能看出来

  • ココロ
    ココロ
1 min read