3. Rappels AIR 2.7
http://kb2.adobe.com/cps/906/cpsid_90612.html
4. Rappels AIR 2.7
Install AIR Runtime to SD – This feature allows end users to
install or move AIR runtime onto SD cards of their Android
devices so they can free up storage space on the phone.
http://kb2.adobe.com/cps/906/cpsid_90612.html
5. Rappels AIR 2.7
Install AIR Runtime to SD – This feature allows end users to
install or move AIR runtime onto SD cards of their Android
devices so they can free up storage space on the phone.
Improved performance on iOS: We have made runtime
optimization to allow developers to deliver higher-performance
apps on iOS.
http://kb2.adobe.com/cps/906/cpsid_90612.html
6. Rappels AIR 2.7
Install AIR Runtime to SD – This feature allows end users to
install or move AIR runtime onto SD cards of their Android
devices so they can free up storage space on the phone.
Improved performance on iOS: We have made runtime
optimization to allow developers to deliver higher-performance
apps on iOS.
Interpreter Mode for iOS – This feature streamlines the iterative
testing and debugging workflow by enabling the Interpreter Mode
for iOS in AIR Developer Tool (ADT), which is part of the AIR
SDK.
http://kb2.adobe.com/cps/906/cpsid_90612.html
8. AIR 3.0
Les applis AIR 2.7 n'utilisent pas les contrôles natifs.
Par exemple, pour les textes, pas de possibilité de
choisir le clavier virtuel, de bénéficier de la loupe...
11. AIR 3.0
Native Text Input UI (mobile) —
Mobile apps can now take advantage of the native text input
controls on mobile platforms, including platform-specific user
interaction behaviors such as magnification and text selection.
12. AIR 3.0
Native Text Input UI (mobile) —
Mobile apps can now take advantage of the native text input
controls on mobile platforms, including platform-specific user
interaction behaviors such as magnification and text selection.
Native text controls are available on Android, BlackBerry Tablet
OS, and iOS operating systems.
13. AIR 3.0
Native Text Input UI (mobile) —
Mobile apps can now take advantage of the native text input
controls on mobile platforms, including platform-specific user
interaction behaviors such as magnification and text selection.
Native text controls are available on Android, BlackBerry Tablet
OS, and iOS operating systems.
14. AIR 3.0
Native Text Input UI (mobile) —
Mobile apps can now take advantage of the native text input
controls on mobile platforms, including platform-specific user
interaction behaviors such as magnification and text selection.
Native text controls are available on Android, BlackBerry Tablet
OS, and iOS operating systems.
15. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
16. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
Quizz :
APIs commençant par Stage?
17. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
Quizz :
APIs commençant par Stage?
StageVideo
18. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
Quizz :
APIs commençant par Stage?
StageVideo
StageWebView
19. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
Quizz :
APIs commençant par Stage?
StageVideo
StageWebView
Stage3D
20. StageText
StageText API.
StageText allows developers to place native text inputs in their
mobile AIR applications rather than using the standard
flash.text.TextField API.
StageText is essentially a wrapper around native text fields.
Quizz :
APIs commençant par Stage?
StageVideo
StageWebView
Stage3D
StageText
24. StageText
Benefits.
• auto-correct feature
• autoCapitalize property of StageText allows you to configure how
auto-capitalization is applied to your text field. Options are specified
as properties of the AutoCapitalize class and include
ALL, NONE, SENTENCE, and WORD.
25. StageText
Benefits.
• auto-correct feature
• autoCapitalize property of StageText allows you to configure how
auto-capitalization is applied to your text field. Options are specified
as properties of the AutoCapitalize class and include
ALL, NONE, SENTENCE, and WORD.
• StageText allows you to control the type of virtual keyboard that is
displayed when the text field gets focus.
SoftKeyboardType class includes
CONTACT, DEFAULT, EMAIL, NUMBER, PUNCTUATION, and URL.
26. StageText
Benefits.
• auto-correct feature
• autoCapitalize property of StageText allows you to configure how
auto-capitalization is applied to your text field. Options are specified
as properties of the AutoCapitalize class and include
ALL, NONE, SENTENCE, and WORD.
• StageText allows you to control the type of virtual keyboard that is
displayed when the text field gets focus.
SoftKeyboardType class includes
CONTACT, DEFAULT, EMAIL, NUMBER, PUNCTUATION, and URL.
• You can also configure the label used for the return key. Options
are specified as properties of the ReturnKeyLabel class, and
include DEFAULT, DONE, GO, NEXT, and SEARCH.
31. StageText
Problems.
• StageText is Not on the Display List
• StageText Does Not Have Borders
Flex will address the two challenges of working with StageText
described above (the fact that it’s not part of the display list, and the
drawing of borders) by encapsulating StageText inside of
spark.components.TextInput.
32. StageText
Problems.
• StageText is Not on the Display List
• StageText Does Not Have Borders
Flex will address the two challenges of working with StageText
described above (the fact that it’s not part of the display list, and the
drawing of borders) by encapsulating StageText inside of
spark.components.TextInput.
http://inflagrantedelicto.memoryspiral.com/2011/09/stagetext-air-3-for-mobile/
33. StageText
Problems.
• StageText is Not on the Display List
• StageText Does Not Have Borders
Flex will address the two challenges of working with StageText
described above (the fact that it’s not part of the display list, and the
drawing of borders) by encapsulating StageText inside of
spark.components.TextInput.
http://inflagrantedelicto.memoryspiral.com/2011/09/stagetext-air-3-for-mobile/
Native Text Input with StageText par Christian Cantrell
http://blogs.adobe.com/cantrell/archives/2011/09/native-text-input-with-
stagetext.html
35. AIR 3.0
Je me suis amusé à faire une appli avec du son sous
4.5 pour iPhone et Android, et je me retrouve bête car le
son est toujours en mode "casque" et donc pas
amplifié !
36. AIR 3.0
Je me suis amusé à faire une appli avec du son sous
4.5 pour iPhone et Android, et je me retrouve bête car le
son est toujours en mode "casque" et donc pas
amplifié !
Sais-tu s'il existe une commande pour basculer en
mode haut parleur ?
40. AIR 3.0
Device speaker control
flash.media.SoundMixer.
has a read/write class property called audioPlaybackMode.
41. AIR 3.0
Device speaker control
flash.media.SoundMixer.
has a read/write class property called audioPlaybackMode.
flash.media.AudioPlaybackMode is a new addition in AIR 3
42. AIR 3.0
Device speaker control
flash.media.SoundMixer.
has a read/write class property called audioPlaybackMode.
flash.media.AudioPlaybackMode is a new addition in AIR 3
http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/
media/SoundMixer.html#audioPlaybackMode
Android requires android.permission.MODIFY_AUDIO_SETTINGS for this
setting to have any effect.
43. AIR 3.0
Device speaker control
// Play audio through the speaker:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.MEDIA;
// Play audio through the earpiece:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.VOICE;
44. AIR 3.0
Device speaker control
// Play audio through the speaker:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.MEDIA;
// Play audio through the earpiece:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.VOICE;
http://blogs.adobe.com/cantrell/archives/2011/09/new-audio-capabilities-in-air-3.html
45. AIR 3.0
Device speaker control
// Play audio through the speaker:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.MEDIA;
// Play audio through the earpiece:
SoundMixer.audioPlaybackMode =
AudioPlaybackMode.VOICE;
http://blogs.adobe.com/cantrell/archives/2011/09/new-audio-capabilities-in-air-3.html
47. AIR 3.0
iOS Background Audio Playback Support —
Developers can now write multitasking iOS applications that can
play audio while in the background, including music or voice chat
from a conferencing application.
http://developer.apple.com/library/ios/#documentation/general/Reference/
InfoPlistKeyReference/Articles/iPhoneOSKeys.html
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
48. AIR 3.0
iOS Background Audio Playback Support —
Developers can now write multitasking iOS applications that can
play audio while in the background, including music or voice chat
from a conferencing application.
http://developer.apple.com/library/ios/#documentation/general/Reference/
InfoPlistKeyReference/Articles/iPhoneOSKeys.html
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
All screen updates will be disabled in order to preserve battery life
50. AIR 3.0
iOS Background
concerne également géolocalisation and voice-over-ip
http://www.flex-tutorial.fr/2011/09/07/air-mobile-autoriser-des-services-a-sexecuter-
en-arriere-plan-location-audio-sur-ios/
51. AIR 3.0
Stage Video Hardware Acceleration —
You can now leverage hardware acceleration of the entire video
pipeline for best-in-class high-definition (HD) video playback
experiences on mobile devices.
Reduce processor and memory usage and enable smoother
video, and higher fidelity (released previously in Flash Player
and AIR for TV).
53. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
This popular feature from AIR for iOS is now available for the
desktop and Android device.
54. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
This popular feature from AIR for iOS is now available for the
desktop and Android device.
Simplify the app installation process by packaging the AIR
runtime with your app on Windows, Mac, and Android.
55. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
This popular feature from AIR for iOS is now available for the
desktop and Android device.
Simplify the app installation process by packaging the AIR
runtime with your app on Windows, Mac, and Android.
Developers can now control exactly which version of the runtime
an app executes against.
56. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
This popular feature from AIR for iOS is now available for the
desktop and Android device.
Simplify the app installation process by packaging the AIR
runtime with your app on Windows, Mac, and Android.
Developers can now control exactly which version of the runtime
an app executes against.
Deploy AIR application in tamper proof /hardened operating
environments (e.g. medical diagnostic equipment, government,
military).
57. AIR 3.0
Point sur les différentes plateformes
sans Intégré Captive
Runtime système Runtime
pré-
iOS non
compilation
Android oui (3.0)
Tablet OS oui oui (3.0)
59. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
To create Android applications with a captive runtime, simply
change your target option in the adt packaging command from
apk to apk-captive-runtime :
60. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
To create Android applications with a captive runtime, simply
change your target option in the adt packaging command from
apk to apk-captive-runtime :
adt -package -target apk-captive-runtime ...
61. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
To create Android applications with a captive runtime, simply
change your target option in the adt packaging command from
apk to apk-captive-runtime :
adt -package -target apk-captive-runtime ...
http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html
62. AIR 3.0
Captive Runtime Support (AIR for desktop and Android) —
To create Android applications with a captive runtime, simply
change your target option in the adt packaging command from
apk to apk-captive-runtime :
adt -package -target apk-captive-runtime ...
http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html
http://www.riaspace.com/2011/08/bundling-air-3-runtime-in-air-desktop-applications/
71. AIR 3.0
Android Licensing Service Support —
Provides developers access to the Android Market Licensing
Service which lets publishers enforce licensing policies for paid
applications that they publish through Android Market.
72. AIR 3.0
Android Licensing Service Support —
Provides developers access to the Android Market Licensing
Service which lets publishers enforce licensing policies for paid
applications that they publish through Android Market.
Au travers d'Android Market Licensing, lors de son exécution
une application peut effectuer une requête vers Android
Market afin d'autoriser ou non son utilisation.
73. AIR 3.0
Android Licensing Service Support —
Provides developers access to the Android Market Licensing
Service which lets publishers enforce licensing policies for paid
applications that they publish through Android Market.
Au travers d'Android Market Licensing, lors de son exécution
une application peut effectuer une requête vers Android
Market afin d'autoriser ou non son utilisation.
http://developer.android.com/guide/publishing/licensing.html
74. AIR 3.0
Android Licensing Service Support —
Provides developers access to the Android Market Licensing
Service which lets publishers enforce licensing policies for paid
applications that they publish through Android Market.
Au travers d'Android Market Licensing, lors de son exécution
une application peut effectuer une requête vers Android
Market afin d'autoriser ou non son utilisation.
http://developer.android.com/guide/publishing/licensing.html
Utilisation d'un fichier ANE
76. AIR 3.0
• valider directement auprès du
serveur de Google, si
l’application possède une
licence valide ou non. En
fonction de ce retour,
l’application est rendue
accessible ou pas.
http://korben.info/le-systeme-de-verification-des-licences-sur-android-a-ete-cracke.html
77. AIR 3.0
• valider directement auprès du
serveur de Google, si
l’application possède une
licence valide ou non. En
fonction de ce retour,
l’application est rendue
accessible ou pas.
• éviter le piratage d’application
http://korben.info/le-systeme-de-verification-des-licences-sur-android-a-ete-cracke.html
80. AIR 3.0
Android Front-facing Camera Support —
The front-facing camera support available with AIR for iOS and
BlackBerry Tablet OS is now available on Android devices (>=2.3
required).
81. AIR 3.0
Android Front-facing Camera Support —
The front-facing camera support available with AIR for iOS and
BlackBerry Tablet OS is now available on Android devices (>=2.3
required).
Take advantage of the front-facing camera to connect users with
rich video conferencing and chat experiences.
82. AIR 3.0
Android Front-facing Camera Support —
// Get the requested camera. If it cannot be found,
// return the device's default camera instead.
private function getCamera(position:String):Camera
{
for (var i:uint = 0; i < Camera.names.length; ++i)
{
var cam:Camera = Camera.getCamera(String(i));
if (cam.position == position) return cam;
}
return Camera.getCamera();
}
83. AIR 3.0
Android Front-facing Camera Support —
// Get the requested camera. If it cannot be found,
// return the device's default camera instead.
private function getCamera(position:String):Camera
{
for (var i:uint = 0; i < Camera.names.length; ++i)
{
var cam:Camera = Camera.getCamera(String(i));
if (cam.position == position) return cam;
}
return Camera.getCamera();
}
http://blogs.adobe.com/cantrell/archives/2011/08/front-facing-camera-support-in-air-3.html
85. AIR 3.0
CameraRoll Support for iPad—
PhotoPicker appears as a floating panel positioned relative to
the UI component that invoked it.
With the addition of the CameraRollBrowseOptions class,
developers can choose the size and position of the image
picker, and specify the location of the UI component that
invoked it.
86. AIR 3.0
CameraRoll Support for iPad—
PhotoPicker appears as a floating panel positioned relative to
the UI component that invoked it.
With the addition of the CameraRollBrowseOptions class,
developers can choose the size and position of the image
picker, and specify the location of the UI component that
invoked it.
http://blogs.adobe.com/cantrell/archives/2011/08/how-to-correctly-use-
the-cameraroll-api-on-ipads.html
89. AIR 3.0
Encrypted Local Storage for Mobile —
Extends encrypted local storage (ELS) support to mobile
devices. Allows applications to more securely store sensitive
data on a user's device, enabling support for storage of sensitive
data such as passwords, certificates, and auditing information.
92. AIR 3.0
Encrypted Local Storage for Mobile —
• Each Adobe AIR application has its own encrypted local store.
93. AIR 3.0
Encrypted Local Storage for Mobile —
• Each Adobe AIR application has its own encrypted local store.
• The encrypted local store can only be accessed from the
application security sandbox.
94. AIR 3.0
Encrypted Local Storage for Mobile —
• Each Adobe AIR application has its own encrypted local store.
• The encrypted local store can only be accessed from the
application security sandbox.
• Adobe AIR uses DPAPI on Windows and Keychain on Mac OS
and iOS.
95. AIR 3.0
Encrypted Local Storage for Mobile —
• Each Adobe AIR application has its own encrypted local store.
• The encrypted local store can only be accessed from the
application security sandbox.
• Adobe AIR uses DPAPI on Windows and Keychain on Mac OS
and iOS.
• Data stored in the encrypted local store is not encrypted on
Android; instead, the data is protected by Android's user ID-
based filesystem security. This means that on a "rooted" device,
other applications running with root privileges can access data
stored in the ELS.
96. AIR 3.0
Encrypted Local Storage for Mobile —
• Each Adobe AIR application has its own encrypted local store.
• The encrypted local store can only be accessed from the
application security sandbox.
• Adobe AIR uses DPAPI on Windows and Keychain on Mac OS
and iOS.
• Data stored in the encrypted local store is not encrypted on
Android; instead, the data is protected by Android's user ID-
based filesystem security. This means that on a "rooted" device,
other applications running with root privileges can access data
stored in the ELS.
• Data is encrypted to the local store using AES-CBC 128-bit.
99. AIR 3.0
Encrypted Local Storage for Mobile —
• Ne permet pas de protéger les données des autres processus
exécutés sous le même compte utilisateur.
100. AIR 3.0
Encrypted Local Storage for Mobile —
• Ne permet pas de protéger les données des autres processus
exécutés sous le même compte utilisateur.
• N’est donc pas approprié pour protéger les données secrètes
d’une application, notamment les mots de passe DRM ou les
clés de chiffrement.
101. AIR 3.0
protected function storeLoginData():void{
if (userid.text!=null) {
var pwBytes:ByteArray = new ByteArray();
pwBytes.writeUTFBytes(password.text);
EncryptedLocalStore.setItem(userid.text, pwBytes);
...
}
...
}
protected function retrievePassword():void{
...
if (userid.text!=null && userid.text.length>0) {
var storedValue:ByteArray = EncryptedLocalStore.getItem(userid.text);
if (storedValue!=null) {
password.text = storedValue.readUTFBytes(storedValue.length);
this.chkRemember.enabled=false;
}
else {
erase();
log.appendText("No stored data found for userid: " + userid.text);
}
}
...
}
102. AIR 3.0
protected function removeLoginData():void
{
if (userid.text != null && userid.text.length>0) {
EncryptedLocalStore.removeItem(userid.text);
}
...
}
http://blogs.adobe.com/cantrell/archives/2011/10/secure-data-persistence-with-
air-3.html
103. AIR 3.0
protected function removeLoginData():void
{
if (userid.text != null && userid.text.length>0) {
EncryptedLocalStore.removeItem(userid.text);
}
...
}
http://devgirl.org/2011/09/22/flex-mobile-development-encrypting-data/
http://blogs.adobe.com/cantrell/archives/2011/10/secure-data-persistence-with-
air-3.html
104. AIR 3.0
protected function removeLoginData():void
{
if (userid.text != null && userid.text.length>0) {
EncryptedLocalStore.removeItem(userid.text);
}
...
}
http://devgirl.org/2011/09/22/flex-mobile-development-encrypting-data/
you will need to add the compiler argument -> -swf-version=13
to any projects you build that use this.
http://blogs.adobe.com/cantrell/archives/2011/10/secure-data-persistence-with-
air-3.html
105. AIR 3.0
Flash Access Content Protection Support for Mobile —
Flash Access content protection support is now available on
mobile devices.
106. AIR 3.0
Qu'en sera t-il des contrôles du son via la barre multitâche d'iOS ?
107. AIR 3.0
Native Extensions for AIR (ANE) —
Developers can create and use ActionScript libraries with native
code to take advantage of the same platform- and device-
specific native capabilities and APIs available to native apps,
with easy integration into AIR applications.
http://custardbelly.com/blog/2011/09/21/air-native-extension-example-ibattery-for-ios/
http://www.adobe.com/devnet/air/articles/extending-air.html
Android Native Extensions - Part 2 : http://gotoandlearn.com/play.php?id=149
http://renaun.com/blog/2011/09/why-native-extensions-for-air/
Using native extensions for Adobe AIR : http://www.adobe.com/go/
learn_using_native_extensions_in_apps_en.html
108. AIR 3.0
Native Extensions for AIR (ANE) —
http://www.adobe.com/devnet/air/native-extensions-for-air.html
109. AIR 3.0
AIR3 mobile ne supportera malheureusement pas
l'acceleration GPU de Stage3D (et donc Starling).
112. AIR 3.0
Comment utiliser AIR 3.0 ?
Update to the AIR 3.0 namespace.
If your application does not require the new AIR
3.0 APIs and behavior, you are not required to
update the namespace.
113. AIR 3.0
Comment utiliser AIR 3.0 ?
Update to the AIR 3.0 namespace.
If your application does not require the new AIR
3.0 APIs and behavior, you are not required to
update the namespace.
However, we recommend all users start using the
AIR 3.0 namespace even if you are not yet taking
advantage of the new 3.0 capabilities.
114. AIR 3.0
Comment utiliser AIR 3.0 ?
Update to the AIR 3.0 namespace.
If your application does not require the new AIR
3.0 APIs and behavior, you are not required to
update the namespace.
However, we recommend all users start using the
AIR 3.0 namespace even if you are not yet taking
advantage of the new 3.0 capabilities.
<application
xmlns="http://ns.adobe.com/air/application/3.0">