Mobile devices have become an integral part of our lives. As people rely more on them, the traffic demand has increased rapidly, outpacing the growth of the capacity of cellular networks. As a result, connectivity problems such as congestions are becoming more common. In a similar manner, users\u27 increasing demand for storage space on mobile devices leads to major inconvenience when available space runs out. In this dissertation, we present a novel method of mitigating or preventing the negative effects of such connectivity issues in multimedia streaming applications, as well as a technique for reducing storage requirements of mobile applications. Mobile streaming applications usually limit the download rate in some way, in order to conserve user\u27s bandwidth. However, when connectivity is degraded, playback can easily be disrupted. To prevent this, we propose a novel framework called TANGO, where real-time network conditions combined with the user\u27s location prediction are used to give the application an early notification of network degradation. This allows the application to change its buffering strategy proactively in order to prevent playback disruption. We next focus on reducing storage requirements of mobile applications, especially games, through predictive streaming. The size of mobile applications and the users\u27 demand for storage have been outpacing the growth of storage capacity of mobile devices. This leads to the users frequently having to uninstall some applications or remove personal files in order to free up storage for new applications. We propose a technique called AppStreamer, which predicts applications\u27 file accesses and use this information to cache the applications\u27 resource files in a smart way. We implement AppStreamer on Android and evaluate the effects it has on user experience using user studies. The results indicate that most people notice no degradation of user experience, while the storage requirements of the application can be reduced by more than 85%