A mobile software development primer