Note: this article is only for users with jailbroken devices. Sorry about that: Apple's locking down the entire system and no longer provides configuration options.
I love using my iPhone 5 to take quick HDR and panorama shots. While the image quality of the phone generally doesn't compare to that of dedicated enthusiast point-and-shoot cameras such as the Sony RX100 or PanasonicLX-7, both HDR and particularly the panorama mode of the iPhone 5 are stunning. While I have several panorama-enabled cameras, I only use the iPhone 5 for shooting quick panoramas. In practice, it delivers the most consistent, artifact-free panoramas. Just for a comparison: not even the latest-and-greatest Panasonic ZS-30, with its excellent travel zoom, can deliver panoramas of comparable quality and dependability.
After returning home, I love reviewing my shots on my large-screen Retina iPads, preferably with my wife before going to sleep without having to explicitly synchronize them from my iPhone 5 to iPad. Thanks to Photo Stream, the shots are there on the iPad when I need them.
The same holds true for screenshots. For this article I've taken shots in rapid succession on three of my iDevices: First, on my iPhone 5, to provide a Cydia screenshot; second, on my iPad 2 to show how the tweak needs to be enabled and configured in the system-wide Settings app; and finally, a fourth-generation iPod touch, still showing the size of the (locally) mirrored Photo Stream.
Without Photo Stream, I would've had to connect all of these iDevices to my Mac and drag the screenshot from the stockImage Capture app. With Photo Stream, I only had to fire up Aperture on my Mac and move to the end of the current month's Photo Stream to access all the three shots at once. This is much, much easier than the pre-Photo Stream way of transferring photos.
Keeping Storage Free
Generally, I choose not to delete old photos from the stream so they remain accessible on my large-storage, high resolution devices like my Retina iPads for bedtime browsing. In addition, I do want all my iDevices to automatically upload my new images, both traditional shots like the HDR/panorama shots taken on my iPhone 5, and plain screenshots taken on all my iDevices.
Enabling Photo Stream, however, means all my iDevices also will download all of my Photo Stream images to every single device, taking up a lot of storage. Since the majority of my iDevices are for testing and teaching, and aren't used as actively as my iPhone 5 and Retina iPad, this isn't a problem most of the time.
However, sometimes I need every last bit of storage space. For example, today, while working on a huge chart of TV out compatibility (I'll publish it very soon in THISTouchArcade thread), I needed to transfer as many TV out enabled apps to my iDevices. To minimize the amount of manual cleanup and installation cycles, I needed as much free storage as possible so I could transfer as many apps as possible in one step to an iDevice. The 600-700 MBytes occupied by my local copy did count. After all, given that I needed to install 20-30 Gbytes of apps on each device, it was preferable to do this in four rather than five complete deletion/installation steps.
A screenshot showing my stream's taking up 655 MBytes of storage on my iPod touch 4
Privacy Concerns
Another common issue is that of privacy. You might not want to synchronize your cloud images to all of your iDevices, so that, should you load or lose them, no one will be able to access them. However, you still may want to automatically upload your shots on the same iDevice. If this describes your situation, you'll find my article and mini-tutorial really useful.
Saving on 3G Costs
Some articles on this subject (such as that of Redmond Pie) mistakenly state that this tweak can help reduce 3G costs. This isn't the case: even with stock iOS, there won't be any Photo Stream up/downloads while you're on 3G.
Using Stock iOS
Unfortunately, you can't disable downloading from the cloud on iDevices. This is, as has been explained above, a problem on iDevices where you don't need to be able to access images in the cloud but from where you still want to upload images (e.g., new screenshots) from. Apple, in order to keep things simple, just doesn't offer this setting in stock iOS under Settings > iCloud > Photo Stream. It can only completely disable both up and downloading. That is, there is absolutely no way of selectively disabling downloading to the local iDevice.
As in most cases, you need a jailbroken device to do this. (Given the other huge advantages of jailbreaking when done properly, most importantly being f.lux in my opinion, you probably already have.)
Tutorial: Setup and Configuration
Purchase iControlPhoto from Cydia. It's $2 and a safe install on both iOS 5 and 6 devices. (I've tested it on several of them, both 5.1.1 and 6.1.2 ones.)
(Cydia main page of the tweak on my iPhone 5)
After installing, go to Settings > iControlPhoto.
Enable the main, uppermost “Enable” switch (disabled by default), along with the Upload and Screenshot switches below that. (Should you want to keep screenshots local, you can leave the Screenshot switch disabled, of course.) Of course you don't want to enable the “Download” switch – after all, then, you wouldn't need this tweak at all. This is shown in the next screenshot:
(click for original-sized image)
Deleting Previously Synchronized Local Copies
After configuring the tweak as explained above, you may also want to get rid of the previously synchronized pictures from your iDevice. To do this, you'll need to temporarily disable Photo Stream altogether, instructing the device to do the cleanup and, then, re-enabling it again so that uploading will still work.
Go to the standard Settings > iCloud > Photo Stream and disable the “My Photo Stream” switch. You'll be shown the following dialog:
click for original-sized image
Select “Delete Photos.” It won't delete them from the stream, only from your local device.
After this, you can re-enable the stream by re-enabling the same switch.
After doing this, uploading will be done as previously but no precious local storage will be used on the iDevice in question.
Note 1: under iOS versions prior to 6.0, there is no “Shared Photo Streams” switch in this dialog. (Nevertheless, you wouldn't need to touch it at all in the above process – as has been explained, you only need to dis-, and, then, after the cleanup, re-enabling the uppermost switch.)
Note 2: exactly the same switch can be found under Settings > Photos & Camera (under iOS 5, Settings > Photos):
(iOS 6; annotated by me)
iOS 5; annotated by me
It does the same as the one under Settings > iCloud > Photo Stream. The switch is just duplicated, which is pretty rare in stock iOS. That is, if you disable the switch under Settings > iCloud > Photo Stream, the one at Settings > Photos [& Camera] also will become disabled and vice versa. This means you can also disable and then re-enable the switch to clean up storage occupied by previously synchronized (downloaded) remote images.