This document discusses factors to consider for mobile software development and porting applications between different mobile platforms. It provides an overview of several popular mobile platforms including BREW, J2ME, Android, iPhone, Blackberry, and Windows Mobile, outlining their key features and limitations. The largest challenge for developers is supporting the many different device configurations given platform fragmentation; while Java enables cross-platform development, differences between devices can prevent true write-once-run-anywhere functionality.