Mobile phones are a widely-available class of device with supporting communications infrastructure which can be appropriated and exploited to support ubicomp experiences. However mobile phones vary hugely in their capabilities. We explore how a single dimension of phone application type embodies the critical trade-off between capability and availability, i.e. between what can be done and the fraction of potential participants’ phones that can do this. We describe four different mobile phone ubicomp experiences that illustrate different points along this continuum (SMS, WAP/Web, and J2ME, Python and native applications) and the common software platform/toolkit, EQUIP2, that has been co-developed to support them. From this we propose four development strategies for addressing mobile phone diversity: prioritise support for server development (including web integration), migrate functionality between server(s) and handset(s), support flexible communication options, and use a loosely coup...