close
当前位置: 物联网在线 > 技术文库 > ios >

iOS开源:Tkeyboard - 通过蓝牙,使用 Mac 的键盘输入内容到 iPhone 设备中

在咖啡馆耗费了数个周末之后,终于将这个灵光一闪的点子变成了一个实实在在可以运行的 app。同时意味着年初制定的第一个小目标达成,完成了 2017年的第一个独立 app。

在app上架的同时,我决定将代码全部开源,除了兑现去年年底的承诺之外,我相信代码本身的价值,要高于 App 的功能,开源能带来更多知识的碰撞和增长。去年开源给我带来了不少乐趣,希望今年能有更好的成绩。整个项目涉及到一些比较实用的技术点,或能惠之于人。

应用场景

这款应用名为:TKeyboard。有一个 Mac 端和一个 iOS 端 App。简单来说,可以通过蓝牙,使用 Mac 的键盘输入内容到 iPhone 设备中。

主要是为了解决 iPhone 设备输入不方便的问题,有 Mac 在身边的时候会比较方便,一时脑洞的小应用。

涉及知识点

这两个 App 解决的用户场景比较完整,代码方面涉及到一些较为实用的技术点:

Mac 端开发,从 iOS 端切入 Mac 端开发其实难度比大部分人预想的都要小,主要是 UI Framework 需要做些学习,用 xib 配合 autolayout 其实很方便,就是做动画会稍微麻烦一些。

iOS 端的话,主要是各种 Extension 的开发学习,现阶段实现的是 Keyboard Extension,后期这个项目计划实现更多的 Extension 功能,最终的目标是成为一个 Mac 端和 iOS 端的多功能同步应用。Extension 开发的重要性,我曾经专门写文介绍过,不再赘述。

另外是蓝牙通讯这一块,iOS 端和 Mac 端共享一套代码。蓝牙这块网络上技术文章比较少,完整的开源项目几乎找不到。我在结合官方 demo 和自己踩坑的基础之上,基本实现了一套完整的蓝牙通讯功能。

最后还有一个简单的网络协议设计,用于 iOS 和 Mac 端做通讯之用,理论上使用 protobuf 更合理,但这是个人项目,处于写代码的乐趣,就自己动手 DIY 了一个,感兴趣的同学也可以自己设计。

全部的代码大约耗时数个周末。其实项目去年底就已经启动了,中间因为各种琐碎事情耽搁了,2017 开年战胜拖延症,终于完成了第一版本代码,算是给去年底做热血规划的自己一个交代。

开源计划

TKeyboard 包含 Mac 端 和 iOS 端两个项目,涵盖一些实用知识,决定开源也算是对 iOS 技术社区做一些微薄的贡献。其中代码可以随意免费使用,但绝不容忍换个皮肤重新上架 App Store 的低素质行为。

后续打算

TKeyboard 的最终目标是一个 Mac 与 iOS 的同步应用,这是一个庞大的工程量,不知道最后会完成为什么样的形态,且做且珍惜。欢迎大家提意见修改。

iPhone 版目前售价 $3,Mac 版免费。因为代码开源,实际和完全免费没差别。如果觉得代码或者 App 本身对你有帮助,可以考虑去 App Store 下载,赞助 Peak 君一杯咖啡。


(责任编辑:ioter)

用户喜欢...

通过模拟深入研究5G NR

3第三代合作伙伴计划(3GPP)去年十二月公布的非独立(NSA)5G创新无线电(NR)规范。NSA规范与LTE / NR双连接(DC)相关联。NSA部署需要更复杂的硬件实现,以允许同时连接LTE和NR网络。 在白皮...


CN0398开发板和ADuCM360_demo_cn0398开源软件包解决了土壤测量系统设

保持适当的土壤湿度和pH值是植物健康的基本要求,无论是用于大规模农业还是简单的家庭菜园。然而,为了测量这些土壤特性,开发人员需要设计出具有成本效益的高精度模拟信号链,能够将...


到2020年,汽车可以通过蜂窝网络进行交谈

根据5G汽车协会周四发布的报告,到2020年将通过蜂窝网络分享其位置,速度和其他信息的汽车将被商业化。 这个70人的小组表示,汽车制造商明年将开始测试蜂窝车到万能的硬件或C-V2X。他们会...


通过节能设计延长传感器节点的使用寿命

物联网节点需要多年的运行而不需要更换主电池,以便将维护保持在最低限度。一些类型的系统甚至可以使用非常小的电池功率来操作,依靠诸如太阳能电池阵列或小型涡轮机的能量采集器来...


创新的组合:开源和众筹

开源已经被称为力量倍增器,这是使公司的员工,融资和资源更为有效的一个因素。但是,在过去的几年里,开源已经开始与另一个力量倍增器 - 众筹相提并论。现在,这种结合的结果正在出...


推荐 10 个饱受好评且功能独特的开源人工智能项目

关于人工智能的项目,相信大家都看过或者用过不少了,但它们的大多数看上去都十分“高大上”,让人感觉要掌握他们犹如习屠龙之术一样。事实上,有很多关于人工智能的项目还是十分实...


通过电源模块提高电动工具设计的性能

使用电动工具、 园艺工具和吸尘器的家电使用低电压(2至10节)锂离子电池供电的电动机驱动。这些工具使用有刷直流(BDC)或三相无刷直流(BLDC)电机。BLDC电机效率更高、维护少、噪音小、...


“开源”为何对于IoT如此重要?

物联网、开源、操作系统是目前IT业界的热门词汇,也正是这三个词汇构成了物联网开源操作系统。 对于物联网发展而言,“碎片化”是主要的问题,其中芯片、传感器、通信协议、应用场景...


基于Zedboard的开源软件定义无线电(SDR)设备:Panoradio!

软件定义无线电(Software Defined Radio, SDR)是一种现代无线电广播通信技术,它采用软件定义的无线通信协议而非“纯硬件电路”实现各种通信和信号采集功能,这种方式打破了有史以来设备...


通过VEX机器人技术激发STEM中的奇迹

当你考虑到数字革命的快节奏和快节奏的时候,机器人技术的发展是一个激动人心的技术,受到了许多年轻学生的关注。 VEX机器人 开发了一个比赛,让学生在特定的时间内完成一项任务。 每...