Building apps for multiple devices
- 1. Building Apps for Multiple DevicesTerry RyanDeveloper Evangelisthttp://terrenceryan.com@tpryan
- 3. PollHow many have done native mobile?How many have done mobile AIR?How many have done mobile AIR with Flex?How many have done it for multiple platforms?
- 4. You can do cross platform mobile development with Adobe AIR!!!
- 6. We a wrote very good demo project. Actual mileage may vary.
- 9. My goal: give you guys an idea of what you need to do to actually produce multi-screen apps
- 21. Application DPIThis is the DPI of the device you are targeting in developmentAllows for resizing to denser devices
- 24. Media Queries@media all and (application-dpi: 160){s|Button {color: red; }}@mediaalland (application-dpi: 240){s|Button {color: green; }}
- 26. Personal Thought on OS Media QueriesDon’t do itif you want to keep a unified code baseHandle Density and screen size, but not OS
- 29. ActionScript OnlyRoll your own looking at:stage.fullScreenWidthIn development I’ve had issues with stage.stageWidthCapabilities.screenDPI
- 38. But what about differences between UI controls IOS vs Android vsPlayBook
- 46. Android Custom URIAllow web pages or other android apps to launch your app from a url when the application is installed.
- 47. Android Custom URI<activity> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="myURI"/> </intent-filter> </activity> URL would be:myURI://com.myApp.uniquenameWhere com.myApp.uniquename is the app id from your descriptor
- 50. Android Instal Location <android> <manifestAdditions> <![CDATA[ <manifest android:installLocation="preferExternal"/> ]]> </manifestAdditions> </android>
- 59. AIR VersionsThere are some issues with AIR version and targetBlackBerry - 2.5Android - 2.6IOS -2.6, or 2.0 or 2.7
- 60. But that’s hard set<applicationxmlns="http://ns.adobe.com/air/application/2.6">
- 64. Compiling and PackagingFlash Builder uses features that are accessible through command line tools Often using those toolsTherefore before it can be a feature in Flash Builder, has to be available in command line
- 65. Flash Builder vs Command lineFlash Builder will often lack ui that the command line exposesSo it behooves you to learn command line
- 70. CompilingRequires MXMLCIn ANT requires MXMLC TaskDespite the name, works for non MXML apps. Doesn’t add the Flex Framework or anything either.
- 75. Application DescriptorMost have a line: <content>[This value will be overwritten by Flash Builder in the output app.xml]</content>It won’t so you have to.
- 85. Packaging for BlackBerry-package - command to package -target (bar|bar-debug) - target format bar or bar-debug -connect <host> - host ip address for debugging -no-validation - turn off air and bar validation -list-files - list all files in the resulting package -env <var>=<value> - set an extra environment variable for the runtime -barVersion <version> - run in compatibility mode (set older version to be compatible with) -publisher - set the publisher (author) name -buildId - set the build id (4th segment of the version) -devMode - package in development mode<signing options> (part of packaging options): -signDev - command to sign with developer's certificate -keystore <store> - keystore file -storepass <pass> - store password for certificate store -signRim - command to sign by rim (requires internet connection) -cskpass <pass> - password to encrypt long-lived keys<deployment_options>: -installApp - command to install the package -launchApp - command to launch the app -device <deviceId> - set host name or IP address of the target -password <password> - device password
- 92. Is your app your competitive advantage, or a cost center?
- 95. Follow up?Feel free to contact meterry.ryan@adobe.comhttp://terrenceryan.comTwitter: @tpryan