github优秀开源项目大全-iOS
github优秀开源项目大全-iOS
APR 25TH, 2014
前言
本文旨在搜集github上优秀的开源项目
本文搜集的项目都是用于iOS开发
本文会持续更新…
完整客户端
github的iOS客户端,目前开源代码是V1版本,V2版本在appstore上可以下载
使用XMPP协议的IM开源软件,很强大,在appstore上可以下载
SegmentFault的官方iOS客户端
开源中国社区oschina的官方iPhone客户端,appstore已上线。早期地址在github上,后来迁移到OSChina自己的代码托管平台.
实现了日历的基本功能,目前只支持iPad版本
美国白宫(WhiteHouse)的官方app,听起来很高大上哈
Ruby China的官方app
一款不错的日程管理软件,Appstore上能下载
第三方twitter客户端,不过作者上传后至今5年了都没更新过。。。
移动支付公司Square在其工程博客上宣布,基于Apache 2.0许可协议,开源了于去年12月初收购的照片管理和共享应用Viewfinder,包括Viewfinder服务器、Android和iOS应用在内的25万行代码已托管到GitHub上。 对此,Square工程师Peter Mattis在工程博客上表示,Square之所以考虑到将Viewfinder的完整代码公之于众,是希望能够与人方便,让开发者在应用开发过程中可以加以利用或作为参考。尽管Square团队并没有为Viewfinder提供技术支持,也没有进行Bug修复,但此举还是赢得了满堂喝彩一致点赞。
Viewfinder包含了许多非常有趣的代码,对于开发者来说,绝对是大大的Surprise,主要如下:
. Viewfinder服务器提供了一个拥有各种Amazon DynamoDB索引选项的结构化数据库架构。
. 服务器还提供了数据库和协议层版本控制支持。
. 在本地元数据存储方面,Viewfinder客户端使用LevelDB,相比CoreData,更易于使用,也相当便捷。
. 内置可直接运行于移动设备上的全文本搜索引擎,支持联系人和图片搜索。
. 使用GYP生成Xcode项目文件和Android构建文件。
. 支持C++模板元编程,可使用C++11可变参数模板根据C++方法自动计算Java方法签名。
该段介绍出自这里。
viewfinder使用GYP生成Xcode的工程文件,生成方式如下:
首先要安装GYP,执行以下步骤:
1
2
3
4$ svn checkout http://gyp.googlecode.com/svn/trunk/ gyp-read-only
$ cd gyp-read-only
$ ./setup.py build
$ sudo ./setup.py install安装成功以后,再进入到clone下来的viewfineder源码目录,执行:
1
2$ cd viewfinder/clients/ios
$ gyp --depth=. -DOS=ios -Iglobals.gypi ViewfinderGyp.gyp这样就能成功生成Xcode工程文件了,不过需要通过
ViewfinderGyp.xcodeproj
文件打开工程。
Hacker News
的iPhone客户端
iOS资深开发者罗朝辉做的一款应用,《美式英语》的iPhone版本
使用新浪微博开放平台做的微博客户端,做工略显粗糙,作者也有几个月没更新了。
AppStore上线产品,中文名称
已阅
。一个iOS设备上的RSS/Atom阅读器,刚成立的项目,还有很多有待完善的地方。
Xcode插件
用于在Xcode中管理CocoaPods依赖库
方便实现代码对其功能,使代码风格统一
一个辅助代码编辑插件。支持高亮选中、批量选中方法和方法名、根据选中的方法批量生成方法声明、高亮正则搜索等功能。
一个神奇的Xcode 插件,能让应用在运行的时候做出的小的改变立马体现效果,而不需要重新编译。。。
以图形化界面管理Xcode插件的插件。
当输入
[NSImage imageNamed:
或者[UIImage imageNamed:
时,会自动补全工程中可用的图片名称,同时能提供选中图片的预览。
能以图形界面列表的形式列出代码中添加了
TODO
,FIXME
,???
,!!!!
标识的项目,方便解决软件中备注的未解决问题。另外,能查找的还不只上述四种标识,用户可以自己添加想支持的标识。
快速查找工程中的文件、代码等资源,和Xcode5自带的
Open Quickly
功能相似。
提供了为代码增加注视的最快捷方式,是我使用频率最高的插件,猫神出品。
工具
能详细打印出一个某个方法被调用的堆栈,方便调试时定位问题
在上传AppStore时需要填写app的描述信息,此软件能很方便的填写这些信息。
facebook出的自动编译工具,不像xcodebuild,它能够整洁的打印出日志
用于生成兼容armv6/armv7/i386
framework
的Xcode工程模版:
对访问iOS Keychain的封装库。
这是目前我已知的唯一一个支持对SQLite加密的免费开源库,对应的有收费版本。本开源库实现了对SQLite开源免费版本中未实现的加密接口,同时做了一定的扩展。使用的是256位AES加密方式。
强烈推荐!
AFNetworking
作者、mattt大神开源的常用Xcode代码片段。开发框架
facebook那神奇的动画引擎,你懂得。。。
facebook出品,基于Cocoa的KVO开发,提供简单地使用方式,同时也是线程安全的。
通过method swizzling技术,能够在一个类的现有方法执行之前或之后附加一个代码片段(以block方式),能极大的方便我们调试。
十分强大的PDF开发框架,有异步加载、预览、编辑、加标注等很多功能
使用简单,功能强大的图表工具
一个联系人搜索库,支持的搜索方式包括:用户名汉字、拼音及模糊搜索,号码搜索,最重要的是支持T9搜索,做过通讯录类应用的同学都懂的。我在项目里用过,很赞。
应该是XMPP协议Objective-C实现的最好版本,小型开发者想做IM应用的好选择,使用起来也很方便。
一个通用聊天界面框架,效果不错,感谢作者的开源。这个框架后来被国内某无耻程序员修改成MessageDisplayKit,大有据为己有之势。
一个开发者积累多年的开发框架,值得看看。
几何图形框架,把AGGeometryKit和POP结合起来使用,可实现非常棒的动态和动画。
IMQuickSearch是一个快速搜索工具,可以过滤包含多种自定义NSObject类的NSArray。
新加坡开发者
honcheng
实现的图标制作框架,支持折线图、饼状图等。
自定义view
仿照UITableView机制自己实现的一个自定义tableview,带有详细的说明文档
很炫的带有表格的视图控制器切换效果,点击每个栏目会有限带有波浪效果的信息展示,类似于Facebook Paper
又是facebook出的,可以让view展示波光粼粼的效果
仿照系统的UICollectionView的API实现的collection view,支持ARC和iOS4.3+系统,可用于替代只能从iOS6开始支持的UICollectionView
各种形式在状态栏展示信息,包括提示、进度等,展示格式和动画方式也有好几种。下图只是以静态方式展示其效果,更多详情请点击链接查看。
一个球形3D标签,能够放大、缩小、拖动、点击、自动旋转。效果挺玄的,就是感觉有点卡,还有一定的优化空间。下图截了一个静态图片:
iOS7风格的侧滑菜单,支持左右双向侧滑:
一种在view的顶部弹出并会自动消失的通知类view,是toast的一种变形。目前开源中国的项目正在用该view。
大麦网iOS客户端工程师开源的一个HUD view,
自定义的下拉菜单
能够实现在多个图层上以不同速度滑动的自定义ScrollView,可用于做软件启动时的help界面:
自定义的日历,界面很简洁,月份切换时动画效果也不错。
功能较齐全的attributed lable,支持attributed string和图片、链接、控件的混排。
实现了相当炫的拉幕式的界面切换效果,其灵感来自CALayer的私有属性
meshTransform
以及和其对应的CAMeshTransform
。
新浪微博开发者仿照Twitter的iOS客户端中的效果实现的向下拉动滚动视图,视图顶端的图片会随着下拉而变大,并且带有模糊的效果。
模仿系统邮件应用实现的联系人选择界面。
一个扁平化的,能带声波效果的按钮。
新加坡开发者
honcheng
实现的折纸效果的界面切换,适合做电子书阅读类应用。
新加坡开发者
honcheng
多媒体显示view,支持html语法,应用非常广泛。
github优秀开源项目大全-iOS的更多相关文章
- IOS-github优秀开源项目大全
github优秀开源项目大全-iOS 前言 本文旨在搜集github上优秀的开源项目 本文搜集的项目都是用于iOS开发 本文会持续更新… 完整客户端 ioctocat github的iOS客户端,目前 ...
- Github优秀开源项目
王潜升 https://github.com/code4craft/webmagic 一个爬虫框架,除了不会反爬虫外(当然可以自己加)其他都很牛逼.这个项目更新还是很快的. ansi分词 htt ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
- GitHub上最著名的Android播放器开源项目大全
GitHub上最著名的Android播放器开源项目大全 ...
- 如何在github下载开源项目到本地(Coding iOS 客户端为例)
一.前言 以 Coding iOS 客户端 为例讲解如何在github下载开源项目到本地 github地址:https://github.com/Coding/Coding-iOS 二.分析 根据项目 ...
- Android优秀开源项目
本文转自:http://blog.tisa7.com/android_open_source_projects Android优秀开源项目 Android经典的开源项目其实非常多,但是国内的博客总是拿 ...
- TypeScript 优秀开源项目大合集
TypeScript出来有段时间了,也冒出了很多用TypeScript开发的优秀开源项目,搜寻了一些基于TypeScript项目,分享给大家: https://github.com/brookshi/ ...
- Python优秀开源项目Rich源码解析
这篇文章对优秀的开源项目Rich的源码进行解析,OMG,盘他.为什么建议阅读源码,有两个原因,第一,单纯学语言很难在实践中灵活应用,通过阅读源码可以看到每个知识点的运用场景,印象会更深,以后写代码的时 ...
- DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!
点击上方 蓝字关注我们 好消息,中国开源云联盟(China Open Source Cloud League,简称"COSCL")于近日公布 2021 杰出开源贡献者.优秀开源项目 ...
随机推荐
- 洛谷P2015 二叉苹果树
题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的结点的编号来 ...
- Mac OS X终端下apache操作
重启apache:sudo /usr/sbin/apachectl restart 关闭apache:sudo /usr/sbin/apachectl stop 开启apache:sudo /usr/ ...
- java将一维数组拆分成二维数组
package staticFactory; public class Array { public static void main(String[] args) { String[] a=new ...
- C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
参考了网上的文章,具体地址不记得了. 下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡. using System; using System.Collections.Generic; ...
- jQuery的插入
append(content) 概述 : 向每个匹配的元素内部追加内容. 这个操作与对指定的元素执行appendChild方法,将它们添加到文档中的情况类似 append(function(index ...
- UVA1220Party at Hali-Bula(树的最大独立集 + 唯一性判断)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105116#problem/H 紫书P282 员工和直属老板只能选一个,最多选多少人 思路 ...
- idea修改运行内存
安装目录下的bin 找到idea.exe.vmoptions 最大的修改下-Xmx1024m 找到idea64.exe.vmoptions 最大的修改下-Xmx1024m
- ci下面的增删改查
首先,我们创建一个模型( 项目目录/models/),请注意:模型名与文件名相同且必须继承数据核心类CI_Model,同时重载父类中的构造方法. CodeIgniter的数据函数类在 \sys ...
- Iterator&Vector应用实例
public class test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- C#设计模式(3):抽象工厂模式(Abstract Factory)(转载)
概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来 ...