Amon's Blog

猛猛如玉

直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@interface Tray : NSObject <NSApplicationDelegate> {
NSStatusItem *trayItem;
}
@end

@implementation Tray

- (void)testAction:(id)sender;
{
NSLog(@"Hello World");
}

- (void)quitAction:(id)sender;
{
[NSApp terminate:sender];
}

- (void)applicationDidFinishLaunching:(NSNotification *)note;
{
NSZone *zone = [NSMenu menuZone];
NSMenu *menu = [[NSMenu allocWithZone:zone] init];
NSMenuItem *item;

item = [menu addItemWithTitle:@"Testing" action:@selector(testAction:) keyEquivalent:@""];
[item setTarget:self];

item = [menu addItemWithTitle:@"Quit" action:@selector(quitAction:) keyEquivalent:@""];
[item setTarget:self];

trayItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength];
[trayItem setMenu:menu];
[trayItem setHighlightMode:YES];
[trayItem setTitle:@"HERE"];
}

@end

(转自Aufree’s Github)

这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置.

该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合并, 文档尚有一些不完善之处, 也请不吝指出, 感谢您对 iOS 所做的贡献, 让我们一起把国内的 iOS 做得更好, 谢谢.

如果您有任何意见或建议也可以通过邮件微博联系我

视频教程(英文)

视频 简介
Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频
iPad and iPhone Application Development 该课程的讲师 Paul Hegarty 是斯坦福大学软件工程学教授, 视频内容讲解得深入, 权威, 深受好评
Advanced iPhone Development - Fall 2010 iOS 开发的进阶课程, 开始涉及到 Core Animation, Core Data, OpenGL 等框架的应用
iOS Dev Center 苹果官方提供的 iOS 学习视频
Lynda Lynda 上面 iOS 和 Objective-C 的学习资料比较多, 从初级到高级的都有, 覆盖面比较广, 无论 iOS 走到哪个层次, 都可以在上面挑到适合自己的课程
Code School CodeSchool 上面的 iOS 不多, 不过质量都不错, 一些课程也挺有趣的
Udemy Udemy 帮助初学者规划了视频学习路线, 从新手到高级分的比较详细
Developing iOS 8 Apps with Swift 斯坦福白胡子老爷爷最新的 iOS8 和 Swift 课程, 现在 GitHub 上面也有人在翻译

视频教程(中文)

视频 简介
iOS 7 应用开发 斯坦福白胡子老爷爷的系列视频, 所有视频皆完成翻译, 视频较新, 翻译质量也很高
iPhone 开发教程 2010 年冬 全部视频翻译完毕, 较为深入的讲解 iPhone 开发, 视频适合给有一定 Objective-C 基础的人观看
使用 Swift 开发 iOS8 App 实战 慕课网的视频, 主要讲 Swift 的一些基本使用, 并在讲解的过程中做了几个小 APP, 最后还讲了 Sketch 制作分享按钮
征战 Objective-C 视频还未完结, 讲了一些 C 和 Objective-C 的基本语法, 适合零基础的人观看
Developing iOS 8 Apps with Swift GitHub 上正在翻译的斯坦福最新的 iOS8 课程, 目前正在翻译, 未完结

书籍

书籍名称 推荐理由
Objective-C Programming 内容不多, 却都是精华, 有了一点 C 语言基础可以快速阅读此书, 大概一天时间就可以看完, 看完后对 iOS 开发能够有个基本的印象, 该书的官方论坛有各个章节习题的解答.
iOS Programming 这本书在 Quora 上被评为 iOS 入门最佳书籍, 具体评价可见豆瓣下方该书籍的评论
Cocoa Design Patterns 适合打算深入了解 Cocoa 的人看
Learn Objective-C 短小精练, 适合有编程基础的人在半小时内对 Objective-C 有个一定了解
Programming with Objective-C 看完 Learn Objective-C 可以接着看这个官方对 Objective-C 更为深入的介绍
Objective-C 基础教程 该书作者 Scott Knaster 是 Mac 开发界的传奇人物, 目前在 Google 出过多数书籍都广受许多程序员好评, 此书适合从初级跳到中级的 iOS 开发者阅读
iOS 开发进阶 该书作者唐巧是国内 iOS 开发界的名人, 曾参与多个知名软件的开发, 目前该书尚在预售中, 书本内容由浅入深, 将读者一步一步引入到 iOS 中去, 同样适合初级跳到中级的 iOS 开发者阅读
Programming in Objective-C 这本书在亚马逊上面深受欢迎, 有关 Objective-C 的东西讲得非常详细
iOS 测试指南 该书作者是豆瓣的员工, 书中写的多数内容都是作者在平时的工作实践当中提炼出来的测试经验, 重点讲述了各个测试阶段的具体实践方法, 并且通过持续集成串联了各个测试阶段的活动。
Objective-C 编程之道 解析 iOS 的开山之作, 详细介绍了 MVC 在 Cocoa Touch 上的运作过程, 该书适用于 iOS 中级开发者阅读
Objective-C 高级编程 本书主要介绍 iOS 与 OS X 多线程和内存管理, 深入破析了苹果官方公布的源代码, 告诉你一些苹果公司官方文档中不会出现的知识, 适合中级以上 iOS 开发人员阅读
Effective Objective C 2.0 书里写了编写高质量 iOS 与 OS X 代码的 52 个有效方法, 适合 iOS 开发的进阶使用
Swift Fundamentals 估计将来这本书会成为 Swift 的经典入门书籍, 它的 Stars 数说明了一切
The Swift Programming Language 中文版 90 后开发者梁杰组织翻译的 Swift 编程语言中文版

博客

博客地址 博主信息
OneV’s Den 王巍(喵神), 现居日本, 就职于 LINE, 知名 iOS 开发者, 写的文章大多深入浅出, 内容广泛, 目前在维护的 Swifter 也值得收藏
唐巧的技术博客 唐巧, 国内知名 iOS 开发者, 现就职于猿题库, 博客推出的 iOS 移动开发周报很受欢迎, 更新频繁
txx’s blog 90 后 iOS 开发者, 人称虾神, 文章内容讲解大多浅白易懂, 很值得看
破船之家 博主也是 iOS 大神一个, 经常更新一些 iOS 教程, 文章的质量都很高, 非常值得看
NSHipster NSHipster 的中文网站, 主要对 NSHipster 的英文网站进行翻译, 博文出自 Mattt 大神之手, 文章大都写得很深入, 详细, 每周一更
Limboy 无网不剩 李忠, 知乎前员工, 目前在负责花瓣 iOS 开发, 不少文章里面有介绍博主个人的学习方法, 让读者在学到技术的同时也掌握学习的技巧
念茜的博客 iOS 圈的女神人物, 写的关于安全问题的文章都值得一看, 由于新博客刚开通不久, 目前文章较少, 可以去看下她以前的博客
iOS技术周报 吴发伟, 天猫资深软件开发工程师, iOS 技术周报每周一更, 推送一些 iOS 技巧, 代码库, 设计等资讯.
iWangKe.me 王轲, IndieBros Studio 创始人, 优秀的 iOS 开发工程师, 写的文章深入浅出, 很多问题分析透彻, 非常有条理性
叶孤城 叶孤城, 优秀 iOS 开发工程师, 发表的文章都有很多干货, 对源码解析类文章写得浅显易懂, 并时常总结一些 iOS 开发技巧, 值得一读
Kevin Blog 周楷雯, 秒视创始人, 知名 iOS 工程师, 做出了 PNChartWaver 这样的好项目, 在博客中也有谈到具体的实现过程
IMTX 图拉鼎, 知名 Apple 平台开发者, 曾经的 Ubuntu 平台开发者, 文章有不少干货, 大多讲解技术实现和学习经验
更多 唐巧收集的中文 iOS/Mac 开发博客列表, 更新频繁, 值得收藏

文章

标题 内容简介
Learn Objective C: The Path to iPhone Development Udemy 写的文章, 说明了一些学习 Objective-C 的前提条件, Objective-C 的发展历史, 学习方法以及学习资源
I Want to Write iOS Apps. Where Do I Start? 主要对 iOS 的开发环境进行了介绍, 并且涉及到了 Swift 的学习, iOS 上架的注意事项, iOS 的设计, 测试, 代码托管等, 讲解较为广泛, 同时也给出不少学习资源
How to become a professional iOS developer 文章写的很有条理, 文中多次强调了版本控制系统的重要性, 主要内容是对学习 iOS 开发到就职, 给出了自己的建议
Learning iOS Programming 作者总结了一些自己学习 iOS 的血的教训, 最后给出了一些不错学习建议
Become an iOS Developer 作者列举了一些学习 iOS 的方法以及常用的库, 以及自学 iOS 的一些建议
iOS 开发如何提高 唐巧写的一篇文章, 主要是对 iOS 技术的提高做的一个总结, 文中不少资源, 工具, 学习方法
自学 iOS 开发的一些经验 文章从入门到进阶到高级, 分为三个阶段, 有条理的讲出了 iOS 的整个学习过程中开发者可能遇到的问题, 并给出了解决办法, 奉献了不少好工具, 资源还有珍贵的学习经验
如何从 0 开始学 iOS 开发 作者给出了学习 iOS 的流程, 并给出一些不错的学习资源
如果我可以重新学习 iOS 开发 作者在文中给出了学习的一些建议, 也谈到了自己的学习方法
iOS 开发学习路径的一些建议 文中谈到了英语的重要性, 以及写博客, 看源代码的好处
iOS 开发入门 作者分享了自己学习 iOS 的经验和资源
Mac 和 iOS 开发资源汇总 破船之家发布的资源汇总
CocoaPods 使用教程 文章讲解了 CocoaPods 的基本使用, 并且配上 AFNetworking 做出了一个小 Demo, 值得一看
iOS 开发路线简述 作者简单介绍了一下自己 iOS 开发的感受,也是他学习 iOS 开发的一个体系架构。

相关网站

网站 简介
tutsplus 不定时更新一些 iOS 教程
WWDC 苹果官方每年一度的 WWDC 视频, 可以了解历年有关 iOS 发布的内容
ASCIIwwdc WWDC 的文字版
Awesome Swift 该网站收集了很多关于 Swift 的学习资料, 新闻
Appcoda 经常发布一些 iOS 编程教程, 更新比较频繁, 想了解更多可以查看该网站的 About 界面
NSHipster NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.
Think and Build Some tutorials about Core Graphic and Core Animation.
Tutorials 大把的 Objective-C, Swift, iOS 教程, 且全部免费, Raywenderlich 真是业界良心, 赞!

社区

社区 简介
CocoaChina 全球最大苹果开发者中文社区
code4app 经常更新一些很不错的 iOS 代码片段和一些 iOS 资源
objc 定期发布一些有关 Objective-C 的高质量的文章
objc中国 喵神组织的对 objc.io 的翻译网站, 旨在推进国内技术圈整体水平, 翻译质量非常高
DevDiv 发布一些 iOS 的最新资讯及教程
Cocos2d-x Cocos2d-x 论坛
iPhone Dev SDK 国外较有名的 iOS 开发者论坛
Learn Cocoa and iOS Development Forum Learn Cocoa on the MacBeginning iOS 7 Development 这两本书籍的官方论坛, 用户活跃度较高
Apple Developer Forums 苹果官方的开发者论坛
Swiftist Swift 中文社区

工具/插件

工具/插件 简介
CocoaPods 开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具, 本身是 Ruby 的一个 Gem, 极大的简化了 Objective-C 的开发流程
Alcatraz Alcatraz 是一款管理 Xcode 插件、模版以及颜色配置的工具
XcodeColors 使 Xcode 调试控制台色彩更丰富
xctool Facebook 开源的一个 iOS 编译和测试的工具
XToDo 一款注释辅助插件,主要用于收集并列出项目中的TODO, FIXME, ???, !!!
KSImageNamed-Xcode 自动补全图片命名的一款插件
VVDocumenter 一个自动生成代码注释的工具
ImageOptim 用于压缩图片一款工具
fastlane 开发流程工具,将开发过程流程化,极大提高开发效率
iOS 必备的 75 个工具 其中包含了非常多好用的工具, 涉及到设计, 分析, 部署等, 总结的十分详细, 有中文翻译
更多 唐巧总结的一些图形应用工具, 命令行工具, Xcode 插件, 并介绍了一点基础的用法

指南/教程

网址 简介
App Store Review Guidelines iOS 应用商店审核指南, 有中文翻译版
Swift 语言指南 有很多丰富的 Swift 学习资料, 学习 Swift 有这份资料可以省下很多力气
苹果 Xcode 帮助文档阅读指南 Tinyfool 推出的一篇对于帮助新手阅读官方文档的指南
Get started with your iOS developer pragram 苹果写的一篇入门指南, 粗略讲解了 iOS 程序从开发到上架的整个流程
Teamtreehouse 文章主要讲解 Objective-C 的一些语法, 文章内容有趣且通俗易懂
A map for iOS development 一张 iOS 开发地图, 做得很赞, 看完对 iOS 开发流程有一定的认知
Start Developing iOS Apps Today 苹果官方给出的 iOS 入门教程, 看过之后能够做一个 To-Do 小程序
Ry’s Objective-C Tutorial 讲解 Objective-C 的教程, 图文并茂, 适合新手阅读
Objective-C Style Guide Ray Wenderlich 推出的 Objective-C 风格指南
iOS8 Day-by-Day 每日一个 iOS8 的小教程, 所以的 DEMO 都可以在其 GitHub 上面的找到相关代码

邮件订阅

  • iOS Dev Weekly (每周一期,内容多为这一星期里值得关注的 GitHub 项目、文章、工具等)
  • iOS Design Weekly (Tips, news and inspiration delivered each week)

文档

Awesome 系列

知乎上的讨论

Quora 上的讨论

国内知名的程序员开发日报

贡献者

点击该链接查看该项目的所有贡献者

License

以上内容采用 CC BY-NC-SA 3.0 进行许可, 转载请注明出处, 版权归本人及所有贡献者所有

(转自Aufree’s Github)

主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.

若有任何疑问可通过微博@李锦发联系我

项目名称 项目信息
  1. AFNetworking | 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest
  2. GPUImage | 一款强大的图片滤镜工具, 支持自定义滤镜, 可用来实时处理图片和视频流, 作者是 SonoPlot 公司的 CTO, 在很小的时候便开始接触编程, 他在 SO 上面的回答也有很多值得阅读, GPUImage 这个项目从 2012 年开始, 使用 OpenGL 图形程序接口编写, 性能非常好, 现在很多 iOS 程序员都用它来实现 iOS 的模糊效果
  3. SDWebImage | 作者 Olivier Poitrey 是 Dailymotion 的 CTO, 拥有多个不错的开源项目, 此项目常用于对从 Web 端接受到的图片进行缓存, 是 UIImageView 的扩展, 应用起来比较简单
  4. RestKit | 主要用于 iOS 上网络通信, 允许与 RESTful Web 服务交互, 常用于处理 API, 解析 JSON, 映射响应对象等操作, 简单易用, 方便你把所有精力都放在对数据的操作上
  5. ReactiveCocoa | 由 GitHub 工程师们开发的一个应用于 iOS 和 OS X 开发的函数响应式编程新框架, Matt 称其为 “An open source project that exemplifies this brave new era for Objective-C”, 也有人说它是 Cocoa 的未来, 具体可看唐巧写的这篇文章
  6. three20 | 由 Facebook iOS 客户端衍生出的一款 iPhone 框架, 内置许多丰富的功能, 有丰富的界面, 对底层的操作便捷, 为开发者省下了很多时间, 但现在已经停止了更新, 一个 PR 把代码删得干干净净, 不要好奇去点开 Files changed, 我点开后该页面直接卡死, three20 当中的一位作者创建了 Nimbus, 算是 three20 的一个替代品
  7. MBProgressHUD | 作者 Matej Bukovinski 是一位全栈工程师, UI/UX 设计师, 此项目是一款提示框第三方库, 帮助开发者快速应用到项目中)
  8. MagicalRecord | 作者是 Coursera 的 iOS 工程师, 该项目创作灵感来自于 Ruby on Rails 的 Active Record, 主要为方便操作 CoreData 而生, 帮助清除 CoreData 引用的代码, 协助方便 CoreData 的工作
  9. FMDB | 一个对 SQLite 进行封装的库, 使用起来方便, 简单
  10. Mantle | 作者是 GitHub 的员工, 文档写的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用来将 JSON 数据模型化为 Model 对象, 唱吧在前段时间也改用 Mantle 了.
  11. FlatUIKit | 收集了很多扁平化 UI 的 iOS 组件, 方便使用
  12. ASIHTTPRequest | 一个轻量级的 iOS 网络通信类库, 基于 CFNetwork 框架开发, 但现在已经停止更新, 多数开发者改用 AFNetworking 替代)
  13. FastImageCache | Path 公司出品的 iOS 库, 作者 Mallory Paine 是苹果前员工, 此类库适用于在滚动时快速显示图像, 高速持久是其最大的特点
  14. Masonry | 一个轻量级的布局框架, 同时支持 iOS 和 Mac OS X, 语法优雅, 帮助开发者快速适配不同分辨率的 iOS 设备
  15. Shimmer | Facebook 推出的一款具有闪烁效果的第三方控件, 供它旗下一款名为 Paper 的应用使用, 安装使用整个过程都十分简单
  16. SVProgressHUD | 又一款轻量级的 iOS 第三方控件, 用于显示任务加载时的动画, 非常轻便, 容易使用
  17. Slate | 一款窗口管理应用程序, 但在两年前就已经停止更新了
  18. JSONKit | 主要用于解析 JSON, 适用于 iOS6 以下环境, 自从 iOS5 开始 Apple 官方给出了 NSJSONSerialization API, 自此大家都用官方的了
  19. Nimbus | 作者 Jeff 曾为 Facebook, Google 做过不少好东西, 也是 three20 的成员之一, three20 停更后, 他创造出这个框架来代替 three20, 文档齐全
  20. CocoaLumberjack | 这是 Mac 和 iOS 的一款强大的日志框架, 配置简单, 多线程, 提供更高级的 log 功能, 可用于代替默认的 NSLog 语句
  21. Facebook SDK for iOS | Facebook 官方的 iOS SDK, 方便开发者集成 Facebook 的一些功能到自己的 iOS APP 里面
  22. AsyncDisplayKit | Facebook 开源的一款 iOS UI 框架, Paper 用的就是该框架, 另外框架还用到了 Facebook 早期开源 Pop 动画引擎
  23. Alcatraz | Alcatraz 是一款管理 Xcode 插件、模版以及颜色配置的工具, 可以集成到 Xcode 的图形界面中, 安装删除都是几条命令的事, 很方便, 支持自己开发插件并上传
  24. ViewDeck | 一款开源的 iOS 活动面板组件, 还原 Path 2.0 的侧滑效果, 作者因为时间关系在两年前停止对其更新
  25. JSQMessagesViewController | 优雅的 iOS 消息类库, 常用于聊天应用中, 可定制性高
  26. FLEX | 这是 Flipboard 官方发布的一组专门用于 iOS 开发的应用内调试工具, 开发者无需将其连接到 LLDB/Xcode 或其他远程调试服务器,支持直接在 App 中运行
  27. Xctool | 是 Facebook 开源的一个命令行工具,用来替代苹果的 XcodeBuild 工具, 极大的方便了 iOS 的构建和测试, 输出错误信息也比较友好, 受到许多 iOS 开发者的称赞, 经常与其搭配使用的还有 OCUnit, Travis CI, OCLint 等测试工具
  28. OpenEmu | 超强的游戏模拟器, 做游戏开发必备, 官网做得也很不错
  29. iCarousel | 作者是英国 Charcoal Design 公司的创始人, 开源领域的贡献颇为卓著, 这个项目就是其中之一, 这是一款可以在 iOS 上实现旋转木马视图切换效果的第三方控件, 并提供多种切换效果
  30. RESideMenu | 作者 Roman Efimov 是雅虎的 iOS 工程师, 这个项目实现了 iOS 上的菜单侧滑效果, 创意来源于 Dribbble, 该项目支持 iOS8
    321 PNChart | 作者周楷雯是 90 后, 秒视的创始人, 该项目是一个带动画效果的图表控件, 简约易用, 受到不少开发者喜爱
    31.2PonyDebugger | 由 Square 公司推出的一款优秀的 iOS 应用网络调试工具, 用户可以实时看到应用程序的网络请求, 也可以对 iOS 应用程序的核心数据栈进行远程调试
  31. JVFloatLabeledTextField | 作者是 Thumb Labs 的联合创始人, JVFloatLabeledTextField 是 UITextField 的子类, 主要实现输入框标签浮动效果, 创作灵感来自 Dribbble, 已出现多个移植版本
  32. SWTableViewCell | UITableViewCell 的子类, 实现了左右滑动显示信息视图并调出按钮
  33. AwesomeMenu | 作者是一位中国人, 该项目主要是使用 CoreAnimation 还原了 Path menu 的动画效果
  34. Reachability | Reachablity 是用于检测 iOS 设备网络环境的库
  35. VVDocumenter-Xcode | 作者是王巍国内著名的 iOS 开发者, 人称喵神, 目前在日本 LINE 公司工作, 该项目帮助开发者轻松的生成注释文档, 节省了不少工作量, 赞
  36. The Physical Web | 由 Chrome 团队主导的一个项目, 意在用 URL 连接世界, 方便用户接受数据, 目前尚处在实验阶段
  37. NewsBlur | 作者独自一个人 Samuel Clay 做出来的一款名为 NewsBlur 的新闻阅读器, 很多人都称其为 Google Reader 的替代品, 这是它的源码
  38. Cocos2D-SpriteBuilder | 一个可用于在 iOS, Mac 和 Android 上制作 2D 游戏或其它图形/交互应用的框架, 之前的项目名称为 Cocos Swift, 目前该项目在 GitHub 上更新较为频繁
  39. TTTAttributedLabel | UILabel 的替代品, 使 iOS 上的 Label 功能更加丰富, 可支持链接植入等功能
  40. CocoaAsyncSocket | 一个功能强大、简单易用的异步 socket 通讯类库, 支持 TCP 和 UDP 协议, 可用于 Mac 和 iOS 设备上, 作者 Robbie Hanson 是 Deusty 的首席软件工程师
  41. TapkuLibrary | 作者是 Devin Ross, 这是在 iOS 上一款功能强大的 UI 效果类库, 可以实现多种酷炫的效果, 目前仍在更新中
  42. Canvas | 无需编码实现牛逼的动画效果的库, 连设计师都可以快速上手
  43. SocketRocket | Square 公司开源的一个 WebSocket 客户端, 稳定并且易用, 做实时应用常会用到, 受广大开发者喜爱
  44. ECSlidingViewController | 一个视图控制器容器, 将子视图处理成两层, 通过滑动来处理层的切换, 创作灵感来自 Facebook 和 Path的 App, 作者是 Cleveland 的员工
  45. Json Framework | 用于解析 JSON 数据的一个框架, 但是在 iOS5 以上版本大多数人都选择使用 NSJSONSerialization 来解析 JSON, 该项目现在在 GitHub 上也几乎没怎么更新了
  46. Tweaks | Facebook 开源的一款工具, 旨在帮助 iOS 开发者更快的迭代应用, 方便用户动态的调整参数, 是的, Paper 这个项目也用到了
  47. realm-cocoa | Realm-Cocoa 是 Realm 公司推出一款移动端数据库, 可以运行在手机、平板和可穿戴设备之上, 其目标是取代 CoreData 和 SQLite 数据库
  48. BlocksKit | 一个开源的与 Cocoa 紧密集合的基础性框架
  49. Appirater | 一款用于提醒用户给你的 App 打分的工具
  50. KIF | Square 出品的一个开源的用户界面测试框架, 极大的简化了 iOS 开发者的 UI 测试流程
  51. SlackTextViewController | Slack 推出的一款具有文字输入框高度自适应, 自动输入, 复制单元格内容等功能的解决方案
  52. JazzHands | IFTTT 开源的一个简单易用的关键帧基础动画框架, 可通过手势、scroll views, KVO, ReactiveCocoa 等方式来控制动画
  53. Bolts-iOS | Bolts 是一个 Parse 和 Facebook 在内部使用的底层库, 方便移动开发
  54. Spectacle | 一款易用的 OS X 窗口分屏操作快捷键工具, 这是其源代码
  55. nui | 方便样式化 iOS 应用中的 UI 元素, 可在短时间内样式化整个应用, 类 CSS 原理
  56. Induction | Induction 是一款用于理解数据关系的管理工具, 这是其程序代码
  57. JSONModel | 一个能迅速解析服务器返回的 Json 数据的库, 方便数据的类型转换
  58. DTCoreText | 一个开源的 iOS 富文本组件, 它可以解析 HTML 与 CSS 并最终用 CoreText 绘制出来, 通常用于在一些需要显示富文本的场景下代替低性能的 UIWebView
  59. Popping | 基于 Facebook Pop 引擎的 iOS 动画库, 集合了很多动画效果
  60. TSMessages | 一个用来弹出显示警告和通知的轻量级库, 样式丰富, 简单易用
  61. KVOController | 一个简单安全的 KVO(Key-value Observing, 键-值 观察)工具, 提供简单方便、线程安全的API, Facebook 的开源项目之一
  62. MWPhotoBrowser | 一款简单的 iOS 照片浏览控件
  63. MMDrawerController | 一个轻量级, 易于使用的侧边抽屉导航 iOS 控件
  64. QuickDialog | 用于快速创建复杂的 iOS 表单, 自定义了 UITableViewCell, TableView 的样式
  65. SVPullToRefresh | 一款只需一行代码便可集成上拉刷新和下拉加载的组件
  66. cheddar-ios | Cheddar 是一款简单易用的日程管理软件, 这是其早期版本的开源代码, 该项目已停止维护
  67. XVim | 一款在 Xcode 上实现了 Vim 功能的插件
  68. EGOTableViewPullRefresh | 一款提供下拉刷新的控件, 最后更新时间是一年前
  69. iOS-boilerplate | iOS 应用程序的基础模板, 使用该模板可以省掉许多项目初始编码的工作, 内置非常多丰富的功能, 现已经停止维护
  70. JASidePanels | 一个 UIViewController 容器, 灵感来自 Facebook 和 Path 2.0 应用的菜单, 实现了左右侧滑的操作
  71. FormatterKit | 收集了很多构思优秀的 NSFormatter 子类
  72. MSDynamicsDrawerViewController | 实现了具有动态弹性效果的抽屉式侧边导航栏, 效果丰富, 可定制性强
  73. idev-recipes | iDevRecipes 博客的代码, 演示如何实现一些有趣的控件, 该项目在两年前(2013)停止了更新
  74. XMPPFramework | 一个基于 RFC-3920 实现, 支持多线程和线程保护, 同时通用于所有的 iOS 和 Mac OS 开发设备的通信框架.
  75. MacGap1 | 一款可以将 HTML/CSS/JS 网络应用打包成原生 Mac App 的工具
  76. FXBlurView | iOS 模糊背景类库, 可以方便的根据底层显示的状态生成模糊效果
  77. iOS7-Sampler | 整合演示了多个具有 iOS7 新特性的的项目, 提供了非常多的例子参考
  78. PromiseKit | 提供强大的 iOS 开发异步功能, 是 Promises 的实现, 受到广大开发者的追捧
  79. Origami | 此为 Facebook 推出的 Quartz Composer 的一个开源插件, 由其设计团队花费了 9 个月打造而成, 目的是为方便设计师快速构建原型, 以零代码完成复杂动画的合成和测试, 堪称神器
  80. NSLogger | 一款强大的日志分析工具, 具有大窗口查看 Log, 自定义日志等级等功能
  81. KSImageNamed-Xcode | 一款对 UIImage 的 imageNamed 提供自动补全功能的插件, 非常方便
  82. PureLayout | 一个简单却强大的 AutoLayout API 库, 兼容了 Objective-C 和 Swift, 扩展了 UIView/NSView, NSArray, 和 NSLayoutConstraint
  83. AppleDoc | 一款 Objective-C 文档生成工具, 生成的文档风格保持与 Apple 官方的一致, 极大的方便了 Xcode 识别自己写的 API 文档, 安装也是十分的简单
  84. iTerm2 | iTerm2 被不少程序员称赞为 Mac 下最好用的终端, 这是其源代码, 配合 oh-my-zsh 使用效果更佳
  85. Kiwi | 一个行为驱动开发测试框架, 适用于 iOS 平台, 旨在为开发者提供一个简单配置便可使用的 BDD 库
  86. terminal-notifier | 一款命令行工具, 用来给 Mac OS X 用户发送通知
  87. MacDown | Mac OS X 下的一款开源的 Markdown 编辑器, 创意来自与 Mou, 使用 brew cask 即可完成安装
  88. TwUI | Twitter 开源的一个支持硬件加速的 Mac 的 UI 框架, 最后一次的更新时间是在 3 年前(2012)
  89. PaperFold for iOS | 实现了类似折纸效果的视图切换, 可从不同方向进行切换, 该项目已经许久未更新
  90. Reader | 一款开源的 iOS PDF 阅读器, 附带书签, 列纲要等功能
  91. WebViewJavascriptBridge | 一个方便使用 Objective-C 与 JavaScript 进行通信的第三方库, 支持消息发送, 接收, 消息处理器的注册与调用以及设置消息处理的回调
  92. iOS8-Sampler | iOSX-Sampler 系列之一, 整合演示了多个具有 iOS8 新特性的的项目, 提供了非常多的例子参考
  93. CocoaHTTPServer | 一个用于 Mac OS X 或 iOS 应用的轻量级、可嵌入的HTTP 服务器框架, 方便开发者在应用中嵌入一个 HTTP 服务器
  94. Kod | Mac OS X 上一款专为程序员打造的编辑器, 这是其开源代码, 可惜的是作者在 2011 年停止了维护
  95. TPKeyboardAvoiding | 下拉键盘在 iOS 移动文本字段的通用解决方案, 能够自动处理键盘弹出后出现遮挡到文本输入框的问题
  96. MKNetworkKit | 一个轻量级网络请求框架, 完全基于 ARC, 仅有两个类, 具有自主操作多个网络请求, 更加准确的显示网络活动指标等优点
  97. PKRevealController | 一个 iOS 平台上的视图控制器集合, 通过展现多个视图控制器来进行控制器之间的切换. 设置简单, 高度灵活
  98. AQGridView | 一个命令行工具, 通过项目里的 .xcdatamodel 文件, 可以为每个 entity 生成两个类, 方便 CoreData 的使用

timg

春上三月,在深圳给远在信阳的妈妈打电话,问她在家里一个人的生活如何,她说这两天嘎哒死了夜晚的哀乐声让她不敢睡。

哦,嘎哒?好熟悉的名字,仔细想想,脑子里立马出现十几年前,在那个初夏春末的风吹的季节,油菜花满世界的田野,毫不燥热的上午,我和几个小伙伴,我们都热爱拿着一个喝完的和现在的啤酒瓶子一样的健力宝瓶子再加根稻草或者小树棍,寻找各种红砖垒的墙或土坯墙上的洞洞,把瓶口对准洞洞,用稻草或者小棍去捅,如果里面有蜜蜂就会被捅出来,然后钻到瓶子里,然后赶紧用纸盖住瓶口,接下来就可以悠闲的聆听瓶子里蜜蜂发出的嗡嗡的声音,那是初夏的声音,那是整个夏天。当然如果你技术够高强,你可以捅很多的洞,装很多的蜜蜂,听很多的嗡嗡。

某个普通的上午,照例和小伙伴们去捅蜜蜂,我们来到遍是油菜花的田畈,仿佛到了油菜花的中心地盘,我们看到一个土坯房,蜜蜂的最爱之地,当时感觉这是一个世外桃源,神奇的地方。走后才知,这里的主人一样有个神奇的名字:嘎哒。

嘎(二声)哒(一声)是我给他配音的名字,他的真实姓名我无从而知,我甚至没能见过他一面,他可能是一个普通的乡下老头,斑白的头发肆意凌乱的长着,棕黑的皮肤上有些许老年斑,微微驼起的后背外面套着永远发白的蓝色中山式装,喜欢背着一双手,慢悠悠的转田畈,有儿有女,也有个可爱的孙子孙女,他们总会奶声奶气的让爷爷买零食,经常会被媳妇暗地里骂,但在家不太受待见,索性搬到田畈住顺便养了点鸡鸭,老伴过世有一阵子了,偶尔梦里还会见上一面,一辈子没出过省,年轻时的记忆和梦想早就着汗水埋葬在俯朝着几十年的田沟,最大的梦想是能家庭美满,没事吃点小肉,喝点街上灌的二锅头,死后能有副好棺材就不错了。

嘎哒死了,也许已经见着老伴了,老伴紧篡着他的手,说 老伴可等到你了,嘎哒咧嘴一笑,漏出一嘴的因吸劣质烟而导致的黄牙。

嘎哒死了,这个与我生命只相交了一个点的人,大概以后也会偶尔回到油菜花的中心,背着手转转吧。
这篇文章写给嘎哒,因为他给了少年一个迷离的奇幻世界,也写给这个少年的少年梦,因为它也消逝了。


over

此为初稿,未做修订。
写这篇文章时,我在单曲这个:
讃歌~種山が原へ

2013年12月01,上海昆山WCG赛场。
当Moon被蛋总一波rush下来,心都碎了。
月魔最后还是与冠军失之交臂,WCG永远欠他一个冠军。
同时,本届也是War3最后一次出现在WCG的舞台上:历经十余载的War3从WCG谢幕了!
犹记得2003,Grubby与Inso的决战,伴随着稻草芭比的嗲音。
犹记得2004,Grubby封神。
犹记得2005,2006,Sky让五星红旗飘扬在WCG的舞台上。
犹记得2007,Sky与三冠王错过,泪撒WCG赛场。
犹记得2008,木瓜的巅峰之战,月魔离冠军那么近。
犹记得2009,Infi和Fly的兽人大战,Infi向世人证明自己不是塔魔。
犹记得2010,肉馒头摇断国旗。
犹记得2011,打鬼队长Lyn第一次登顶。
犹记得2012,Ted抚慰了多少UDer的心。
而今2013,蛋总的夺冠代表着中国三大人族都已问鼎WCG。

Goodbye, Warcraft III!

WAR3长河,多少英雄好汉,如商周,如三国,如隋唐。
中国的CQ2000,guangmo,lyc,xiaoT,magicYang,suho,Like,Sky,Ted,Infi,Th000,Yumi,Fly,Kenshin,Future,Una,Wulin,WFZ,Yumi

国外的MadFrog,Inso,Tod,Kua,AKM,Rainbow,Shortround,Showtime,apm70,Grubby,Moon,Happy,Check,Who,Soccer,Remind,Lyn,Zacard,Sweet,GoStop,Fov,Lucifer,Sarse?Suria?wise_xy,Focus,Space,Nicker,Hawk?Lucifon。
…..
太多太多,每一个都曾是响当当的汉子。

如今,就让他们都成功历史吧!
gg,hf!

开头语:rake post不支持中文标题,所以只能gongqijun。。。

以前我是从来不看日本动漫的,总觉得动漫太幼稚了,且一群操着wataxiwa的人听起来就是在那哇哇叫。

后来老婆推荐我看宫骑峻的电影,看上一次就喜欢上了。

里面的画面非常唯美,想象力非常奇特,有很多很可爱的动物,也有很多本来很恐怖很恶心的怪物变得非常可爱。

宫骑峻电影里面的主题也非常的耐人寻味,真心值得看。

有机会也得把漫画拿来看看。

最近遇到一个问题:

须要在20万号段数据中查找对应的地市,并且这个过程是发生在遍历几百万数据中的。也就是说正常情况下须要执行20万*几百万次。

这个时间太久了,且因为号段是长数字,执行起来速度超慢。

后来突然想到可以用二分法。

二分法的原理就是:把有序的数据分为2段,通过比较得到数据在哪段,然后再把这段的数据分为2段,这样就省去了很多不必要的遍历,复杂度O(logn)。

下面两个例子就是二分法的示例,一个是递归,一个是循环。

java二分法循环示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package cn.sunzn.dichotomy;

public class DichotomySearch {
public static void main(String[] args) {
int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(search(arr, 12));
System.out.println(search(arr, 45));
System.out.println(search(arr, 67));
System.out.println(search(arr, 89));
System.out.println(search(arr, 99));
}

public static int search(int[] arr, int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}
}

java二分法递归示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* 二分法查找,必须对已经排好序的序列进行查找,假设现在有一个递增序列,取中间位置的数及序号midIndex=(beginIndex+endIndex)/2,
* 然后将一个序列折成两半,beginIndex~midIndex,midIndex~endIndex,如果目标数T等于S[midIndex],找到,
* 否则,如果T<S[midIndex],则在beginIndex~midIndex中继续查找;如果T>S[midIndex],则在midIndex~endIndex
* 中继续查找,如此反复进行,直到找到目标数据,
* 初始对传入参数进行约束及避免无效计算的条件为,T<S[beginIndex]或T>S[endIndex]或beginIndex>endIndex
* 或beginIndex>S.length-1||endIndex>S.length-1||beginIndex<0||endIndex<0
*
*/
package junit.test;

public class BinarySearchTest {
/**
* 找到返回索引下标,否则返回-1;
* @return index
*/
public int binarySearch(int dataset[],int target,int beginIndex,int endIndex){
//数组校验
if(dataset==null||dataset.length==0){
return -1;
}
//beginIndex,endIndex校验
if(beginIndex>endIndex||beginIndex>dataset.length-1||endIndex>dataset.length-1||beginIndex<0||endIndex<0){
System.out.println("error arguments!");
return -1;
}

//无效参数处理
if(target<dataset[beginIndex]||target>dataset[endIndex]||beginIndex>endIndex){
return -1;
}
int midIndex=(beginIndex+endIndex)/2;

//System.out.println(midIndex);
if(target==dataset[midIndex]){
return midIndex;
}
else if(target<dataset[midIndex]){
return binarySearch(dataset,target,beginIndex,midIndex-1);//注意midIndex-1
}
else{
return binarySearch(dataset,target,midIndex+1,endIndex);//注意midIndex+1
}

}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BinarySearchTest bs=new BinarySearchTest();

int[] data=new int[]{1,3,5,7,9,12};

int index=bs.binarySearch(data,12,0, 5);

System.out.println("The position of the target number in the array is :"+ index);
}

}



后记:算法无穷妙,看来得好好学习下算法。

这两天没事折腾了一下微信的公众号,我的公众号(订阅号,不支持自定义菜单)在右边,有兴趣的可以扫下:)

1. 注册并提交自己的手持身份证照片

2. 简单的订阅的话,可以选择高级功能里面的编辑模式,想要更多功能还是选择开发模式。

3. 在BAE注册并创建移动web应用,我选择的是PHP的。

4. 下载微信接口示例代码,并参考微信接口文档,开启折腾之路。

5. 目前采用了很多第三方API,支持有

*	机器人聊天
*	查天气(发送 城市+天气,如 深圳天气,目前支持全国各省市地区)
*	查PM2.5(同上,如 珠海空气)
*	看笑话(发送 笑话,支持分类)
*	看妹子图(发送 妹子 或者 MM 或者 美女,单次查看妹子图目前有限制:D)
*	藏头诗(发送 藏头诗+任意字句,如 藏头诗徐不猛)
*	翻译(发送 翻译+词句,如翻译i love you)
*	看歌词(发送 歌词+歌曲名,如歌词后来)
*	查域名信息(发送 域名+域名地址,如域名xubumeng.com,或者直接发送域名地址)
*	查IP信息(发送 归属+IP地址,如归属192.168.1.111,或者直接发送IP地址)
*	查看手机归属(同上,如归属13888888888 或者 13888888888)
*	计算器(发送 计算+计算式,如 计算1+1,该功能暂时有些问题,敬请期待更新:p)

6. 更多功能,后续更新,谢谢您的使用,有什么意见和想法可以反馈在下面,cheers:)

好久没写博客了,因为太忙。

至于忙什么,谁也不知道!

这大半年经历挺多的:

  • 女朋友3月来深圳,开始一起生活的日子。
  • 7月6号和女友一起去许昌,全家大团圆。
  • 10月1号和女友一起去同里她妈妈那。
  • 未完待续

每天都很累,也多少感觉一些充实。

时间在过,世界在变。

当时间走过,如果不能留点什么给将来,简直是个遗憾。

所以我决定重新写博客,有空的时候写一点点,以备后看。

加油吧,少年!

windows xp下创建符号链接

今天给女友的电脑设置dropbox同步的时候遇到一个问题,就是她想同步指定的文件夹,
当时立马就想到了windows中的mklink,可惜她用的是悲剧的xp系统,去网上找了下,找到一个junction的东东。
点此下载
使用方法如下:
1. 下载刚才那个文件,并解压到c:/windows/system32
2. 打开cmd,进入比如D盘,输入junction d:/linkdir "d:/srcdir"
3. 删除这个链接可以直接删除链接后的文件夹,也可以用junction -d d:/linkdir

0%