Under the Bridge

HTML5 Roundup

Here’s a collection of iPhone-targeted HTML5 links we stumbled across recently, for whenever it is you decide to get into writing cross-platform or non-AppStore apps:

Tutorial: Your First Mobile HTML5 App – The Basics, Forms, and Geolocation (Part 1)

Tutorial: Your First Mobile HTML5 App – Offline Storage (Part 2)

Nice and easy introduction.

HTML fullscreen apps for the iPad

Some handy formatting tips.

Create offline Web applications on mobile devices with HTML5

From IBM developerWorks, no less; provides a sample inventory management application, tested on an iPhone 3GS and a Palm Pre.

Opensourcing Golingo

Source of a word puzzle game published in the App Store, created with Titanium Mobile and Web code.


Sprite library using the canvas tag, targeted at retro pixelated games; several playable demos.

Japstore – The free Javascript application store

Bookmarkable Javascript applications and a downloadable SDK to create them.

Parcycle: A Particle System with HTML5 canvas

Oh, we just love those particle systems, yes we do. Browser and offline webapp demos for your hypnotic pleasure. And dig around on the site for other links to various webapp examples.


Learn HTML5: 10 Must Read Lessons has a bunch of good stuff.

Continue Reading →

Tip: Shipping App Size

Just in case you ever need to know in detail:

How to calculate the final size of an iPhone App before approval

but briefly, since your executable is encrypted for the store it’s not going to compress well; so for a rough guess, try

  1. open the .app bundle via right-click -> Show Package Contents (on Mac)
  2. locate the executable file and remember its (uncompressed) size (Size “A”)
  3. delete the executable from the bundle
  4. zip the bundle and remember the bundle’s compressed size (Size “B”)

Size “C” are the 100 KB from the additional files added to the bundle by Apple. The final calculation for the maximum size of your App is as follows:

A + B + C = maximum size of your App after approval

The calculation put in words:

(uncompressed executable size) + (app bundle compressed but without executable) + 0,1 MB = maximum size of your App after approval

Handy to know if you’re butting up against the over the air download limit!

Continue Reading →

5 Ways to Draw a Shape

Unless you’re a really serious CoreGraphics expert, there is almost certainly something to be learned here:

5 ways to draw a 2D shape with a hole in CoreGraphics

In this post, I look at 5 different ways that you can draw a very simple shape: a square with a triangular hole cut out of the center. In a drawing environment like CoreGraphics which offers double buffering, winding count path filling, even-odd path filling and clipping regions, there’s no single answer. An iPhone sample project is provided containing the code but all drawing functions are identical on the Mac…

Continue Reading →


So it’s pretty easy to customize the look of regular table views, pretty much set background to [UIColor clearColor] and you’re done, but no doubt you’ve noticed it’s quite considerably trickier to customize the look and background of grouped tables, specifically getting those @(#&Y$!! corners right. Well, here is UACellBackgroundView to sort that out for you:

How to Make Custom Drawn Gradient Backgrounds in a Grouped UITableView with Core Graphics

that lets you produce pretty gradient cells like this with just a couple lines of code in your regular table handling:


Very nice, very nice. Based on this Stack Overflow question, which you can find more exposition on here; but hey, it only took us a few minutes to toss UACellBackgroundView into our current panic for a nice shininess upgrade — and it’s all about the shiny! — so no need to look further, really.

Continue Reading →

cocos2d + Particle Designer

So that awesome toy^H^H^H development assistant Particle Designer that we mentioned a while back is now officially released and you can download it from its new website — for only $7.99 USD, what a deal we’ve got ours! — and there is a completely unexpected (by us, anyways) feature; it integrates directly with cocos2d.

Yep, cocos2d 0.99.3-rc released today has support for Particle Designer:

In order to use the particles created with it you should:

1. Download & Register Particle Designer (you need to register it in order to save the particles)

2. Use the “cocos2d (plist)” format when saving the texture (you can embed the texture or not. cocos2d supports both format)

To load a particle created with Particle Designer you should do:

// Either you can create a Quad particle system

id particleSystem = [CCQuadParticleSystem particleWithFile:@”MyParticle.plist”];

// …or a Point particle system.

id particleSystem = [CCPointParticleSystem particleWithFile:@”MyParticle.plist”];

cocos2d supports all the Particle Designer features…

It’s just like getting a heaping helping of awesome sauce on your awesome sundae, isn’t it now?

[UPDATE: And now with tutorial video!]

Continue Reading →

CoverFlow Tutorial

Here’s an excellent tutorial on how to, well,

… help you add a cool effect called the “cover flow/open flow” effect to any of your iphone apps. This is cool in two ways actually. One it adds animation kind of effect to your app and the other, its very easy to build too…

It’s based on the OpenFlow project that we actually mentioned in passing before, but if you haven’t checked that out yet this is a great place to start!

Continue Reading →

Tip: TCP and SSL

You may have noted in QA1652 that is now possible to use NSStreams for your TCP communication needs even though the iPhone has no NSHost class, by leveraging the NSStream <-> CFStream toll-free bridge; but we’ll bet you didn’t know that you can encrypt them with SSL easily:

… The way that we enable SSL encryption is to simply use setProperty:forKey: on both streams, setting the key NSStreamSocketSecurityLevelKey to a value that specifies the version of SSL to use. If you want to tell NSStream to use the highest version supported in common with the remote connection, specify NSStreamSocketSecurityLevelKey. That’s what you’ll usually want…

However, that’s for a somewhat optimistic value of “easily”:

… This code will work if everything is perfect. However, by default, SSL support in NSStream is a little paranoid. It won’t, for example, use a self-signed certificate or an expired certificate to establish a secure connection. NSStream does a number of validity checks when establishing the secure connection, and if they don’t all pass, the streams appear to be valid, but no data gets sent or received. This is somewhat frustrating…

Read the whole article for further advice and sample code!

Continue Reading →

Streaming in OpenAL

For the latest in our “just in case you ever need to know how” notes, here’s what looks like a comprehensive study in

Streaming in OpenAL


Not that there appears to be anything particularly wizardly technical about streaming in OpenAL compared to streaming using any other set of APIs, but hey, it beats having to figure out all the appropriate calls yourself!

Continue Reading →

Tip: Grayscale UIImage

Here’s a handy routine to easily convert an UIImage to grayscale, like this:


- (UIImage *)convertImageToGrayScale:(UIImage *)image


  // Create image rectangle with current image width/height

  CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height);

  // Grayscale color space

  CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();

  // Create bitmap content with current image size and grayscale colorspace

  CGContextRef context = CGBitmapContextCreate(nil, image.size.width, image.size.height, 8, 0, colorSpace, kCGImageAlphaNone);

  // Draw image into current context, with specified rectangle

  // using previously defined context (with grayscale colorspace)

  CGContextDrawImage(context, imageRect, [image CGImage]);

  // Create bitmap image info from pixel data in current context

  CGImageRef imageRef = CGBitmapContextCreateImage(context);

  // Create a new UIImage object

  UIImage *newImage = [UIImage imageWithCGImage:imageRef];

  // Release colorspace, context and bitmap information




  // Return the new grayscale image

  return newImage;


That would be a stylish effect for a “please wait” pause or the like, we figure.

Continue Reading →


Here’s a handy-looking little tool called BarTint for playing with your interface colours:

BarTint is a tool for developers and designers of iPhone apps, to assist in the visualization of the various bar-type objects (toolbars, navbars, segmented controls) when a tint color has been applied to them.

Because of the gloss and caustic shader applied to these objects, when you specify a color, you don’t necessarily get what you think you’re going to get. BarTint takes the guesswork out, letting you see exactly what a color combination looks like on the device, and allows you to forward the Objective-C required to produce that UIColor to yourself over email…


Very nice, very nice. And FREE, no less!

Continue Reading →
Page 70 of 119 «...4050606869707172...»