【iOS 技巧 - 7 】ios开发学习网站

Box2d

 

托德的Box2D的教程!
Box2D的 - 首页
如何只使用碰撞检测的cocos2d iPhone Box2D的|雷Wenderlich
“一个SpaceManager游戏|适用于iPhone的cocos2d
Box2D 论坛
box2d用户手册
Box2D 论坛iPhone

 

IOS开发中心

 

iOS 开发中心
iOS Dev Center - Apple Developer
IOS开发人员库
Foundation框架参考
内存管理编程指南:内存管理
The Objective-C Programming Language

 

Cocos2d

 

iPhone for cocos2d文档
cocos2d:类名单
prog_guide:sample_games -开源游戏
cocos2d for iPhone论坛
Cocos2d game development 资源收集 - hager的日志 - 网易博客
将游戏坐标转换为屏幕坐标,原理+公式 - 【综合讨论】 - 按键精灵论坛 放飞双手,点亮创意,四海之内皆兄弟!(原兄弟论坛)
RPG游戏45度角地图映射数组的问题 - 卢雪敏的日志 - 网易博客
了解掌握的cocos2d游戏发展
Cocos2d开发资源大集合 - xSoft的日志 - 网易博客
最新的“的cocos2d的问题 - 堆栈溢出
Particle Designer - iOS Game Particle Effects - Explosions Smoke Fire Rain Stars - iPhone iPad OSX Cocos2D
“一个SpaceManager游戏|适用于iPhone的cocos2d

 

源码站

 

SourceForge.net:查找,创建,发布免费的开源软件
开源iPhone应用程序的名单 - App Store的代码示例! | iPhone手机,内部监督办公室4,iPad的SDK开发教程和编程技巧
Interesting Repositories - GitHub
谷歌代码

 

TiledMapEditor

 

[转载] 在Tiled Map中使用碰撞检测 - 聚星亭 - C++博客
减少tiledmap的拼接效果(转) - cobranail的日志 - 网易博客
How To Make a Tile Based Game with Cocos2D - waleywen的专栏 - CSDN博客
Tiled Map Editor | Google 网上论坛
TomeTik
Tiled Map Editor官网
SourceForge上:平铺/平铺:摘要
Mapping Tutorial - TheManaWorld

 

碰撞

 

Cocos2d小球碰撞问题 | 游戏开发讨论区 - CocoaChina 开发讨论区 - Powered by PHPWind
碰撞反应中的物理公式 - steek - 博客园
Box2D中使用b2ContactListener进行碰撞检测_goodlad有限空间_百度空间
(译)在cocos2d里面如何使用物理引擎box2d:弹球 - 子龙山人 - 博客园
(译)如何使用box2d来做碰撞检测(且仅用来做碰撞检测) - 子龙山人 - 博客园

 

OpenGL

 

讷河市 - 一切的OpenGL
Khronos Group 中国 - 开源多媒体创作API
AngelCode.com - 位图字体生成器
OpenGL ES的1.1参考页
OpenGL ES的SDK

 

Iphone开发

 

71Squared - 两个30的东西开发随笔
在iPhone上的OpenAL的声音| benbritten.com
首页 - 加速度模拟器 - 模拟加速度计的主页 - 使用iPhone模拟器或其他应用程序的iPhone的加速度 - Google项目托管
Code Nerdyness and Nonsense...
iDevGames
iPhone Development
iPhone Tutorials | Ray Wenderlich
iDevGames - 矢量教程

 

博客

 

waleywen的专栏 - CSDN博客
残酷の青春 » Cocos2D
类别:参考 - TheManaWorld

 

游戏音乐

 

游戏音乐,游戏背景音乐,经典游戏音乐,FC游戏音乐,MGM游戏音乐网
做iPhone游戏背景音乐的方法_CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发社区 最热的iPad开发社区
游戏音乐
彩风音乐游戏社区
伴奏-诗洁-中国原创音乐基地
- 闪吧音源音效 列表页面
运动体育类-弹球 - 闪吧音源音效 列表页面

 

面向对象

 

关于面向过程及面向对象编程_紫荆仙草_百度空间
思想的转化:面向过程 ---> 面向对象 - Code 詩亼 - CSDN博客

 

内存管理

 

《Objective-C基础教程》学习小结
=======================================================================================

视频

推荐斯坦福老头子(Paul Hegarty)的 Developing iOS 7 Apps for iPhone and iPad ,当初也是看的这个(那时还是更老的版本),Paul 是资深的 Mac/iOS 开发(前苹果员工?),很多知识点讲得很到位,学生们的提问也大都在点上,同时配有Demo,总之听下来会对 iOS 开发有比较全面的了解。

同时推荐一本小册子:objc-zen-book,花不长时间就能看完,里面是一些 Best Practices,对于编写优质代码会很有帮助。

笔记

这是一个持久的过程,任何阶段都适用。以前也没太在意这个,觉得概念性的东西,脑子过一遍,就大概知道了,然后就去啃其他的东西了,现在看来,如果有记笔记的话,会更有助于消化概念、知识点,也可以记录自己的思考过程。达芬奇就记录了10000多页的笔记。

记笔记可以加深对知识点的理解,而成为编程巨星的唯一秘诀就是:对所做的事情理解地越深,就会做得越好。同时如果遵循遗忘曲线去复习的话,效果更佳。对知识点了解地足够透彻后,Debug 时才更有可能知道问题出在哪,解决问题也更容易有思路。

笔记不仅可以记知识点,也可以记录调试过程,比如这篇笔记,有一种调试方法:小黄鸭调试法

许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。

生活中我们可能不会真的这么去做,这时抽离出另一个自己,记录下跟ta的对话,也是个发现问题的好方法。

练习

这也是一个持续的过程,知道了些概念或原理后,总是会想着去验证下是不是这样,无论结果是否如自己预期,实践的过程会降低对语言的陌生感,慢慢地培养一种驾驭这门语言的自信,如果出了错,正好可以重新梳理一下。

目标

如果静下心来看完了 BNR 的这本书,以及斯坦福的 iOS 开发视频,那么对 OC 应该比较了解了,一些常用的 UIKit 用起来也没什么问题了,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。

这个阶段下来,应该会有:哦,iOS 开发也就这样嘛,多翻翻文档,熟悉 Cocoa Touch 的一些 Class,差不多也能做出一个简单的 App 了。

进阶

入门之后,接下来可以折腾的东西还会有不少。

书籍

Effective Objective-C 2.0,里面提到了 52 种提高 iOS App 质量的途径。涉及了 API 设计、protocols / category 的使用、写出更模块化的代码等,读下来应该会有不少收获。

iOS Programming: The Big Nerd Ranch Guide (4th Edition),又是一本 BNR 的书,这本书的特点是通过 Demo 来引出知识点,然后提一些问题,并且会细说解题思路。看书的过程中,对于元学习能力的提升也会有一定帮助。

— update —

发现巧哥的 iOS开发进阶 已经可以在京东买到了,虽然没有细看,但巧哥出品质量肯定有保障。

其他资源

进入这个阶段后,可以去探索更大的世界了,现在的资源已经很丰富了,但还是要遵循「少而精」的原则。以下是我觉得挺不错的源

还有,如果可能的话,多去分享自己学到的东西,教是最好的学,我试过几次,效果真的很不错。

目标

这个阶段下来,对于常用的设计模式、内存管理、Blocks 的使用、图像操作、网络请求和管理、多线程应该比较熟悉了。对于 CALayer、Animation、UIScrollView、UITableView、UICollectionView、ViewController Container 则非常熟悉,对「非常熟悉」的定义是:不打开 Xcode,脑子里就能把相应的知识点复述出来 80% ,比如这个类有哪些方法,Delegate / DataSource 有哪些方法,怎么使用,如果要实现某个效果,应该怎么做(好吧, UICollectionView 除外)。

高级

其实高级、进阶、入门并没有严格的界限,在入门阶段也可以探究高级阶段的一些东西。我觉得支撑我们不断探索和前进的动力不是兴趣,而是永不满足的好奇心,和对优雅代码的追求。

If your standards are low, you’re going to stop pretty early on in the process.

BNR 的这篇 Leveling Up 已经讲得很好了,也更加细致。

书籍

iOS 7 Programming Pushing the Limits 这本书对 iOS 7 的一些特性会讲解地比较深入,当然也不仅仅是 iOS 7。只叹 iOS 更新实在太快,书籍往往跟不上,一本好书往往需要很长时间来撰写,等书可以出版了,iOS 又出新版本了。

源码

看优秀的源码,可以学到很多东西,使用过程中遇到问题也更容易解决。这些是我觉得值得细看的源码:AFNetworking(NSOperation, HTTP, Block), SDWebImage(Image Handle, Cache, NSOperation, Block),SVPullToRefresh(UIScrollView, State Handle), JSONModel(runtime)

如果有兴趣,也可以翻翻 CoreFoundation / OC runtime 的源码。

资源

工具

  • chisel Facebook 出品的 LLDB 助手,用于调试很方便
  • Reveal 每当好奇某个 App 的实现时,都会打开它一窥究竟,用于调试自己的 App 也很方便
  • Aspects steipete 大大出品的一款方便使用 method swizzling 的工具,可以在运行时动态添加代码到某个方法
  • class-dump 从 Mach-O 文件生成 OC 头文件,有时想看看某个 App 大概是如何组织的会比较方便
  • Hopper 可以对二进制文件进行反编译,甚至可以生成伪代码!有时想看看 UIViewController 里某个方法大概是怎么实现的,就可以用它。
  • Instruments 这个内置的工具对于发现 App 的各种问题很有帮助,如内存占用、泄露,渲染问题等。

目标

这个阶段,对于底层的实现会有更深入的了解,各种 Core 开头的 Framework 至少可以说出个大概,工具也能熟练使用,「正经的代码」写过数万行,可能天天在翻 Dash。如果别人让你实现某个功能,能在较短的时间内给出不错的实现方案,并且足够细致,甚至精细到如何使用 Core Graphic 去画某个图像。

其他

我觉得无论学习什么,「速成」的心态是最要不得的,这只会让自己变得浮躁,一知半解,整个过程也很难让自己的元学习能力得到提升。慢慢来,攻占一个城后,再去打下一个,这时心态也会平和许多。

posted @ 2015-01-27 11:10  kengsir  阅读(194)  评论(0编辑  收藏  举报