It is a well-known fact that web browsers on Apple iOS devices do not support Flash and with Adobe’s recent announcement to focus on HTML5 as standard rich content on mobile devices, the writing is on the wall: Flash content on mobile devices is a thing of the past, HTML5 is the future. I see two options for Adobe Captivate developers to deploy their content on mobile devices today and in the future:
- Publish content as HTML5, which learner can access via their device’s web browser, or
- Package Flash-based Captivate content as an APPLICATION that runs locally on the device.
While publishing to HTML5 only requires a a few mouse clicks in CP6, you currently have to live with some limitations. For example, CP 6.0 does not support the following:
- Text and SWF animations (only the first frame is visible). Animations in imported PPTX files are also not supported
- Rollover captions, images, and slidelet
- Mouse click animations (only one default click effect is supported)
- Question pools, question slides (Matching, Short Answer, Likert, Fill in the blanks), and random question slide
- Slide transitions
- Slide background if a SWF file is used
- Static widgets (Interactive and Question widgets are supported)
- Audio attached to invisible objects
- Mouse right-click and double-click
- Borders.
Also, only a subset of Effects are supported and third-party widgets may have to be updated to work with CP6. If you can’t wait for a future CP version to provide full-feature HTML5 support, there is another option available right now:
Package Captivate 6 content as a native iOS application
The process is fairly simple and involves the following steps:
- Sign up for Apple’s iOS Developer Program. This will allow you to attain the required developer certificate and generate provisioning profiles and AppIDs.
- In Captivate, publish a project as a Flash (.swf)
- Create any other assets, e.g. app icon images and launch images
- Package .swf file into an iOS application file (.ipa)
- Install app on a device connected to your PC/Mac with iTunes or upload to the App Store.
Steps 1 is a ‘no-brainer’ and doesn’t require any explanation. For information on app icons and launch images, see the iOS Human Interface Guidelines.
For packaging Flash content into an Android app file, Adobe provides Adobe AIR, a tool that combines the Flash content with all required runtime files into a standalone application. For the uninitiated, Adobe AIR’s archaic command line interface may be intimidating. However, the documentation provides all the required info to a) package the app and b) install the app on a mobile device. And once you have gone through this process a few times, it will be a matter of replacing file names in the command strings to package the next app.
Owners of the eLearningSuite have another option: you can use Flash Professional to create a ‘container’ file that loads the Captivate Flash at runtime. This may seem like a detour, but consider this: Flash provides an easy-to-use Publishing window that allows you to specify the certificate, provisioning profile and AppID, add icon files, any external files, etc. Also, from Flash you can install the app directly on a USB-connected iOS device for testing.
No command line gimmicks needed!
For some info on Flash publishing options for iOS, check out this tutorial.
View the video below to see a Captivate 6 project that was packaged with AIR as an application, running on a iPhone 4S.
The process is the same for iPads.
There you have it, Captivate+AIR(or Flash)=yet another option to distribute your content to mobile learners!
Thanks for posting this! Packaging a Captivate file into an app is certainly an alternative to using the limited HTML5 option. I’ll give that a try!
I like your idea of using Flash, rather then struggling with AIR, thanks!
Very cool. I wonder if the same idea (using AIR) would work for Articulate Storyline?
You ever investigate using AIR to package a Articulate Storyline created course? I’m thinking that may be the way to go if it’ll work.
Hey Michael,
I like the idea of this, but have you actually tried to publish to native ios as you described? I see no one else doing this or talking about it and I would think this would be a hot topic if it were truly possible, since this would allow ALL Captivate features to work on ios without the html5 limitations. From what I’ve read, the new native IOS publishing option from Flash CS6 (the same AIR capability you refer to I believe) does not provide a runtime packaged with a SWF in the case of the ios target… Instead it actually provides an app that is already compiled into native IOS code… Which means that just providing a Captivate SWF would not cut it, since this approach needs to start with a FLA from within Flash Pro… I read somewhere though that Captivate can export a FLA of the project to Flash, which might still make this possible… I hope.
If you’ve done this yourself, could you please elaborate on exactly how you did it? The magic seems to be in your step #4 which leaves a lot up to interpretation.
Thanks!
Doug, as you can see in the video, I did successfully package a Captivate file as a native iOS app. While there is not a whole lot of demand for this type of distribution option, I have done this with two client projects (both for iPad). I’m not sos ure if this method would be a ‘hot topic’. For one, you still need an Apple certificate and provisioning profile (something that is beyond most eLearning developers’ reach or interest). Second, packaging a Captivate file is this way doesn’t solve the problem of how to distribute the app to a trainig audience. Using the AppStore is not an option for most of my clients becuase of proprietary training content.
For my projects, I used Adobe AIR where the packaging process starts with a .swf file, rather than Flash CS6 where an .fla is required.
There is no ‘magic’ hidden in step4, you just have to work your way through the convaluted command lime syntax of Adobe AIR to produce a iOS package. Beyond what’s in the AIR documentation, I’m not sure what other info I could provide.
Michael,
Thanks for those extra insights..and I’m very glad to hear that this worked well on some iPad projects. I guess I was mainly trying to understand your comment about it being easier with the Flash Pro CS6, with its new option for publishing to native ios via air, where you said it could act as a “container” and make the process easier since the cryptic command line approach is eliminated that way. That’s the approach I’d prefer, but I wasn’t seeing the light about how you would actually incorporate the SWF from Captivate into the process… In thinking about it some more, I realized you were probably suggesting that there would be a “container” app in Flash that would simply be a few lines of AS to load the external captivate SWF — so, by doing this and also adding the Captivate SWF as an additional “included file” in the ios publishing dialog, it would all come together — Is that what you meant when you referred to the “container” approach? If so, I think I get it now.
In your experience with the two projects published to iPad, did you find there to be any issues with any features or UI aspects from Captivate not working correclty? Ie, does it appear to truly be a full-featured flash player equivalent running this way?
Regarding the public nature of the app store being a reason that most people would not do this for elearning material, that’s a good point… I guess I was thrown off a bit by the articles I’ve seen that said you could get the published app onto devices without going through iTunes, as if there was some other more private way to deploy/distribute — maybe those were just methods for local development testing, not sure.. I haven’t worked with apple devices in the past, so I’m not sure how restrictive the distribution methods are in this case, as far a options for more private distribution.
Thanks.
Hi Doug, you are right on with your ‘container’ explanation. That’s exactly what I did; the Flash file was a simple file that calls the external Captivate-based .swf file. All I had to do then is specify the external .swf in the ‘Included files’ list in the AIRfor iOS settings in Flash. Sorry, if my description was too cryptic.
The files that I packaged works without any problems, mind you they didn’t have video or any advanced actions. I wouldn’t be surprised if there are features that are ‘buggy’ or don’t work at all.
You can get around the AppStore if you distribute your app to a specific pool of devices (you need the iOS device IDs to do that) and/or use Tesflight. There is also a ‘enterprise deplyment’ option that let’s companies build their own (internal) app stores (I’m not sure what involved in this).
Michael
Cool, thanks much for confirming the process Michael, and for the tips on possible appstore workarounds. Definitely a good option to have in the toolbox.
Thanks for sharing this with us. This could make my life a lot easier. Or not.