微信号:gh_37ebe37722aa

介绍:txx的笔记分享

UXKit,iOS 开发者的福音

2016-04-29 22:21 txx

AppKit

相信不少 iOS 开发者朋友们都遇到过这样的情况,公司要做个内部的小工具。然说你既然会 iOS 就顺路把 OS X 的应用做了吧,反正都是 interface 拖拖控件 Objective-C 写几行代码。

然而,当你自信满满新建了一个 OS X 的工程,打开 Interface Builder 的时候,
看到的是这样的。


第一次见到这个场景的大伙儿,绝对是这个状态的。


同时心想,这他妈是啥;点了几个按钮,这他妈又是啥。

于是当你淡定的,关了 Interface Builder,打开编辑器。点开了 NSTableView.h 看一眼,一种似曾相识的陌生人之感油然而生。 强行忍着在 IB 拖了几个控件,结果发现各种找不到 .value .text,取而代之的是 [view stringValue] 的时候。就成了这个样子:


或者是这个样子:


毕竟 APPKit 太古老了,20多年的历史。很多历史问题,苹果的工程师也觉得不爽。但是历史的包袱过于沉重了,只能这样。

上次和 Chris 一起吃饭,他也在说 Mac 开发者有充足的内存、性能可以使用。但没有像 UITableView UICollectionView 那样舒服的组件。NSTableView 太难用了。他也提到了本文的主角 UXKit,很期待。

于是我们也可以看到很多开发者选择了 WebView 来做 UI,例如 Slack、网易云音乐。

UXKit

在 10.10.3 beta 的时候,国外的开发者发现,Photos 的 UI 是用一套全新的框架书写的。叫做 UXKit,经过 Class-dump 之后发现,API 更加的现代化,基本上与 UIKit 一致。

于是无数的 OSX 开发者开始意淫,自己憋屈的生活快要结束了。这个现代化的框架会在 WWDC 2015 上发布吧?

然而…并没有。


但是我们要记住,OS X 并不是 iOS,AppStore 并不是唯一的分发渠道。

Framework 只要有头文件就能用,私有库只要不上 AppStore 就可以随便用。

于是,通过 Class-Dump 和一点点尝试,以及对着 Github 上的 UXKit Sample 的工程文件调试了一下,成功的做出来了一个 pod。

仅需 Pod Install UXKit 就可以使用这个框架。

一秒学会 OS X 开发

比如我要实现这样的一个页面。BTW:这是我最近在写的一个关于科学上网的项目,最近一段会开源。


写出来的代码,是这样的:


除了绿颜色的变多了,UI 变成了 UX。和 UIKit 同步率高达 90%。于是随便搞搞就可以弄出来一个像样的原生 UI 了。

UXKit 的局限性

然而,UXKit 只是 AppKit 的封装。我们在需要一些高级定制的时候,还是需要看 AppKit 以及其他奇怪的 OS X 框架。

以及 UXKit 是没有任何文档的。我写了两天这个东西,完全是凭借着肌肉记忆在写。但都还是挺顺利的,我们可以把 UXKit 当作一个 iOS 工程师向 OS X 工程师的过渡框架,让学习曲线更平滑一些。

怎么样,看了我的介绍,做些小工具的时候,就没有那么憷头 OS X 开发了吧?

点击阅读原文即可跳到 UXKit 的 repo,欢迎大家 Star。


同时欢迎大家关注我的公众号,每周我都会写一些与众不同的技术文章。




 
糖炒小虾 更多文章 另辟蹊径的网络协议分析方法 逆向分析网络协议 iOS 篇 给那些刚入行的 iOS/Android 开发新手们的一些建议 [一周一算法] 基础知识 如何正确理解 Bitcode
猜您喜欢 再讲IQueryable<T>,揭开表达式树的神秘面纱 用Golang写一个搜索引擎(0xFF) 组长的决定都是对的吗? 如何学习编程并转行? 2016 年后 Web开发趋势是什么