---
title: WWDC2000 Session 145
framework: wwdc
role: article
path: wwdc/wwdc2000-145
---

# WWDC2000 Session 145

## Transcript

Kind: captions Language: en ladies and gentlemen please welcome the user experience technology manager for Mac os10 john de Lindsay seems like I've been in this hall all day all right well welcome to session 145 Apple help apples really embracing a lot of open standards for mac OS 10 and help is is no different Apple help is quite clearly going to be HTML based and this session is talking about that both from a developer engineering point of view how to implement Apple help through ap is that exists as well as helping you author the HTML helps figuring out what to do is disability to make it to make it really nice and I just want to encourage you as developers to deliver really good help it's very important from the user experience point of view and users if you look at a cystic statistics if who's buying Macintoshes now stats that Steve showed in the keynote in terms of imac buyers there's a large percentage of users that are new to computers new to the Macintosh and your ability to live a really comprehensive help and interactive help is if key to their success in the Macintosh and their enjoyment of their machine so to talk about Apple help i'd like to welcome on stage Gordon Meyer who is part of the human interface team at Apple thanks John thank you hello everyone thanks for coming I'm wondering how many of you were in this session on Apple help last year could you raise your hand for me ok great and how many of you are responsible for writing and you know authoring health systems for your products all right just one more how many of you are responsible for implementing health systems that is getting your application to talk to your help ok great we have good information for everyone before we begin I should probably warn you about something though I went to a public speaking class right to prepare and they said that I should practice this presentation while I was doing other things so I decided to practice it while I was driving my car worked pretty well people look to kind of funny you're talking to yourself but there's a side effect I didn't really anticipate so if at any point I should stop and suddenly ill get out of my way don't take it personally and as I can do it your driving record this is the habit well it lets you drive a blue minivan with you top place and I owe you an apology anyway so let's get started Apple's help there's a lot of information to cover but let's start by going back in time just a little bit to system 75 at that point the health system for the Macintosh with Apple guide life little system small floating panels took users through tasks step by step by step worked great for novice users wasn't so great for intermediate advanced users but it really wasn't designed for them it was also expensive and hard to produce so with system 85 apple introduced apple health which is we're going to talk about today the system is much more flexible and a lot easy to offer for and we're gonna give you all the details kind of soup soup to nuts of Apple help all the features how to author it but let me cut to the bottom line first because i'm kind of a bottom-line person and i know some of you are too so why should you adopt appal help well if you're an author you'll be pleased to hear that it's very easy to create and use a standard HTML 3.2 you can use any off-the-shelf authoring tool you like dreamweaver go live ed at it simple text even something on another platform if you're an implementer is equally easy to implement we have a nice set of AP is very simple yes flexible and i'm really proud to announce today really pleased to announce today that apple health is the health system for mac OS 10 if you deploy an apple help you can use your help across carbon cocoa and classic environment one health system across everything so that's the bottom line but we're going to cover some other stuff as I said we're going to talk about the help viewer which is kind of the heart of Apple he'll talk about its features and give a little demonstration we'll also talk about how to create an apple help book you'll see it that's very easily do then we'll cover the Apple help api's which are how you get your application talking to the system and as a bonus we have free Ginsu knives for everyone no I'm kidding of course of course I'm kidding what we have is something much better the HTML rendering library this is a piece of code that you could use in your application to display HTML data and the fan club from the rendering library is pregnant the help viewer so as I said to help you were as the heart of the apple health system what it is it's a lightweight HTML display application render standard HTML 3.2 without forms Java scripts or plugin but it does display a QuickTime media we don't use the quicktime plugin to do that we do it natively and it can handle any kind of QuickTime data you want to throw at it movies still sound VR interactive streaming I've been attending some of the QuickTime sessions across the street this week and there's a lot of great things that can be implemented in health systems to make some really unique help and you can use all of that in the health viewer so you might be thinking is this is the first you've heard of Apple help you might be wondering will key Gordon if its HTML based and it can display movies round-eyed issues a web browser well you could but you shouldn't apple health is the hell platform for macula scan your users will be expecting your help to appear there additionally web browsers these big monster applications lots of you I lots of memory to help viewer is an optimized application specifically for displaying help and because we know that's how it's going to be used we've added some unique features to it to support that for example it incorporated some Sherlock technology to allow you to search all of your help really quick returns a nice relevance ranked list of results for your users we've also extended HTML to allow you to launch applescript app Apple script automations so you can do things automatically we'll talk about that some more and with this version of Apple help we have the ability to pull help content from the internet that way you can make sure users are getting the latest information and you can continue to develop and enhance your help and still stay within to help your environment so that's the high-level view but it's time to take a look at it goes you know pictures speak louder than words so to help me out with a demo I want to enter used Jessica Khan jessica is a lead engineer for Apple help okay well jessica is going to drive while I talk and this saves me from the potential public embarrassment of having to point click and talk all at the same time so here you see the help you are rendering HTML nicely it's a native mac OS application has been carbonized so it has the aqua appearance you see some lists with that you can click on you see graphic there it's being displayed by quick time and across the top of the screen is our interface are very simple interface for access from searching you can type in a word there and word or phrase or get some results why don't we look for something on Oh firewire will help you or quickly searches all of Mac help there's about 150 200 pages at this point and finds the most relevant topics based on what we typed in let's take a look at one of those so this particular page of the quicktime movie embedded on it and they began to play when the page was opened they said we don't use the quicktime plugin but we do respect all of the embed parameters you'd expect an HTML so this one was set to auto play you can also show the controller or not show the controller whatever it is you want to do let's look now for something on internet settings great and again we've searched through all of Mac help it found the most relevant information when we go into one of those and we want to show you another feature of apple health which is the Apple script automations now this page is talking about the Preferences application because that's how you set your internet preferences on Mac OS 10 and that blue button is an image map and that has an href that launches an applescript let me go ahead and check that out so when Jessica clicks that it runs the Apple script which opens preferences application for the user it's a very simple example of using applescript to automate tasks of the users let's go back to the health again and why don't we check out the health center now the health center is a list of apple health books that are installed on the system and those that are available for the particular user that jessica is logged in on in this case you see we have mac help and quicktime help or both available and when you convert your book to Apple help format it'll show up in this list too we've got plenty of room for you at the bottom we have something new it's called the developer center we just added this one we check that out this is on DP for the CD you all got and this is a complete documentation you need to develop on Mac os10 our tech clubs group has done a great job of converting their stuff over there continuing to work on it and improve it and why we just take a quick look and browse through here and of course because this is an apple help format was completely searchable whatever you want to find why don't we go back yeah let's check out quicktime help this is kind of a special book now this is a de mac OS 9 book from its from mac OS 9 quicktime help we've copied it over to mac OS 10 works fine that's fully supported but this is an interesting example because there's very little of this book that actually exists from the hard disk most of it is on the internet now we can search it we can cruise through the table of contents a little bit here but when we really want to look at a page the help viewers going to retrieve that page for us from the internet once the internet wakes up there we go great so you thought happening there was URL access was coming to the front it's not displaying its progress bar for us right now and we decided to leave that in because we know you're a skeptical crowd and otherwise we just seemed like there was a delay or wouldn't be able to tell it was really happening but that page has been pulled from one of the apples Internet servers across the internet and brought down for the user that's one of the new features we've added it was added in Mac OS 9 and something we're going to talk about a little bit later some more why don't we go back to the health center and check out smack help again and let's look for something to do with sound what I want to show is how to help you were searched his content so we're in Mac help and we're looking for something to do with sound and we found some various topics related to that but of course quicktime help is assault here too and we know that that has content about playing sound of course so we could go back to quicktime help and search but it's much easier to use this link at the bottom of the page and it says search all help when we do that we get hits from search time and from quicktime and from mac help all at the same time we've just instantly searched all of the help that's available in the help center and when your books installed in the health center we'd be searching your book too thanks Jeff so that's the help viewer what do you think okay we go back to the slide I want to talk a little bit more about some of those features you saw the first one is integrating integrating internet based content the QuickTime help book was an example of this now this is something new that we've added and it's a really powerful feature if something that Apple is going to be taking great advantage of in Mac OS 10 mac OS 10 is a great internet client and as such is going to have partially based internet help now i don't really have to tell you you guys are all developers but you think about your development cycle for a program right the programs under development at some point the help team comes in and starts writing content and help team has to finish well maybe here and this is where your application ships right there's a gap of time here before between the help freezing and the application being done and things change during that gap of time as much as we wish they didn't write teachers are removed because they're not working right bugs are fixed you know maybe somebody from marketing decides that the find function should be named after a fictional detective right it could happen believe me and your help is wrong and nobody has even seen it yet it's really a bummer you know so my wife I gotta tell you so my wife tells me that the reason i am i'm losing my hair is that i'm getting older I swear it's last minute changes if I could just get like workman's comp to pay for Rogaine at the offset anyway so this is a great feature it's good for you because you can continue to develop and improve your help over time after where you would normally freeze it and even after the product is shipped you can continue to enhance it because your users automatically get the latest content from your server it's also good for customers right in this internet age people want the latest up-to-date information that's why we go to the web in the first place and this make sure they can get the latest help all within the help your environment so let's talk about how this works and I hope viewer always look for content locally that is that's where it loads it's filed so how do we get it to talk to the Internet well you saw URL access that's part of our trick but let's take a closer look at how that works in the simplest scenario the help viewer wants to open a page it looks in your applications help folder it finds the page is looking for so it opens it but what if the page isn't there well next the help viewer will look in the help cash the help cache contains help files that were recently downloaded from the internet if the page that help you was looking for is in the help cash then it loads it from there if it's not in the help cash then it asks URL access to go to a remote internet mirror retrieve the pages looking for URL excess brings that page and push the in the help cash from which to help viewer loads it so what's happening behind the scenes is the help viewers pre appending the location is looking for at each stage again in the local situation is looking for my appt help / page HTML it doesn't find it there it Priya pins the location of the help cash still looking for page dot HTML if it doesn't find it there then it it turns it into a URL and priya pans the location where you said your internet content is stored you tell us where the internet content is stored when you index the file and we're going to cover that that's what it passes off to you are Alexis for it to retrieve for us now once the page is putting the help cash it stays there for three days this allows you to go back and look at it again right cuz they just looked at it they might want to go back and review it and I don't have to go through this retrieval process again but it doesn't stick around so long that it becomes stale again you specify the remote location when you index the file so you do need to know in advance before you ship the product where your files are going to be and you can't put everything on the internet you have to have the search index file locally because that's where we know where the internet site is and also it allows users to search the content without having to connect to the internet that's an important feature so that internet based content there are some other great features now we use standard HTML lots of places but these are things that you can add to your HTML to enhance the user experience some extensions we're going to cover the first three in depth we're going to talk about apple script automations how to improve search results to make sure users can find what they're looking for and we're going to talk about anchor looked up which is sub which is also something new that we've added but I want to talk for a sec I hear about the dynamic table of content this is kind of a hidden feature but it's it's unique and you might need it so in the demo there was the help center and the help center contains three items Mac health quicktime health in a developer center those items appeared in a list because the help viewer found them on the hard disk and built that list automatically so that same technique can be used inside your help book to build your table of contents now if you have a product that has a lot of plugins or optional pieces that users may or may not install you can use the same feature to build your table of contents automatically making sure that users are only seeing helps for the things they've chosen to install that's kind of how what it does if you want the details on how it works it's all covered in the SDK which will tell you about it again and finally I want to talk about the developer center now you saw it in the demonstration and I want to point out two important things one is I think you've already realize it's a great resource for you all you have questions about developing for Mac os10 go there type in your search term browse around and get the information you need but secondly it's important to note because Apple is now using to help viewer an apple help to deliver all of its content all of our end user based documentation is delivered in this format and all of our technical publications are delivered to the floor mat we're solidly behind this and we want you to join us in this effort so let's talk about Apple script automations those of you who are fans of Apple guide this is a great way to recover some of that interactivity and do it for me type things it's also a really good way to reduce kind of the clutter that's in your documentation if there are common steps that has to be done frequently by users automate oh okay gets people out of the help which they really don't want to be in let's face it and back into using your application it's really easy to do eco 2h wrath as you see on the bottom of the slide just a standard HTML link what you give it a special URL which is helped colon run scripts and you give it to pass to your Apple script which has to be on the local hard disk you can't run an applescript it's on the internet and you can pass a parameter if you want to for example in Mac help we use this we pass parameters for applications to open we have one script that does it and we just give it some parameters that reduces the number of scripts we have and eliminate some testing for us so Apple script automations are a good thing to add to your help it makes them it just makes your help a lot more interactive and usable search results Apple help is all about searching I've got a great search engine courtesy of Sherlock you can type in a word affray the sentence whatever you'd like and automatically finds the most relevant topics based on what you typed in but as a Content author it's your responsibility to test this and make sure that people are getting the information they need by typing and words that you think they might use we support standard HTML tags wherever possible this is a great example of that because we use the keyword tag which is a standard meta tag and if you add this to your pages you can use it to provide synonyms and dispelling to make sure that people can get the results are looking for in Mac help for example when we're talking about quick time we always key word with the word quick and the word time and that way if somebody doesn't type in the product name exactly right they're still going to get the information they're looking for you can also use the no index tag this is robots equals no index common tag and this will tell our search index to skip that page and not included in searching finally there's apple abstract this is a tag we've added and the contents of this meta tag can contain a summary of your page if you provide an apple abstract for a page and it shows up in the search results the abstract information shows up underneath the hit that way people who decide if they want to go view that page if it looks like it has the information they're going to need this is a great addition for internet-based help because it helps people decide whether or not they want to connect and download that page next is anchor look up this is a new feature we've added since the last time we met and talked about Apple help this is a great way to provide contextual help now we didn't include me the demo because we don't know I'm going to make the demo see long it's really easy to explain anchors a standard HTML tag you embedded in your HTML and he gives a name for that anchor such as foo from within your application say from a Help button in the dialog using our API to tell the help you were to open the page that contains the anchor foo the application doesn't have to know what page that occurs on the help you or will see that anchor find the right page and automatically display it for the user that way the content authors can continue to modify the content move stuff around as necessary without having to deal with breaking things in the application there's a new feature I think you'll find it really handy so authoring Apple help excuse me this is where we get to the nitty-gritty now you've heard me babble on for a few minutes about how great the health system is and how easy it is to use but this is where the proof is in the pudding so to speak you can literally go from HTML to apple health in five minutes it looks really hard to make this as easy as possible now you need to start with HTML remember we support HTML 3.2 you could use existing files you create some new ones just author some HTML once you've done that decide on which page is going to be your start page this is the page that appears when you click your book name in the health center it's also the page that appears when somebody accesses your help menu to that start page you add one meta tag a meta tag a standard HTML it doesn't displayed in the page so you can go ahead and add this it won't affect the page if you're reusing it in browsers on the web or sitting some other helps us book this meta tag is called Apple title and the contents of the meta tag is the name of your book in this example my apps dot help this is the name that's displayed in the help center and it also becomes your book ID the book ID is used in the API that's all you have to do is add that one tag to one page the next step is the indexer we give you a drag-and-drop indexing tool you take your folder of HTML you drop it on the x and indexing tool they quickly goes through and scans all of the content pays attention to keywords Apple abstracts and the windex and everything else it needs to look at and it creates the search index file which is a small file it automatically puts it in the right place within your help folder now if you're going to use internet based content this is where you tell us where your remote mirror site is what the URL is where we can go and download help if we need to and if you're using anchor look up to provide contextual help and you need to turn on a checkbox but it's really as easy of that as easy as that the next thing to do is to store your help now Mac os10 your applications help is stored within your applications bundle you take your help folder you put it in there with the rest of your other resources you have localized resources that's great you can have a local life's to help you put it inside there as well this provides a drag-and-drop install of your application and all the help files people can move it around and you know heaven forbid you can throw it away and they throw away the app add the help it was nice feature and i'm michael s 10 because we pay attention to file permissions if somebody doesn't have permission to launch your application then they won't see your help and vice versa this makes for a health center that's targeted to exactly what you can use the cool feature so on the authoring side of things you are done right you started with HTML hopefully added some applescript enhancements some keywords make sure people can find their content may be decided some of it was going to be internet-based it's as simple as that the next step is to get your application to open to help you or at the appropriate time with the right content and to cover how to do that does not mean it's Miller time for me I want to reintroduce the first one responsible for bringing Apple help to Mac os10 and the lead engineer for Apple help Jessica Khan Africa [Applause] thanks Gordon okay well as Gordon said I'm here primarily to talk to application developers about how you can provide Apple help from within your application I'm also be going to be covering a little bit about some new health URLs that have been introduced in the Mac os10 help viewer they're so new in fact that Mac help hasn't necessarily adopted them so it's better for me to discuss them with you so that you get it right and I'm also going to be discussing the HTML rendering library briefly which is the underlying rendering technology for the health viewer and you can use that in your application as well so here we are in the next slide but actually I'm going to take a moment to well I was considering bringing a soapbox and getting up on it but then I thought I'll be nervous enough that I'm going to fall down on the stage or something ridiculous like that so let's pretend i have a soapbox and i'm going to get up as much as it's personally gratifying for me to see you adopt appal health I want to see you adopt it because I want Mac os10 in particular to be awesome and part of Mac OS 10 being awesome is it being an easy transition for our existing users the way to make it easy for them is not only to provide wonderful health content but to make sure that they know how to get to that health content and I think that if we're consistent with bringing them health content through the health viewer they're going to have an easier time of making this transition another thing about this is that in the past we know that you've had to do a number of different things to provide help to your users we've changed over the years and some of you have custom health solutions please consider not porting those custom health solutions we've got a really easy solution for you and I'm going to explain how easy it is now ok so first things first is your application launches you're going to want to help menu and the way you get that help menu in Mac OS 10 is a little different than it has been in the past but it's easy for carbon and cocoa applications will do all of the work for you as long as you have a simple help system but at the same time if you don't have a simple health system we understand that you need it to be customizable in the simplest case you've got one book of health content and you just need a help menu with one night a minute and that item will be your application name space help all you need for that to appear automatically in your application and in fact for the menu item to be handled automatically for you is a key in the file known as your info key list I'm not sure if all of you know what an info.plist is perhaps if you saw the the app packaging session earlier today or one of the core foundation sessions you may have heard a little bit about it but it's basically away on Mac OS 10 for you to give the system enough information about your app that it can do a lot of things for you so we have a special key that we'd like you to put in your info plist that key is the CF bundle help book folder with that key you can put one string as the value and that string should be the name of the folder in which your help content is stored so as Gordon mentioned your help content should be stored in a folder that's inside of your application bundle so for example if I have an application that is called sketch that's that's been used in examples earlier today inside of my sketch that bundle and down into the resources area of the bundle I'll have a folder say it's called sketch space help and that can be localized into multiple different languages so in my English el prof a sketch help and in my german el proj i can have a sketch help and the files inside of sketch help are localized into the appropriate languages but please remember as with any other resource that you're localizing you do not localize the name of the resource so you have sketch help down in there and in your pee list you just have CF bundle health book folder with the corresponding key of sketch help with that p with sentry as you launch again carbon or cocoa we make your help menu we put the item in it and we handle that item when the user picks it so I'm sure you're wondering well what do you do what if I don't want you to do that so the thing that we do for you automatically is that when the user picked that item we would go out and find entry page for your health content that entry page is what Gordon discussed earlier where you put the meta tag for the apple title and for I would guess ninety-eight percent of applications this is about all you need to do to provide content for your users particularly if you're using the health viewer since that content is going to be multifaceted as you want it to be with movies Apple scripts and very searchable all right but there are some applications out there i'll admit that have very complicated help menu sometimes sometimes to my dismay if you want to do that we're going to let you we've heard that you need to be able to do your own thing would help menu and there are a couple different ways that you can customize the first and easiest one is if you need more than one book of health content for your application let's say you've got an app and it needs help and then you've got plugins and they need separate health for some reason you can still use the CF mental health book folder key in your pee list but instead of putting one string as your value you can put an array of strings as your value and each string will be the name of the folder for you know the different book once you do that then you get a little more complicated and we can't handle things automatically for you we will instantiate the help menu for you at that point but it's your responsibility to add menu items and it's your responsibility to handle those menu items when they're picked you can even do one level further of customization and of course no matter what platform you're on if you know the way to programmatically instantiate your own help menu feel free if that's the way you want to go but I hope that you'll let us do the work for you one more thing if that is the route that you go there's an API it's one of the new apple health api's and it's called aah register help book you need to call that if you have more than one health book and you need to call it for each book and what it does is it places your book in the help center so you think so what if my books in the help center I can get through it for my help menu that's all I need well you lose out on a lot of the features of the health viewer if you don't put your help in the Help Center for instance it won't be searchable and that's one of the key things about health viewer okay the example of the simplest case and the case that we hope you'll adopt since it'll be less error-prone for you and you know great for our users because it's simple if you have one health book and it's stored within your app bundle again your info pila should contain the key CF bundle health book folder and the strings of the folder name that your help is stored in within your app bundle okay so we talked briefly about one of the Apple help API is the register book API but there are a number of others that help you customize either your help menu or if you have helped button within your application they're shipping as a health framework which will be part of the carbon umbrella but it's not yet in DP for it will also be available in carbon lib so you can ship an application for carbon lib running on 9 dot whatever and also ship that same binary to run on 10 and not have to change the way you handle your help menu and finally it's usable by Coco apps by nature of the fact that it's just a capi you can link to the health framework and use these api so what are they well the first one is registering a health book and again that puts your help look into the health center next there are api's that cause help you were to open to a particular location these are going to be the most common api's that you're probably going to want to use they ra h go to main toc aah go to page and age with a banker and we'll discuss them in detail in a flight or two and finally there's an API for performing a search programmatically and that's a H search okay so examples and at this point I want to note that these examples work in DP for so I want you to take your CD home and try start hooking up your your help stuff to the help menu stuff is not yet implemented but you can still you know make a test menu hook up those items have buttons and hook them up okay so the first one is H go to main toc and you specify a constant fair of which toc you want a TSE is a table of contents and main toc would specify either the health center or the developer center that you saw in Gordon's demo earlier so specified k h toc type you to go to the health center or ka h toc type developer to go to the developer center all right to go to the main page of your applications help book which is probably the most common thing that you're going to want to do you call h go to page the first parameter there is a CF string representing the name of your books now it's a little confusing in these slides I regret that the name of your book is not the name of the book folder the name of your book is the name that you specified in the Apple title tag so anywhere in these api is that you see that we're requesting a book ID the book ID is the apple title so turn that into a CF string pass that to us the next parameter is optional and here it's set to null the parameter is a path so you could conceivably pass us a book ID and then a partial path into that book and we would find that file for you here it's null meaning that we want the main page for the book and the third parameter also optional is the anchor parameter if you specified that we would open to the anchor that you specified in the page that you specified using the other parameters here at snell you don't ever have to supply an anchor to us in the H go to page routine finally you can go to any HTML file on the disk and make sure that it opens and health viewer and you can also do that with the age go to page you see here that we use sort of a mix and match of the different the different parameters they're optional and you can kind of combine them to make cool things happen so here the books name is null because this files might have nothing to do with your book and you're specifying a file in the URL that is the full path to the file on disk and here we have no anchor specified but you could have an anchor specified and actually let me take a moment to make sure that you guys understand what we're talking about when we say anchor I don't think that we've had an example of it the way it looks in HTML that's the tag that starts with a and then space and then name and equals foo so food would be your anchor there the next type of help api's are lookups and searches look up actually take you to a place on disk that's why they were listed that way a couple slides back the lookups are what Gordon discussed before and they're especially helpful as he said for content that changes you don't want to break your app so what you would do here is let's say I know that I'm going to have a page on how to print in my app but I don't know necessarily that that page is going to reside in a particular directory of my health book I don't know what that file name is going to be all I do is make sure that in that file I have a name equals printing and then I call AAA choked up anchor with the CF string of my book ID again the Apple title and a CF string of the anchor that I'm looking for and provided that I've indexed my content for anchor look up healthier takes care of figuring out what file that anchors in and scrolling to the appropriate place in the file you can also perform a search of the health content either of your book only or of the entire help content installed on the system here you see a church with the CF string for find files that's searching all of the help content for how to find files so you might find how to find files using your apps but you probably also find helps about how to find files using Sherlock the next one woman's the search to just your book and there you just specify the book ID again the Apple title and then the search string ok just to make sure that you guys understand the stuff that the anchor stuff without a demo is a little bit hard to get I should know you may have seen a demo if you went to the documentation session yesterday they did a demo where project builder was integrated with help viewer and what they were doing there was an anchor look up they called up help on a particular carbon API and it launched healthier and brought you to exactly that api's documentation so this is sort of a schematic of what that would be you can see the arrow pointing inside of the HTML file in the HTML there again is the aam equals anchor and then help you were when an anchor lookup was performed forget folder name would open this page and scroll to that anchor okay so we have talked about the API and I hope you're going to go and try them again the examples that I gave you all work on your CD and now I'm going to talk a little bit about the URLs in depth some of them again are very new but again all of the examples i'm giving you are going to work so what are these URLs for their for use from within your content to make that content more dynamic they exploit the very same features of the health viewer as the api's do plus one additional one that just doesn't make sense from an API perspective so those features fall into three categories again they open the healthier to a specific location they perform a search and they run an applescript the first that we're going to talk about opens the health viewer to a particular location first is the help go to help center that is equivalent to the aah go to main toc api so here you specify help go to help center equals user to go to the health center and help go to help center developer to go to the developer center this is this might not seem like much but it's actually a really excellent feature because in the past you couldn't have linked to the help center from your help content you would have to rely that the user knew how to click that button on the toolbar to take them back to the health center why because you don't know where we're writing the help center that's a generated file so now you do have a way to link to that and that can be really helpful the next one is help open book so this is analogous to some of the variations of the aah go to page API here the example you see is a help open book with just the book ID specified note here that the space in the book name is escaped because this is a URL and spaces really aren't valid the book name again is the Apple title not the folder name so what this would do is bring you to the main page of your book once again this is sort of an interesting feature you're thinking well why wouldn't I just linked to that using a regular file call an URL to my main page why is the silly health open book thing well so there's a way that you can generate your toc file for your book and that's discussed in the SDK I don't think Gordon went over it but it's an interesting feature because this toc would be generated the main page for your book is generated once again you suffer from the same situation with the health center you don't know where we're generating that file you couldn't possibly link to it so this gives you a way to do that I can be very useful next is the help anchor URL and obviously probably this is analogous to be the anchor look up so again I I keep thinking with these api's when I'm thinking about this talk how am I going to explain to them why these are useful why these are more useful than any of the standard HTML URLs that they could use so this one was tricky but the point is again that this is allowing you to move your content around till the very last second so this is useful not in you know not when you're worrying about breaking your app but it's useful when you're worried about breaking your other health content if you have a very complicated but you might have 300 HTML files if you have a complicated app and you've got a lot of help so what is it the last second somebody changes the name of a file what are you going to do what if you miss changing the links to that file from elsewhere in your content well this keeps you from having to worry about that if you rather use this help anchor URL instead of using a file call and URL with an anchor appended this will prevent mistakes like that and finally this one I'll admit I'm on a campaign to tell you why these are so useful this last one is actually a little silly and I'll admit it but it fit in well because I had to implement this functionality for the api's there's a help colon full pass to file URL so you're thinking why on earth would I want to use this instead of a file and well you know what I thought of a reason I'm proud of myself I thought today it took me forever to come up with it you can actually use this as long as internet config and set up your internet preferences properly for help you were to be the help colon handler if you put this URL inside of content that for instance might get opened in internet explorer when a user clicks on this link it will open the help viewer so you might want to use this for files that contain content very specific to the health viewer that you would never want opened an Internet Explorer for instance something that might have run script URLs that launched Apple scripts finally performing a search and running an applescript so you can script not script I'm sorry you can put URLs for searches inside of your content that's a help cool in search and you can again as with the API either limit that search to your book or search all content installed for an example of this which is pretty neat they're not actually using a help colon search but it is a search from within content so it'll give you they'll get you thinking on why you might want to do this look into the mac help book on your DD for CD and you'll see that list of quick clicks and you'll notice when you click on them that that initiates a search for a particular term so check that out no get you thinking on why you might want to use these URLs and then Gordon did a very good job of explaining what running an applescript is good for and I'm just going to give a slightly more specific example for formatting purposes so you see that it's helpful and run script equals and then a path to your script which is relative to your books folder again it's a URL so please escape spaces if you've got a space in your book folder in its name okay so we're done talking about the api's and we're done talking about the URL I'm going to take a moment just to note that if you're left feeling like wow she just bombarded me with a ton of information I couldn't copy down the examples anything like that we're going to give you an email address that you can send questions to and please do don't feel like we don't want to hear from you because I'm just desperate for you to adopt this technology and I want to make it as easy for you as possible on that note let's talk about the rendering library this is the underlying technology that renders HTML in the health viewer and on 10 it's shipped as the HTML rendering framework which is a part of the carbon umbrella in DP for a mac OS 9 it's still available as a non carbon shared library but it will also be available in carbon lib so what exactly is the sting and why would I want to use it well you use it to render HTML into any window in your application an example of this might be if you had an about box and you wanted more dynamic looking about box content you wanted a picture in there you wanted a link to something out on the internet you can use the rendering library and have a pain inside of your about box that renders HTML well so what exactly does it do well it has the same capabilities that you see for HTML rendering in the health viewer so all that stuff with movies and image maps and it can play sounds it does some really interesting things just in case you forgot the recent demos I've got a screenshot here that shows that it's got a picture it's got the image map of that button it's got I believe this page as a table within a table it's got a font specified it's got a colored table cell it does have some pretty interesting stuff yeah well give me the details well so it does HTML 3.2 which includes lists frames tables images and client-side image maps and QuickTime embedding of any quicktime content that you can throw at us what doesn't it do now this is a little controversial for some of you in the audience it doesn't do HTML 40 it doesn't do cascading style sheets and basically it's not real good for browsing the web use internet explorer for that or another browser of your choice so if it doesn't browse the web why do I need it well it's really lightweight we did it that way on purpose it's fast it's ideal for tailored content what I mean by this is that you don't want to use it for pulling web pages down when you haven't you're not sure what's in there it might be HTML 40 it might be malformed HTML it it might be anything that's not what it's great at it's great at content that you designed for it you've seen it be great at rendering health content it's also really good at item descriptions or item summaries and I'll show you in a demo in a minute we use it in software updates and you can also use it for advertisements as I mentioned you can have an about box renders HTML and you know has a really cool-looking ad for related products to the software that you're already selling and at this point I'm going to show you a demo of their energy library so here we are and we're going to launch software update so for those of you unfamiliar with software update it's apple's mechanism for delivering updates to the installed software and i believe it shipped on mac OS 9 and you can update your software on that with it and it's shipping now in DP for inside of the system demos folder I believe so it wants me to click the update now button to see what software is available I think I'll do it looking for updates let's hope the internet is being nice to us Oh what have we here it's found an update to Mac os10 you guys think I could do that install mac OS 10 right on here using software update we'll see what it says about macro attend this pain here is the rendering library I know it's it's simpler than the healthier content up because I am just not a web designer but what is the same let's see Mac os10 has some great features including a new version of the already excellent HTML rendering library you guys know that before you update consider a visit to the apple store to purchase a g4 in a cinema display making 10 all the more enjoyable so when I wish I had one alright so let's visit the apple store maybe I'll buy myself a cinema display while my boss isn't looking oh wait he's looking keys right there so check it out that's an example of how you can bring people to your website to purchase things so I hope that you're going to go check it out music okay so I'm about done with my spiel but I'll tell you where you can get more information admittedly as i said the documentation for the apple health api's is a little little lacking but we're working on it for working real hard so for now check out the system library frameworks help framework you'll see the header dare you can get going and i'll give you an email address to send questions to four other general apple health information including a link to the sdk that Gordon mentioned that has a lot of interesting content authoring tips and lessons and meat stuff samples also information on some of our legacy technologies in case you need to figure out how to transition away from them visit developer apple com / mac OS flash helped HTML that's a good jumping off point for lots of information and then for specific information on the HTML rendering library their sample code and I know that's a long URL so try the doggle and make sure that you guys have time to copy it down that's developer apple com / sample code / capital s sample underscore capital c code / human interface toolbox with underscores and capitals HTM and then there's also a PDF with documentation on the each of the individual HTML rendering api's and how to use them and while I've been reading out all the other you are el sol developer.apple.com tech pubs mac OS 8 PDF HTML underscore rendering lib dot PDF and you know these are long so if you didn't make it just go to the developer.apple.com site and get to the documentation area and search it and you'll find this stuff okay so how can you communicate with us because we know that you want to at least I want you to you can email the engineering team including myself at Apple help comments that's capital a capital H capital C oh why am I saying that i'm sorry i'm a spaz email addresses are all lowercase you guys know that at group apple com apple help authoring discussion list this is in particular for tech writers or authors and you can discuss with each other what you're doing get answers I'm not sure if it's monitored by opal or not maybe Gordon would answer that question when he comes up here later and that's you can find that from list apple com and finally you can always communicate with John Glenn Z he is the user experience technology manager and he handles developer relations for our technology and that's ghal NZ spelled gele why NSE at apple com and with my giving you his email address I'll invite him back on stage and he's going to take us through the roadmap and QA thanks Jessica so let's talk about the road back briefly many of these sessions have passed but it's important to know that they did talk about issues related to aqua and user experience and AP is that were talked about here packaging bundling these sorts of things tomorrow is a session on navigation services which doesn't apply directly to Apple help but it relates to the user experience subtract and it relates to you delivering you know really consistent or really rich user experience in your application on 10 and of course the ever famous or infamous aqua feedback forum which we're looking forward to your participation in you
