iOS 8 Photos Freak Out

Kwangbae Lee
A Startup Hustler’s Guide
9 min readSep 21, 2014

--

and how we managed

On the 17th of September, iOS 8 was officially released.

Dropbox and Google were stabbed in the back as were their users.

Even Apple employees are struggling.

So what the hell happened?

This is a look into what happened in iOS 8 Photos

Apple, You Done Did It.

Just to be clear, this article is not meant to criticize Apple, but a clear statement shall be made – Apple messed up. At least iOS8 did for now.

From an app developer’s point of view, here is how the “story” went.

The Beginning: iOS 8 Introduced

iOS 8 was first introduced in WWDC on June 2, 2014. iCloud Photo Library enabled users to back up their entire photos, and with it a new framework for developers called PhotoKit was also introduced. App developers were gearing up for iOS 8 with this Beta version.

The Development: Specification Change at GM?

Prior to the release of a new iOS, Apple has provided developers with Beta versions. After tests on these Beta versions they released the “GM(Gold Master)” that was cleared of all the issued presented on Beta. Essentially the GM version is identical to the launch version. Apple has released the GM a week before the official OS release.

This time however, the GM(Sept 10) changed significantly from the previous Beta, and nobody saw this coming.

“Something weird happened to Photos.”

The Disaster: What Do We Do Now??

Tidy is a photo album app. When updated within GM, most of the photos in the app went missing. Our user’s hard work of organizing photos into albums just disappeared instantly.

We couldn't wait until the official release of iOS. With only a few days left, we had to react quickly.

D-Day: iOS 8 Official Release

On September 17th, GM-mirrored iOS 8 was officially released as expected. And…

Everyone got stabbed in the back. Dropbox, Google+ and other photo backup services stopped functioning properly on iOS8, and developers got frustrated. Users were just as frustrated with the change in the default photo app.

We got through. Tidy was able to migrate into iOS8 with better features, and this is how we did it:

WTF Happened?

Death of Camera Roll

What Camera Roll meant was “ALL THE PHOTOS ON THIS DEVICE.” iOS8 no longer has Camera Roll. The space for all photos no longer exists.

This does not only concern the ‘Photos’ app. Most apps go through Camera Roll when they need to access photos on the OS. Whether it’s a Facebook upload, Dropbox or Google+ photo backup, this is how photos are accessed.

However, in iOS8 this has disappeared. Technically speaking the previous framework ALAsset does not grab ‘ALL PHOTS’ but the ‘RECENTLY ADDED.’

Where Are ‘All Photos?’’

If you use the old framework on the new iOS8 GM, the ‘Recently Added’ is displayed instead of ‘Camera Roll.’ ‘Recently Added’ is a new album system added on iOS8 which shows recent photos taken within 30 days.

This process is managed by ALAsset, and most apps use this. This means that you cannot upload photos on Facebook taken before 30days, post on Instagram, or backup to Dropbox or Google+. This is still true at the point of this post(Sept 19)

Users are also disoriented by the disappearance of Camera Roll and Photo Stream within the default Photos app.

https://twitter.com/lexeca/status/512574502912667648
https://twitter.com/ay_xo/status/512744816484954113

What Is Apple Up To?

Contemplating the recent changes by Apple, I have come to this conclusion.

“Apple is moving towards CLOUD despite drastic changes in usability.”

(And this process seems to be a rocky one. )

This goal is noticeable when you look at the Photos app.

The default Photos app tab. From the left Photos / Shared / Albums. This screen shows the Photos tab activated, and above is the total number photos being updated.

Photos: ALL LOCAL PHOTOS(X) / ALL PHOTOS(O)

From now on all the user’s photos go into the ‘Photos’ tab. This not based on the device, but the user’s Apple account. Before the Camera Roll meant ‘All photos on this device,’ and now ‘Photos’ means ‘All my photos.’

What this change from device to Apple account means is that Apple is urging users to store photos on iCloud and access them through any device that has access to this. ‘Photos’ contain photos taken on your iPhone and iPad too — as long as you use the iCloud Photo Library provided in iOS8.

Since you have space to view all your photos across your devices, the Camera Roll becomes obsolete. So Apple got rid of it. And the framework to access it from other apps. #DAMNYOUAPPLE

Shared: Kept Seperate

Photo sharing through iCloud has existed since iOS6, and still does(‘Photo Stream’ on iOS6, ‘iCloud Photo Sharing’ after iOS7) These are not included in Photos. Shared photos are not considered as ‘my photos.’

Albums: Grouped

The album structure is same as the previous versions. Camera Roll and Photo Stream however, no longer exists.

This is where users get confused. To clarify:

  • Camera Roll: Disappeared. As mentioned earlier, all your photos can be accessed in Photos.
  • Photo Stream: Disappeared, too. This was introduced as a transitional phase. It seems that Photo Stream will be part of iCloud now.
  • Recently Added: This is new. This tab displays photos from 30 days ago. This is not what used to be the Camera Roll.
  • Recently Deleted: Also new. These are photos deleted within 30 days. After 30 days, they are automatically deleted for good.

Apps: Access Through ‘All Photos’

It’s unclear why ALAsset accesses ‘Recently Added’ now, but it is clear that Apple is requesting apps to access ‘All Photos’ and not ‘All local photos on the device’

I had the chance to talk to the person in charge of iOS Photos framework from Apple, and his reply was simple:

“I can’t say much but using PhotoKit is clearly your best bet.

ALAssets has a lot of issues.”

(Why don’t you make PhotoKit better then, I would’ve liked to ask him)

What We Did

We did suffer a little, but reacted relatively quickly. If we hadn’t, our users’ precious memories would vanish, so we spent some sleepless nights over the weekend. Allow me to share some of what we did.

1. We narrowed down the range of photos to display

Tidy organizes my photos into albums. There for it’s crucial for us to decide which photos to pull from the device.

After understanding the changes in iOS8, we have rearranged the range of photos, and this is what we came up with. The following conditions are required in order to specify what ‘my photos’ means to our users.

  • Pull all photos regardless of local or cloud,
  • but leave out shared photos such as iCloud Photo Sharing,
  • and also exclude My Photo Stream which is a product of when local and cloud stored photos were divided.

Without these guidelines, Tidy would face the same problems Dropbox and Google+ faced — Only being able to see the ‘Recently Added’, or the problems Instagram and VSCO faced- viewing multiple versions of the same photo.

2. We reconstructed our photo analyzing logic using PhotoKit

We achieved this through code. The following are results of hard work in a short period of time.

2–1. Pull up ‘All Photos’

This part is easy. All we need to do is ditch ALAssets and use PHAssets from PhotoKit. However, this process accessed photos from iCloud Sharing, and Photo Stream, which displays multiple versions of the same photo. Excluding these results is the fun part.

2–2. Excluding iCloud Photo Sharing

iCloud Photo Sharing is using iCloud storage to share photos among Apple users. From our point of view, they are not my personal photos, so they need to be left out. This is the code:

https://gist.github.com/kwangbae/69d06c96a82701eebddd

2–3. Excluding Photo Stream

Photo Stream was developed as an automatic backup system before iCloud Photo Library was introduced.

When you use PHAsset Photo Stream is also accessed. The problem is that photos backed up through Photo Stream are duplicates of the original, thus displaying multiple versions of the same photo.

*It wasn’t easy achieving this, but we did. I will not disclose the code in this post, but if you wish to know, please contact me by email.

Our Result

All iOS Photos = All Tidy Photos

Left: iOS “Photos” / Right: Tidy . Tidy shows one more photo because I had to screen capture from the Photos for this post

The photos brought into Tidy are all my photos, and this is identical to the results iOS8 default Photos app. As we intended. Cool. (We still don’t understand why this wasn’t implemented in PhotoKit already though.)

iTunes synced photos has always been requested by our users, and iCloud photos we didn’t know how to deal with. Finally, we took care of both, and were able to give our users the good news.

On top of all this, you can now access iTunes synced photos and iCloud photos through Tidy.

Hooray!

The Future of iOS Photos

Local/Cloud separation obsolete. Automatic optimization prevails

As you can see the major change in this iOS is erasing the gap between local and cloud storage. If you use iCloud, you don’t have to worry about where your photos are stored.

My prediction is that using cloud storage, iOS will find ways to optimize your local storage. Photos taken from your iphone does not have to be stored in it, because they’re in Photos anyway.

Photo Stream becomes obsolete

As mentioned above, Photo Stream was a transitional step towards iCloud service. All your photos across devices will be integrated through iCloud. This byproduct is no longer needed except for backwards compatibility for some devices.

‘Photos’ for Desktop that resembles the iOS is coming

It’s no news that iPhoto and Aperture is being dropped(iOS is no longer supporting iPhoto either.) Rumor has it that they are combining the two in order to create a Photos for desktop. My guess is that this would be similar if not identical to the Photos on iOS. You would probably be able to view all your photos under the Photos tab.

P.S.

Dear Developers

Please throw away ALAsset and use PhotoKit as soon as you can. Also consider the range of photos you would like to incorporate in your app. It is unclear how Apple will work on PhotoKit in the future, so keep your eyes open.

We at Team TIDY had a good opportunity to look back into our process. Especially on why it took us this long to react. (In our defense, so did Dropbox and Google.) Whenever there are changes in platform and new APIs, we need to look a step ahead of the future.

If you have any advices or tips, we welcome it. Including ones regarding Tidy. Our ears are always open.

Dear iOS Users

I understand that some of you are frustrated by the recent changes. You’re not the only one missing the Camera Roll, but there’s no need to panic. Once you understand the concept behind all this, there are aspects to it that actually made things a lot easier. Most of all, Apple didn’t actually delete all you photos. If this post hasn’t cleared up all the issues you face, also check here, here, and here.

You might not like the new iOS Photos app, in which case your welcome to try out Tidy to see if it makes things better. You can organize your photos into amazing albums. (If you have any questions, a great team is always here for you.)

--

--