Developer’s Section

Darwin’s Edge

Last modified on 2009-09-08 10:54:18 GMT. 0 comments. Top.

Penguins are a result of what is called “evolution”. They evolved over many generations to become the most versatile diving birds and perfectly adapted to things like hip-hop music and gadgetry.

iPeng should do the same, so here’s the development section. Comments on ongoing development, things to come, change requests help donations and information about great fish sources should go here.

Have fun.Pinguine sind das Ergebnis eines Vorganges, den wir “Evolution” nennen. Sie entwickelten sich über viele Generationen hinweg, um die perfektesten Taucher, Schwimmer, Hip-Hopper und Gadget-Nutzer unter den Vögeln zu werden.

iPeng soll es genauso machen, deshalb gibt es diese “Entwicklungs-Ecke”. Kommentare zur laufenden Entwicklung, Kritik, Verbesserungsvorschläge, Fehlerreports und Tipps für Fischrestaurants sollten hier untergebracht werden.


This Section will also be used to document iPeng for Plugin Developers.

Issues regarding Plugin Development

Last modified on 2008-08-02 02:30:21 GMT. 0 comments. Top.

Please Comment to discuss iPeng related plugin development issues.

How to get the latest builds

Last modified on 2008-08-02 02:30:21 GMT. 0 comments. Top.

There will be no more “unstable” releases of iPeng. Instead of this, there’s now a GoogleCode repository where you can download the latest development updates. It can be found at

You can get subversion access through

svn checkout ipeng-read-only

How to develop an iPeng Browse Page for SqueezeCenter Plugins

How to use the iPeng CLI command to extend iPeng’s functionality

User Agent Limitations

Last modified on 2008-08-02 02:30:21 GMT. 0 comments. Top.

The main reason why plugins do not work “out of the box” is that the iPhone user agent is different from a PC browser. The main aspects having an impact are:

No mouseovers.  There is no mouse so also no mouseover events. It is generally possible to generate some mouse events, for example to get the position of a click, but they are only being generated after a click so they are not usable to display controls.

No drag’n’drop.  Without a mouseover it’s also not possible to generate a drag’n’drop scheme so this has to be different as well.

No space. An iPhone screen may be big for a phone but it’s not a PC screen. So every information that is not strictly necessary has to stay off, especially since…

No exact positioning. You select stuff with a finger. Coolio does so with a wing. While those do come in different sizes selecting stuff is not as exact as with a mouse pointer, so whatever control goes onto the screen needs to be big.

Scroll events are limited.  Mobile Safari does send onscroll events. Yet it only does so only after scrolling is finished, so detecting the start of scrolling and acting accordingly is not an option.