Personal website of developer Filip Stefansson / Archive

My favorite new features in iOS 8

At apple.com, the iOS 8 tagline is: iOS 8 - Huge for developers. For non developlers, this might sound like a way to say that there’s nothing new going on in the OS. This is not true. iOS 8 really is a release for develpers.

Aside from the big news like Swift and HealthKit, I’ve compiled a list of the most interesting stuff that I’ve found by playing around with it for about a week now.

1. Self-sizing UITableViewCells

You can now use AutoLayout to set the height of individual cells. The new default height for a cell is a value called UITableViewAutomaticDimension. So if you create a constraint from a UILabel to the bottom of the cell, and then change the height of this label, the cell will automatically be resized. No need to use tableView:heightForRowAtIndexPath anymore!

2. UIVisualEffectView

UIVisualEffects brings blur and vibrancy to developers! Previously you had to rely on third-party frameworks to create blur view, but with iOS 8 it’s build in.

UIBlurEffect

This creates a blurred effect, wich can be Light, ExtraLight or Dark.

UIVibrancyEffect

If you create a UIVisualEffectView with a vibrancy effect, the content will adjust it’s color to the background so it’s always visible. Like some of the labels you see in the notificantion center.

3. UISplitViewController, Form sheets and Popvers for iPhone

Previously if you created a universal app, you had to create a Storyboard for iPad and one for iPhone if you wanted to use stuff like UISplitViewController. In iOS 8, they will work as expected in the iPhone as well.

The master controller will be displayed at first, and when you select a cell, the detail view will be pushed in. Form sheets and popovers will be displayed as modals.

4. @IBDesignable and @IBInspectable

You can now create variables and classes that are customizable in Interface Builder. Finally! If you make a variable @IBInspectable, it will show up as a property in the sidebar in Interface Builder.

If you make a class @IBDesignable, you will be able to see the changes you make in code — inside Interface Builder!

5. Adaptive views

All views should now be adaptive. That means that they should work on different sceen sizes(think RWD). It’s really easy to to in the new Interface Builder. Set up some constraints for an object for one size, change the size and then set up some new constraints for that size. I think we will see more apps than ever that will work in landscape because of this, and probably more apps that works on both iPhone and iPad.

6. Custom fonts directly in Storyboards

Need I say more?

7. Create frameworks in 5 seconds

It’s super easy to create new frameworks. Create new target, choose Cocoa touch Framework, and you’re done! You can also choose to automatically include this in your project. This will make it super easy to share code between projects. I think you have to this when you use @IBDesignable, but I haven’t tried it without a Framework yet.

8. SVG:s as images

You can import and use SVG:s in Images.xcassets, which will be rasterized and resized to the necessary sizes when you compile the project.

9. Different images for different screen sizes

In the spirit of adaptability, you can now include different images for different screen sizes. This works in a similar to how the @2x convension works.

Wrap up

This is just some of the new, cool things that I’ve found. Maybe I’ll updated this post or write a new one next week when I’ve played some more with it.

You can reach me if you want to discuss any of this on Twitter here: @filipstefansson

More articles →