Developing Java Applications for Limited Devices