What’s new in Xcode 7
There are so many new things to talk about in Xcode 7, I have chosen a few that I feel are notable to every day usage by iOS and OS X developers.
New Developer Program
First the big thing to mention, everybody can now test on their devices not just people on the Apple Developer Program. All you need is an Apple ID to download Xcode, plugin your device and deploy to any platform.
If you do have a paid Apple Developer Membership then you now pay one fee to access all the programs, meaning iOS developers now get access to OS X and vice versa. There are still reasons to be a paid member by the way including the newly revamped forums.
Whilst not strictly Xcode related Apple did mention that 64bit application submission will be mandatory starting with iOS 9, currently you are required to supply a 32 and 64bit version.
The Apple Watch simulator is a full simulation of the watchOS and can run along side the standard iPhone/Pad simulator so you can debug both platforms at the same time and even the connection between the watch and iPhone, truly a big step forward. You also have the ability to layout watch screen designs and complications since you can now also create 3rd party complications for watchOS 2.
Instruments has a new tool that can show power usage so you can monitor how your app will effect battery and power usage over time, something everyone should be thinking about especially for watchOS apps.
There is a Swift 2 migration tool that will kick in anytime you open a Swift 1.x project, I have tried it a few times and it works well. Not only does it migrate the code but also shows you what it is about to change and explain why so it makes for a great Swift 2 learning tool.
Asset management now supports the use of tags and these are important especially if you plan to use the new on demand content optimization system as you use the tags to ‘bundle’ assets together into packages for download as needed (and removal).
New Optimization Systems
Which delivers to a device only the parts of an application needed for that device, for example 3x and 2x assets would be downloaded on the supporting devices. This reduces the file size for download and storage whilst providing optimized code for the device.
When you archive your app for submission to the App Store, Xcode will compile your app into an intermediate representation. The App Store will then compile the bitcode down into the 64 or 32 bit executables as necessary.
On Demand Content
This system is designed to deliver assets as needed rather than requiring the storage of an entire application at once. For example, a game downloads level 1 which you complete so it then downloads level 2. Also the reverse happens and in this scenario you could mark level 1 for deletion from the system to recover space.
On Demand Content can be simulated whilst testing on a device, when you have your device connected to a Mac the Mac will stream the content to the device simulating the download, great for checking any potential network issues causing bad scenarios for your apps.
This is a great new addition, your application UI can now be tested automatically, the best way to describe this is you interact with your application and Xcode records those actions in the code equivalent of a video which you then play back and test the UI, this is a big deal and everyone should try it out. Much more to come on this for sure.
Reports generated by the UI Testing will include screenshots so you can see what was happening at that time and how it looked.
The UI Testing works for both Swift and Objective-C code, a great job from Apple on this one.
Has this happened to you? You find yourself staring at a huge storyboard covered with view controller layouts wishing you could focus only on the ones you want to work on?
Now you can! Storyboards can be grouped together and put in a separate storyboard file with a main one linking to them. This is a great addition and sure to help you focus on what you care about as you layout designs.
Storyboards will now show more live rendering of effects like blur, this gives a greater understanding of how visual effects will appear in your applications.
Code Coverage for testing
There is a new addition to your code view that can show when and where your code was called and will even show you code that never gets called … because we have all written functions that get forgotten and left behind to just clutter up the beauty of a clean viewController right?
There is now the ability to add rich content comments rather than //just text notes.
Results are shown inline right there with your code instead of having it appear some what disassociated on the right side, great for those big screens we all love.
There is a new feature called ‘Pages’ that allows you to create content over multiple pages. The best way I can think to describe it is to think of an interactive manual where each page could be a separate collection of related code testing out an idea isolated from the rest. This is perfect for those teaching to others!
These are just a few of the major highlights, greater deep dives to come in the future for us all I am sure, I just wanted to get you excited about some of the new features to help us make even better and reliable apps.
You can Download Xcode 7 Beta from Apple