Video hosted by Apple at devstreaming-cdn.apple.com

Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2012-701
$eventId
ID of event: wwdc2012
$eventContentId
ID of session without event part: 701
$eventShortId
Shortened ID of event: wwdc12
$year
Year of session: 2012
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: [2012] [Session 701] iOS Accesso...

WWDC12 • Session 701

iOS Accessories

Core OS • iOS • 46:10

iOS provides several services in which apps can interact with accessories and devices. Learn how to design accessories that deliver the best possible experience for iPhone, iPad and iPod. Learn about new wired and wireless technologies on iOS.

Speakers: Edwin Foo, Aarti Kumar, Peter Langenfeld

Unlisted on Apple Developer site

Downloads from Apple

HD Video (148.7 MB)

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

Hi everybody. My name is Edwin. As you can see behind me today we're talking about iOS accessories. So, on its own, an iPhone or any other iOS device is pretty amazing, right? You can do all these amazing things besides talking on the phone with the power of apps. But there are some things that an iPhone, due to its size and shape, is probably not that well suited for.

For instance, you probably wouldn't want to use this to open a bottle of beer. Now, I had these great slides lined up for you today to tell you how you would be able to build a beer bottle opening accessory and then buy an app to go along with it. It would be really fun. But unfortunately I was told at the last minute that there are some of you in the audience who are actually underage.

And so I regret to inform you that we can't talk about beer today, but there are lots of other things we can talk about. So, today we're going to show you first how can you make your apps work great with iOS accessories. So, we're going to talk about the external accessory framework, now playing metadata, and remote control of some accessories. We will also give you all in the audience who might be interested in how to get started developing your own accessories.

So, to give a little bit of a primer to the made for iPod or iPhone/iPad or MFI program, we'll also talk about standards-based Bluetooth interfaces that exist on iOS. And last but not least, I know a lot of you in the audience are really excited about AirPlay. So, let's get started. And just for you guys, how do you want to make your apps work great with accessories? Some of you may know already about the external accessory framework.

It's probably the most well-known interface for apps to work with accessories. And it's responsible for really great inventions like this blood pressure cuff behind me, which can communicate, take my blood pressure, communicate with the app running on the phone, and it'll probably remind me afterwards that I really need to get in shape.

Working with this framework is pretty simple. Your app has to declare which external accessory or EA protocols it supports. And of course these have to be protocols which are also supported by the accessory you're working with. Next, your app will need to handle incoming connections from that accessory so that you know the accessory is there.

Then next, open a session with the accessory. And after that, interact with the accessory. You get a read and write stream that you can use to communicate information to and from the accessory. It's entirely up to you and the accessory developer to decide what data to send over that stream. It's pretty flexible.

Now, in iOS 5, we actually introduced the ability for EA sessions to operate in the background. And that's a big deal because it now means that your app can communicate with an accessory even after it has been backgrounded and the user is using another app in the foreground.

We do have a couple of requirements though. First, your app must have a means for the user to explicitly start and stop communication with the accessory from your app's user interface. Next, your app will need to declare to iOS that your app does work with accessories in the background. And you do this via a UI background modes key in one of your plist files.

And last but not least, accessories must use different protocols for each concurrent app. What does that mean? Well, it means that if you have one accessory connected to one iOS device, it is now possible, thanks to backgrounding, for one app to run in the foreground and another app to run in the background, and both of these apps can talk to the accessory at the same time. It's a pretty neat capability. But Both of these apps and the accessory must use different EA protocols to communicate with each other. That is the one thing I really want you all to take from this slide.

And so to close out the EA framework, I'd like to remind you all that accessories can come and go at any time. Users can plug in the accessory or unplug it at really any time they choose. This doubly applies if you're working with wireless accessories over, say, Bluetooth. So make sure that your app deals gracefully with these events.

Second, don't assume that the communication between your app and the accessory is completely error-free. Again, think about sudden disconnects and reconnects, but also think about wireless accessories that might be right on the edge of range or the accessory might be close to running low on battery power, etc.

Keep security in mind. If that was your blood sugar information traveling from that accessory to that app running on the phone there, If you feel a little bit uncomfortable about that being out in the open, then chances are your customers will feel the same way. So think about that when you design the protocol between the accessory and your app.

And last but not least, work closely with the accessory developer. This is a classical intersection between hardware and software. And only close cooperation and mutual respect and understanding on both sides is going to result in truly seamless user experiences. Of course, if you are developing the accessory and developing the app yourself, then you should have no problem agreeing with yourself.

Next, let's talk about now playing metadata. Some of you may be developing apps that can play media streams from external sources like streaming music or video, media streams. You may not know that metadata about the current playing stream can be sent automatically from iOS to any connected iOS accessory that supports this feature.

A good example is this TV behind me where you can see that data about the current playing song, its artist and its album artwork are all up on screen. It isn't just TVs though. There are lots of cars out there with iPod and iPhone integration that will also happily accept and display this metadata right in the dashboard. It's pretty cool.

So now that you understand just how neat this feature is, how do you make your app take advantage of it? Well, not too hard at all. Sign up with the Now Playing Info Center and then start providing information. We heavily recommend that you provide as much information as possible off this list we have up here on the screen and provide that information as often as possible.

True, maybe the accessory you have in front of you for testing doesn't display all this metadata, but I am very certain that there is some accessory out there in the world that does. And so why not give as much information as possible to that accessory so that it can take full advantage of it? Next, we'd like to talk about remote control events.

Those same accessories I just talked to you about that display now playing metadata, many of them can also send user input events back to your app. So, good example, if you have an accessory out there that receives metadata and also has a play or pause or a next track button on it, your app can sign up to receive those events back to your app. Adding support for this is also really easy. Just call the method you see behind me on the screen and then implement an event handler for each incoming event.

These events can come from all sorts of sources, starting first and foremost with a source that isn't even an accessory. The iOS lock screen can generate these events. So that means that a user can interact with your app without having to unlock their phone or iOS device. The headphone remotes that come in the box with every single iPhone and have the little button on the tap on the cord also can generate these events.

And so can a large number of MFI accessories including lots of cars out there. Last but not least, AirPlay speaker endpoints and Bluetooth AVRCP controllers can also generate remote control events that your app can receive. So as you can see, there's really no reason why your media playback app should not be listening for and responding to these events.

So, let's switch gears. Let's say you want to make your own accessory. If so, great, we'd love to have you. What should you think of before you get started? Well, we would heavily encourage that you think about whether you need to be in the MFI program or not. And we'll talk more about that in a minute.

Second, think about what accessory interface features you want to support. And last but not least, think about whether you as an accessory developer want to also be the only party writing apps for your accessory or whether you want to make an accessory that works great with any of the apps in the app store that can work with your accessory. These three questions interplay with each other quite a bit. There are ways and accessory interfaces that Apple fully supports and encourages. and other users. There are also accessory interface features that only make sense if your accessory only intends to work with one app. Choose carefully.

Let's talk about MFI accessories. First, there's this logo behind me on the screen. The Made for iPod, iPhone and iPad badge is a mark that everyone in the world understands. They can walk into a store and if they're looking for products that work great with their iOS devices, they just look for this badge and out the door they go. They can buy with confidence and that's why we definitely encourage accessibility developers such as yourselves who want to specifically target and optimize your experiences for iOS to enroll in the program.

Signing up on the program also gives you access to lots of additional information. Of course, there's technical information and specifications and certain components and such, but there's also assistance with product certification and of course the logos and compatibility icons. And last but not least, even though it's not mentioned on this slide, you can get direct help from Apple engineers who can answer your questions. So what's in the MFI program? Well, AirPlay accessories are in the MFI program. So are AirPrint printers. The headphone and remote microphone interface that you see on hundreds of third-party headsets around the world is also part of the MFI program.

[Transcript missing]

Let's start with the most basic feature here. Everyone loves power. If you're thinking about making an accessory that docks with an iOS device, we strongly recommend that you find a way to provide power to the Apple device. All of your users and customers will appreciate that. It means that they can use your accessory without having to worry about whether their battery is going to drain in the process.

Now that said, there are some valid and very useful cases when it makes sense for an accessory to draw power from an Apple device. That blood glucose monitor I showed you earlier is a good example. But in general, we recommend that you not treat iPhone as a battery. Your customers will appreciate that because they won't have to worry.

I also want to point out to you that the dock connector supports USB audio and MIDI interfaces. Over the past year, this interface has become really popular and there are lots of new accessories coming to market and new apps all the time related to music and we're very happy to see that. Certainly GarageBand for iOS has definitely been a part of this trend as well.

This interface is supported by most recent iOS devices, starting with the iPhone 3GS. And if you're thinking of writing an app that wants to work with these accessories, well, you don't really have to think that much. Just use the Core Audio or Core MIDI frameworks. These accessories will show up as additional input or output paths. It's that simple.

New in iOS 6, we'd like to tell you all that it is now possible to build accessories that support more than two channels of audio output. And this means that, yes, you can indeed write apps or design accessories that have more than two speakers. We definitely look forward to seeing your apps and your accessories start taking advantage of this feature real soon.

Now let's switch gears to the IAP protocol. The IAP protocol is responsible for a bunch of interesting features that we feel really enhance the user experience for iOS. These are user experience features that you won't find, say, in other platforms. And that's why we really encourage accessory developers such as yourselves to make use of them and create a product which is made for iPhone or made for iPad.

For example, let's say you've built a great app to work with your accessory. Well, if your accessory requires that app to operate, how are you going to get your customer to download and install the app once they've taken it home from the store? You could put a piece of paper in the box or send them an email with a URL.

But you know what? We think we have a better way. If you follow the points that we put behind me here on the slide and your accessory informs iOS of its preferred app, then as soon as they plug it in for the first time, they get sent to the app store. Couldn't really be any simpler.

This also, by the way, applies if your app needs to launch or run in order to operate with the accessory. If your accessory identifies itself correctly to iOS, then it can launch apps, including, of course, your app that you wrote for the accessory. And the user will get an alert asking if they want to launch the app. They won't need to search through the hundreds of icons for other apps they may have installed on their device. And quite frankly, they won't even need to remember the name of your app because it just shows up. It's pretty cool.

We have a similar feature in IAP for Wi-Fi. Some of you may be building accessories that have integrated Wi-Fi modules and have written an app to communicate with the accessory of Wi-Fi. Well, I'm sure all of us in the audience can identify with having to get a newly purchased Wi-Fi peripheral on the network for the first time. We think we have a better way to do this.

If you implement IAP Wi-Fi login sharing, then your user manual for your accessory is three steps. Step 1: Connect. Step 2: Push the Setup button on your accessory. And Step 3: Say Yes. Your accessory will then receive the network information and password for that Wi-Fi network that the iOS device is currently connected to on the spot. Your accessory can go online and you're off and running. This mechanism for the Wi-Fi setup, by the way, is heavily recommended if you're thinking about building AirPlay speakers.

A similar approach exists for Bluetooth. Let's say you've built an accessory that also has a Bluetooth module, say to act as a headset or a speaker. You don't necessarily need to send them to the Settings preference pane. Instead, ask them to connect their accessory to the device once, and if your accessory is set up to inform iOS of the Bluetooth MAC addresses that are part of that accessory, then iOS will start the pairing process automatically if those components have not been previously paired.

I'd also like to highlight that there are several features in IAP which are specifically targeted at accessibility. We at Apple care a lot about accessibility. We want our products and our devices to be accessible to all users. And to that end, we have also created several accessory interface features to help those users in particular.

With technologies like VoiceOver, our screen reader for the blind, as well as Assistive Touch for users that have difficulty using more than one finger to operate iOS, accessories can use IAP to augment those two features and actually give users who have difficulty touching the screen at all the ability to use an iOS device. It's pretty neat.

And in iOS 6, we have added support for made-for-iPhone hearing aids. In addition to all the other great features like FaceTime that we have for the hearing impaired. Made for iPhone hearing aids will be coming from top manufacturers around the world in the not so distant future. And with them will come the ability to grant hearing impaired users the ability to listen to high quality wireless audio streaming direct from their iOS device to the hearing aids.

And not only that, we've baked in the ability for these hearing aids to be adjusted and controlled straight from iOS, so you can change the volume and switch between different programs on the spot. You will no longer need to place your phone in the best position in order to hear someone talking on the phone correctly. And you will not need to wear a dongle around your neck to bridge between the hearing aids and your phone.

Now in the short period of time we have here today, I can't possibly go over all of the really cool features that are part of the IAP protocol and of the MFI program in general. But hopefully this brief overview has given you an idea of what's there. We hope that you get interested.

We have more information at the end of the session on how to get started. And we definitely look forward to seeing you be part of the program. At this time, I'd like to hand over the podium to my colleague, Aaarti, who will also talk about the standard Bluetooth interfaces available for accessories.

Hello, everybody. How is everybody doing? Great? My name is Aaarti Kumar. I'm part of Bluetooth Engineering team for iOS platform. And today, I'm going to talk about exciting new Bluetooth features that we have added as part of iOS 6. Here is a brief overview of our presentation. We'll start with Message Access Profile and then talk about Siri integration support. I'll briefly go over updates to ATDP and AVRCP profile implementation and then provide an update about Bluetooth Low Energy features.

And lastly, I'm going to talk about in-app accessory connection support that we have added. So let's get started with Message Access Profile. What is Message Access Profile? Message Access Profile is part of standard Bluetooth definition that defines procedures and features that can be used to exchange message objects between two devices.

and using Message Access Profile, we have added support to send iOS-based app notifications like iMessages, even reminders from an iOS device to your accessory. Our implementation is based on Notification Center, so any active iOS app notifications like event reminders, iMessage, email alerts, can now be accessed via Accessory.

These alerts and notifications are based on message object. They are part of B message format and will always have name and full name included with it. Phone number field may not be included for every message. For example, something like iMessage will not have phone number field included with it. We also do not support sending message reply from the accessory yet. So here it is, brand new profile in iOS 6, Message Access Profile, with which accessories can now get events and notifications from their phone.

Next, I'm going to talk about Siri integration. All our customers love Siri, and in iOS 6, we have enhanced Siri support via Bluetooth Link. We have done this using hands-free profile and added various new custom AD commands to get Siri status information and availability. We have also improved voice recognition performance over Bluetooth Link.

and we have added support for what we call for as Scott mentioned, Eyes Free Mode. So what is Eyes Free Mode? Siri Eyes Free Mode provides capability for an accessory to limit Siri responses that have display information. A Bluetooth accessory can now enable or disable Siri responses using this mode.

With these responses an accessory can get Siri status information like if Siri is available and is active. It can also enable or disable Siri responses using Eyes Free Mode and then also initiate a Siri session from my accessory. With this accessory also has an option of using high quality wideband speech link for better audio quality and we highly highly recommend everyone of you to use that.

So this is Siri integration. I hope you all are as excited about it as we are. Now let's talk about HTTP. In iOS 6 one of our main focuses was to improve audio quality performance. Over Bluetooth link and with this in mind we have added support for two new codecs.

The first codec is AACLC. AACLC is part of standard A2DP profile specification and we now render it at 256 kilobits per second compared to what we have currently that is 128 kilobits per second. This means that if you have an accessory that supports AACLC codec on its device, it will now be rendering at a higher audio quality rate of 256 kilobits per second.

The second codec that we have added is AAC Enhanced Low Delay Codec. So this codec, in addition to having a higher audio quality, also supports very low latency, very low encoder and decoder latency that improves end-to-end latency in the system. Why this is important? This is important for various kinds of real-time apps like game applications or GarageBand-like apps. And we think that will be a really pleasant experience for users to use this codec.

Keeping latency in mind, we have also added a capability for an accessory to report its playback latency. We will use this information that is provided by an accessory and plug it into our system to get better audio-video synchronization. So that's A2DP. Let's talk about AVRCP. In iOS 6, we have added support for AVRCP media browsing.

This provides an user to browse through its music library, navigate through playlists, all on an accessory itself. It can also search for audio content that it's looking for and start its media playback. AVRCP Media Browsing We also have support for extensive volume control and reporting commands that can be exchanged between an accessory and iOS device to keep volume level in sync.

Next, I'm going to talk briefly about Bluetooth Low Energy. In iOS 6, we had our first implementation of Bluetooth Low Energy feature that had support for central role. This provided an app to communicate with the remote devices using a low energy protocol. And now in iOS 6, we have added support for peripheral role and an ability for apps to host services.

What does it mean? It means apps can now have iOS to iOS communication and also have iOS to Mac communication. Apps can also host multiple services and can have multiple inbound connections. We have follow-ups dedicated detailed session on low energy features and core Bluetooth framework. And I would highly recommend everyone for every one of you to attend that. So that's low energy.

The last feature I'm going to talk about is an app accessory connection. We had a lot of requests from app and accessory makers to have a capability to find and connect to your devices from an app itself. And so in iOS 6, we have enabled this support. As you can see, the apps can now use the new APIs that are added as part of Accessory Framework to find the devices and then connect to it from the app itself. In addition to that, we have also added capability to wake known devices from an app itself. So that's an app accessory connection.

Let's take a glance at Bluetooth specification-wise where we stand. So in iOS 5, we had support for all these profiles. And now in iOS 6, in addition to this, we have added support for message access profile at version 1.1, Bluetooth Low Energy Service Manager, which is part of Core Specification 4.0, and then Bluetooth Low Energy Peripheral Role, which is also part of Core Specification 4.0.

So this is it. We are all very excited about all the new features that we have added as part of iOS 6 and would love to see all these included in your products. Here is a link to our accessory guideline document that talks about these features that we talked about and has much more information. With this, I would now like to call Peter Langefeld to talk about our AirPlay accessories. Thank you all.

Good morning. Welcome, everyone, once again to WWDC 2012. I'm Peter Langenfeld and I'm here today to talk to you guys about AirPlay Accessories. Now, hopefully everybody's excited about AirPlay Accessories, but if you're confused or don't quite remember what AirPlay is, let me refresh your memory a little bit.

AirPlay is a collection of audio, video, photo and mirroring. It's a great new feature we introduced in iOS 5.0 streaming technologies that's based around Wi-Fi. So, what am I going to focus on today? Well, mainly I'm going to talk about audio. The reason for that is that audio is the feature that third parties can access, that Apple's provided you an interface with through the MFI program, in order to make your accessory AirPlay compatible and make it such that any AirPlay source can see your accessory just like any Apple accessory and stream the audio directly to it.

So, we've talked about a lot of wireless technologies. We've talked about a lot of wired technologies. What are the advantages of AirPlay? Why would you want to choose AirPlay over something else? Let me talk you through that a little bit. First and foremost, I think the key to AirPlay is that it's Wi-Fi based. It's standards based. So, the infrastructure you already have in your home, the infrastructure that users in general already have in their home, their Wi-Fi router, etc., just works.

You don't have to go out and buy anything special if you want to set up a nice wireless audio streaming session in your home. You just have to buy one AirPlay accessory, start enjoying AirPlay, and as soon as you get that one first taste, I'm sure you'll buy many other AirPlay accessories. Next up is that you have a whole home audio range. Anywhere that that wireless network, that Wi-Fi network can reach, your AirPlay accessory can be placed, and you can have wireless audio in that location.

That also means that I don't have to be tied to a specific range of that accessory. So, if I decide to listen to music in my bedroom, for example, and then I decide, "Oh, wait, I've got to go pick up the laundry downstairs," as long as I have Wi-Fi connection during that, I can walk away, grab the laundry, and then go to bed. I can walk away, grab the laundry, come back with no interruption of the audio stream as it's going on.

In addition to that, it's a multi-user experience. So anyone that's on your Wi-Fi network to begin with also has access to all of the AirPlay endpoints on that Wi-Fi network. If you have guests over, as long as they have access to your network, again, they can just decide to stream something to your device without having to specifically pair with it, without having to do any pre-thought, etc. So as long as you're sitting in your home, have Wi-Fi connection, can enjoy the high-speed internet connection, you can also enjoy streaming your audio to anywhere.

Next up is synchronous audio playback. As I mentioned, once you get a first AirPlay accessory, many people decide to go and get a second AirPlay accessory. From iTunes, you can decide to stream to all of those AirPlay accessories in parallel. So I can have a whole house party. I can enjoy music in my bedroom and music in my laundry room as I walk through the home. They're all synchronized. I don't get echo effects through the house.

We'll talk through a little bit of phasing concerns that you should have as an accessory manufacturer. This is a great whole home audio experience that I can enjoy either targeted to a direct single endpoint or I can decide to spread out through my entire house so everyone there can enjoy it.

The final thing that I think sets AirPlay apart from many of the other streaming technologies out there is that we use the ALAC or the Apple Lossless Audio Codec for the actual stream itself. So what that means is you can take full advantage of whatever high-quality audio you're already enjoying on your device. We don't resample, we don't compress. You get the full effect anywhere you are. And that goes all the way up to CD-quality sound of 44.1 16-bit.

Okay, so that's great. Those are some of the advantages of using AirPlay, but where can I use AirPlay from? How do I actually access and start streaming things as a user? We've made it really easy for them these days. Pretty much anywhere in terms of the Apple ecosystem that you can enjoy your audio and you can get to your audio library, including streaming applications, you can now send that audio data out to the AirPlay accessory itself.

So from iOS, what does that mean? We have both mirroring and system audio or video output. Again, for accessories, that's limited to audio, but it's full system audio. So you get all apps, you get all of your iTunes match content, and you get all of your web content. So anything you can do on your iOS device, you can take the audio and put it out to a higher quality speaker.

Now, that's not always ideal. Obviously, we make the UI really easy so you can switch back and forth if you're portable and want to walk around the house and just listen to it on your headphones or your iOS device, that's great. You can do that. But as soon as you want to kind of broaden it out, let more people enjoy it, enjoy a different seating environment, a different level of quality, you can do that with AirPlay as well.

Next up is iTunes. Both Mac and PC. You can stream your entire music library, all of your radio stations, all of your podcasts, all of your iTunes U content directly to your AirPlay endpoints. So you can enjoy really everything that's there and available to you through iTunes through AirPlay.

And finally, as was mentioned yesterday by Craig, we now, for Mountain Lion, also allow the same great mirroring and system audio output that we allowed from iOS last year. So again, that means all apps, including iTunes match, including web content, anything that you can get from your mountain lion, you can get from iTunes. So basically, anything that you can get from your Mac, you can now enjoy on an AirPlay audio endpoint.

Here's what that looks like since that's the new great feature. It's basically just from your sound settings. You select AirPlay audio endpoints just like you select any other audio output device. You go to your settings. You select it here. We basically just use the friendly name. The friendly name is the name that the customer decides for that AirPlay endpoint. So in this case, there's an Apple TV and a Zeppelin Air on the network. But again, it's friendly. It's easy. You don't have to think through things. It's just there as an audio output, and you're ready to go. Okay.

So hopefully you guys are excited. Hopefully you're excited to start going home and using AirPlay if you haven't, going out and buying an AirPlay accessory if you haven't. And especially since you're here as developers, hopefully you're excited to develop products that utilize AirPlay. Now, what do you have to think about when you talk about developing an AirPlay product? First and foremost is, you know, customer experience is getting on the network.

I come home, I unbox my device, it's bright, it's shiny, it's great. I put it down, I plug it in. Oh wait, I need to get on that Wi-Fi network. How do I do that? As Edwin mentioned, there's a couple ways to do this. There's custom apps, there's Wi-Fi login sharing, and there's acting as an access point.

Let me touch a little bit on each of those. Custom apps are a great way to go because obviously you as developers know your customer best. If someone was attracted to your product in the first place, they obviously like the way you think as a company, they like your brand.

And you can walk them through the way to actually set up that AirPlay. And you can walk them through the way to actually set up that AirPlay endpoint through an app. Obviously, if they plug into your device, as Edwin mentioned, they get a prompt. You can go download the app without having to think about where in the store to go, without having to search anything. And then that app can act essentially as the quick start guide or the manual to walk them through the whole process of getting onto the network.

Pretty good experience. Next up is Wi-Fi login sharing. If you don't want to take the time to develop an application, if you don't think there's a branded reason or an enhancement that developing an app will really give you, you can use the Wi-Fi login sharing feature that Edwin showed. Again, you plug in the device, they press the setup button on the back, and automatically the iPhone prompts you and asks you, "Do you want to allow this accessory to join your network?" Simple as that.

Finally, if you don't want to do any of those, you can act as a soft access point. Now, we require you to act as a soft access point, not as an ad hoc network. That's to make sure that you have enhanced compatibility with all the other devices out there, including Macs and PCs that have a couple of quirks to them occasionally.

A couple of things you want to remember there, though. Make sure you support an HTTP Bonjour record and make sure you're compatible with Safari. This is especially important if you're using an iOS device because obviously most people will be setting up the product from an iOS device. And that brings up that last bullet point.

Make sure your web pages are compatible with iOS browsing. So make sure they don't have to zoom and scroll and do weird things to get to the network setting or get to the naming convention, etc. Very important as far as user satisfaction with your product. right out of the box.

Next up, your customers are really going to notice the wireless performance. So what have we done to help you there? Well, we've introduced Wireless Multimedia, WMM. We require everyone to be WMM compliant now as far as an AirPlay product is concerned, AirPlay accessory. And WMM is a quality of service feature that's available on all 802.11n access points.

What does that really mean? Well, what quality of service does is make sure that the audio streaming data is ranked above any other random data that's going on your network. It ensures that you have less dropouts, ensures that you have a better quality of service at further points on your network.

So if you decide to take your AirPlay accessory and put it on the very edge of your network, it'll enhance that kind of -- the performance there on the edge. And that's because you won't drop out that audio as much and you'll get a better overall experience with your product in terms of making sure you always hear continuous audio streaming even though your network is loaded up in other ways. The next thing you as accessory manufacturers really have to be concerned about is antenna placement and connection.

What you really want to make sure is you eliminate dead spots in your product. We do some compliance testing when we bring your product in to make sure consumers have a great experience when they bring it home. And the key here is that wireless is a different beast.

It's a different technology. It's a different beast than I think a lot of you are probably used to if you've been dealing with wired accessories in that signal -- RF signal can come in from any angle. It'll bounce off the walls. It'll bounce off the ceiling. It'll bounce off the floor.

So even if you're thinking about putting your product up against a wall and you figure, oh, I can put a giant dead spot in the back of my product, it's not going to be a great experience for your user because there is RF signal that will be coming in to the back of that product. So your goal should really be to have no dead spots in your product.

If you're looking at an azimuth plot, make sure you try and do a perfect circle around in the Z axis. Make sure you can receive from all angles. And that will really enhance the experience of your user. It will really help them to get a better wireless experience with your product no matter where they decide to put it when they have that Wi-Fi connection.

The other thing to note is make sure you take manufacturing into consideration. We see a lot of people that do great antenna placement, do great antenna design, but then they route their cables in hard 90-degree angles and they have really complicated routes and connections for the manufacturers to have to do. That all degrades your wireless signal.

Any bending of the cables, any strange connections you might have definitely takes away from the end product performance. So make sure you do nice, calm curves. Make sure it's really easy to get that connector fully seated in your product. Make sure it's just easy to make sure all of your product as it goes out the door from the manufacturer has the highest quality available.

Finally, make sure you properly shield your module. That doesn't just mean shielding the actual wireless parts, but also shield any other noisy components. Make sure you have a good amount of monist in your system. The worst thing you can do is to spend all this time designing your product, making sure you have great performance, and then have the noise of all your other electronics when they're turned on interfere with your wireless connection.

You've just basically undone all the great hard work you just put in. So make sure you take some readings, do some sensing inside the box, and if you're worried about it, just put a nice metal shield over the components that may be creating noise in the frequency ranges you're concerned about.

Also remember that just because the peak frequency is low, it doesn't mean you're going to get a lot of noise. The peak frequency of that particular section of electronics may not be in the Wi-Fi band. It can still have resonances in the Wi-Fi band. So be very careful with this and don't just assume that you're good to go without doing some tests.

Next up I want to talk about kind of the next level of consumer experience and enjoyment is interruption behavior. We here at Apple strongly believe in the fact that explicit user interaction should always take priority. What does that mean? It's a little confusing. What we mean by that is that whatever the user intends to do should just happen without them having to think about it or think through a specific set of steps they need to worry about. Let me give you an example.

If you have a tape deck and I'm listening to a tape deck through my accessory and I'm enjoying my 1980s mix tape and all of a sudden I or someone else in the home is like, "Oh wait, there's this great YouTube clip that I want you to hear the audio from." I don't want to have to think as a user that, oh, I have to stop the tape deck, I have to walk over to my AirPlay accessory, I have to switch the input, and then I can go to my iOS accessory or my Mac or iTunes and start changing things and selecting the AirPlay endpoint to listen to music.

What I want to happen is, as soon as someone thinks about the fact, oh, I want to listen to an AirPlay stream right now, they start the AirPlay stream and it just works. They hear that instead of the tape deck. That's the ideal. That's explicit user interaction and there's no thought involved, they just enjoy the product as it was meant to be enjoyed.

You should make sure for the device as a whole, in terms of AirPlay accessories, that the device as a whole has this concept integrated. So if you're on a different input that's not AirPlay and you notice an AirPlay stream coming in, someone did that actively. Nobody's doing it automatically here. We as Apple don't decide to just send you random AirPlay streams. Someone has commanded that they want an AirPlay stream. So you as an accessory manufacturer should appreciate that fact and switch over to the AirPlay stream to let them get exactly what they want.

Now, we've taken our own advice and we've made sure that AirPlay streams themselves can interrupt other AirPlay streams. So now if I'm listening to one AirPlay stream and my friend next to me says, oh, wait, you've got to hear this instead, I no longer have to worry about stopping it, disconnecting from the AirPlay accessory and letting the next person connect to it and play, et cetera. We handle it all for you. They just press play. It pauses the first stream. It disconnects. It leaves everything in a clean state. No worries for any of the developers involved. Okay.

The final thing I want to talk to you guys about today is room-to-room synchronization. I mentioned that great feature where you get whole home audio, you don't get any echoes, you don't get any sort of random effects in the home as you're walking from room to room. There's a little piece of this that's not quite as clear, so let me walk you through it a little bit. The key here is to really let the user appreciate where it is they put the speaker. So if they decide to place the speaker here in the center of the stage, there's a reason for that. They wanted to hear music from the center of the stage.

If you have any phase delay, which you can get if you put a DSP into your system or you have different electronics, etc., you can be out of phase just slightly. We allow up to 5 milliseconds. What does that mean? That means up to 5 feet out of phase. So a radius of 5 feet from where they place that speaker might be where the source of the audio is. That's pretty distracting in general. If I place the speaker in a specific place, I don't want to hear it 5 feet shifted off to the left.

The key here is that we now have a new API that allows you to adjust this phase alignment. You can adjust it forward or back. You can tune it in exactly to match your electronics. This is especially important if you decide to do a DSP because a DSP can introduce quite a bit of delay into your audio path.

But it's up to you as developers to make sure you tune that API and you tune your product as close to zero milliseconds as you can. So your motivation is that what you give your users is that they can hear audio from exactly where they placed the speaker, which was their intent. Again, this whole idea that the intent of the user is king.

We think that's very important. We think this is going to really improve the user's experience and really give them a much better whole home audio experience for those people that decide to buy multiple AirPlay accessories. And I think it's in everyone's best interest in this room that everybody buys as many AirPlay accessories as possible because they have the variety and the enjoyment of AirPlay in every room of their home.

Okay, so, AirPlay accessories in general. Let me wrap up. We have a whole range of products that are already available on the market. Simple speakers, audio/video receivers, very complicated things, very niche products. That said, there's room for great expansion. It's a whole home audio experience by intent. So, ideally, you'll have a whole range of price points, a whole range of quality, a whole range of use cases where people want to buy these products and we definitely aren't flooded. So, please consider putting AirPlay into your product because we think it's a great feature. Also, take note of the fact it's an MFI feature. So, once you decide to put MFI into your product, you get AirPlay as well.

So, you can decide to put AirPlay into your product, take advantage of MFI, put MFI in your product, take advantage of AirPlay, etc. It's a great thing that we think you should all look into and consider. Next, make sure you design and you innovate your product. Make sure you have your customer in mind and think about exactly what they want.

Again, there's lots of products in the space, so figure out how to differentiate yourself. How to make sure that you're not just a product that's going to be sold to you. So, if you're a product that's going to be sold to you, you're going to have to think about what you're going to be selling. How to differentiate yourself. How to make sure that your brand stands out and that people want to use your brand and continue to use your brand in the rest of their home.

It's not just a one-trick pony, for example, if, you know, one speaker to fit them all. Everybody has different size constraints. Everybody has different budgetary constraints. Everybody has different desires in their audio quality. So, pay attention to that. And hopefully, you guys will figure out a way to innovate and keep quality high. Okay.

Obviously, we went through a bunch of information here. We've got some great evangelists that would love to hear from you guys. We'd love to walk you through your questions, talk to you, etc. Here they are. Steven, Chicken, Craig, Keithley. Developer.apple.com is your friend. Make sure you go there.

That's the great place, kind of the front door to all the information about, be it standard Bluetooth profiles that we support as Apple, or specific kind of custom protocols like AirPlay and MFI type things. And also realize that if you're designing accessories, we want you to report bugs the same way you report bugs on our software. So, please use the bugreport.apple.com tool. And please use the forums. Discuss this amongst yourselves. You can obviously help yourselves quite a bit.

We've got some related sessions. If anything that already talked about is of interest to you guys, we've got a core Bluetooth session, and we've got an advanced core Bluetooth session. We'll talk about Bluetooth Low Energy. We'll talk about all the great features in iOS 6 and a lot of the things we've supported in the past to refresh your memories.

To wrap up in general, we hope you're really excited about developing accessories because we think there's a great opportunity for you to develop accessories. There's a great need for accessories to add on to the experience of iOS devices, Mac devices. Our entire ecosystem is key here. And that is really one of the things that keeps our customers happy is that you guys are developing great accessories to make sure you can enjoy iOS devices in your entire lifestyle, not just in the palm of your hand.

MFI offers you some great custom protocols, some great optimized experiences for the iOS platforms, both wired and wireless. Anything custom falls into MFI. Our Bluetooth offerings are obviously standards-based. iOS 6 is expanding on our support. We've had great support there in the past. And AirPlay offers you a high-quality whole-home audio experience, which we think your customers will love. So go out and develop. Thanks a lot, guys.