• 跨平台代码分享之四 – 开源跨平台C++库介绍

    做项目时发现一个开源C++库,称为POCO(POrtable COmponents – 可移植元件),非常方便好用。

     

    特性:

     

    * 线程,程序同步及多线程编程高级抽象
    * 流及文件系统访问
    * 共享库将类加载
    * 功能强大的日志和错误报告
    * 安全及加密
    * 网络编程 (TCP/IP 套接字, HTTP客户端和HTTP服务器, FTP, SMTP, POP3, 等)
    * XML解析 (SAX2 和 DOM) 及生成
    * 配置文件及选项处理
    * SQL数据库访问(ODBC, MySQL, SQLite)

     

    可以运行的平台包括:

     

    * Windows
    * Mac OS X
    * iPhone OS
    * (embedded) Linux
    * HP-UX
    * Tru64
    * Solaris
    * QNX

     
  • OpenGL ES粒子发生器

    译者注:此代码虽然有这样那样的问题,但仍然值得参考。

    IMG_0038

    我在360 iDev会议中汇总了粒子发生器的代码。由于我又要开始进行有收入的工作所以我必须将之处之高阁了,但我准备在这里分享给有兴趣者。

    IMG_0020

    首先,我要说我并不是一个OpenGL的专家,我撰写此文能够帮助我更好地学习OpenGL 和粒子系统,所以可以肯定还有很多地方需要改进。

    IMG_0038

    其次,此代码还有许多bug,并不适用于最终产品。最重要的一个bug是试图释放粒子时造成的死循环。粒子内存没有被释放,它不断被重用。有两个链接表,一个用于保存可见的粒子,另一个保存不再可见的粒子。当一个粒子生存期到达时,它将被从一个列表移动到另一个。当需要一个新的粒子时,就从列表中提取一个。此方法可以避免不断的内存分配和释放的开销 。但是,当粒子发射后,我需要一个选项来释放内存,现在它会造成死循环。

    IMG_0005

    第三,示例程序将所有的发生器放入一个数组中。当你轻触屏幕时,当前发生器会停止发射,下一个发生器开始启动。当最后一个发生器结束时,第一个发生器循环启动。此时,会遇到pthread锁竞争问题,两个线程会等待另一个线程,引起程序锁住。由于我并非手工建立线程,所以跟踪此问题可能有相当的难度。

    IMG_0004

    可在Google Code project 下载。如果你不想使用subversion,你也可以直接下载zip文件Particles_03_06_2008.

     
  • iPhone 3.0新特性系列教程之五 – 电池监视

     

    读文章 »

     
  • OpenGL ES 03 – 变换

    今天我们将在屏幕上同时显示三角形和正方形,并且移动它们。移动一个物体,我们称之为转移.

     

    读文章 »

     
  • 开始学习iPhone编程之四 – 所有iPhone apps都需要做的七件事

    想要开发iPod或iPhone程序?这里有一个列表,列出了要获得成功需要做到的七件事。

     

    如果你有一台iPhone或者iPod,那么你可能下载过一些程序。如果你下载了不止一个程序,那么你很快就会发现一些程序比另一些更好。

     

    开发者在编写程序时有许多选择;程序不但需要有一个很好的设想,而且需要以一种iPhone用户熟悉的方式展现出来。如果用户需要花上超过一分钟的时间来摸索这样使用你的程序,那么导致的结果可能是他们再也不会使用你的程序并且会给出一个低分。

     

    这两种结果都是不好的结果,特别是你希望在App Store中获得成功时,你的程序需要处于某个“Top”列表中。

     

    考虑到这些,我根据我的经验汇总了一个列表,将帮助你使你的iPhone程序获得成功。

     

    读文章 »

     
  • 开始学习iPhone编程之三 – Hello world

    介绍:

    许多人对iPhone开发知之甚少,本教程的目标是写一个运行在iPhone模拟器上的“Hello World”程序。如果你不喜欢读这十个步骤,那么你可以直接去观看教程视频

     

    读文章 »

     
  • iPhone静态库项目模板

    Xcode并未提供iPhone静态库的模板,所以我每次都使用Mac Application的静态库模板,但每次建立项目后,都要针对iPhone进行一些修改,比较麻烦。我在网上找到一个可以直接被iPhone项目使用的静态库模板:

    http://github.com/keremk/iphone-static-library-project-template

     
  • 一个可用在iPhone上的SMTP客户端程序

    虽然iPhone上可以直接调用email程序发送email,但如果你需要直接通过SMTP发送邮件,这个开源项目可能对你十分有帮助:

    Quick SMTP client code for the iPhone

     
  • iPhone 3.0新特性系列教程之四 – 临近监测

    去年当Google发布了一款iPhone应用程序时引起了一段辩论:他们的程序使用了未公开的API来检测是否电话靠近说话者的耳朵。

     

    而在iPhone 3.0 SDK中,此API可以被任何程序使用了。本文展示怎样使用此API:

     

    读文章 »

     
  • 开始学习iPhone编程之二 – 有关开发的基本问答

    有一个印度的朋友向我询问了几个有关iPhone开发的问题,下面是我的回答。

    1) 我目前还不是注册的开发者,我将在2,3天内注册,我不能完成代码签名的原因是不是这个?
    要进行代码签名,有两种方式,一种是正确的方式,一种是错误的方式。正确的方式是使用Apple开发者许可证,错误的方式是使用Cydia。我推荐你使用正确的方式。所以,再多等2,3天,你就可以安装应用程序到你的设备上了。

    2)注册后怎样获取证书…?(代码签名证书…)可以告诉我详细的步骤吗?
    一旦你获得了许可证(apple会email你), 你就可以开始访问 http://developer.apple.com/iphone的Program Portal。从那里可以获取证书(certificate)。

    译者注:实际上获取签名证书的步骤相当繁复,不知有无apple中文网站是否有说明。英文说明翻译工作量十分大,不知感兴趣的人多不多。

    3) 怎样发布我的应用程序…(可以不需要App-store进行程序发布吗?)
    你应该知道,数以百万计的iPhone用户中的80%到90%是通过Apple store下载程序的。 但是如果你的目标对象是“越狱”用户,你需要通过Cydia。(译者注:或者通过Icy)。如果你使用的是Apple官方SDK,那么你可以同时在Cydia和Apple store 上发布你的应用程序。

    4) 总共有多少证书?(像代码签名证书之类)
    有两种类型的证书:
    1. 开发者证书,你可以用来在Xcode调试器中测试程序。.
    2. 发布证书,用来发布给你的应用程序给客户或发送给客户。

    译者注:实际上又有两种情况,一种是发布给App Store,另一种叫Ad-hoc发布,仅限于注册了iPhone UUID的用户使用,便于测试。

    5)  我是否不进行注册而让我的程序运行在设备上(“越狱”的设备)?
    你可以在“越狱”的设备上运行程序,你需要的只是Apple开发者许可证或通过Cydia安装程序。

    原文见:Basic Questions before You start iPhone Development