Skip to main content
Inspiring
March 8, 2012
Answered

How/when will AIR support the new iPad?

  • March 8, 2012
  • 10 replies
  • 18309 views

I believe that the following will be needed:

- new placeholders in app xml for the new iPad retina icons

- a mode that will allow the content done in 'non-retina' iPad to be viewed on new IPad (like the tag that makes iPhone 4 to fill 4 pixels and be used as the iPhone 3)

- a simulator for all AIR environments, which allows the visualization of the iPad retina display (I guess it will have to have scrollbars for the first time in a mobile phone simulator, since the height is going to be 2048 pixels 😮 )

- anything left on the list?

This topic has been closed for replies.
Correct answer RichardLord

To avoid breaking apps that are not designed for the iPad's new retina display, apple only enable the full retina resolution on apps built with the iOS 5.1 SDK or later. So, to enable the higher resolution on your air app, you have to use this version of the SDK when compiling your app. You can only so this on a Mac with Air 3.1 or later. Use the -platformsdk compiler setting to point to the iOS 5.1 SDK and set the requestedDisplayResolution to high. Then you'll get the higher resolution.

10 replies

Known Participant
March 19, 2012

Success!  So after including Adobe's sample vibration Native Extension (here) in the build and setting the requestedDisplayResolution to high, I am able to use Flash Builder 4.6 to build retina enabled iPad apps.  Thanks RichardLord for the help.

Inspiring
April 11, 2012

Actually, with OS 10.7, FB 4.6, AIR 3.1, the thing works without having to "fake" the usage of ANE, you just have to include one in your package without using it in your code.

iPad goes to HD by simply choosing the "requestedDisplayResolution" (set to high) and by including any ANE in the package, but no need to instantiate it.

However, even with this trick, we cannot say AIR supports the new iPAD yet.

Things that are missing:

- Capabilities.screenDPI is still 132 (a mess for media-related CSS since ScreenX can only be used runtime, not in CSS - and for MultiDPI bitmaps).

- tabbedviewnavigator is NOT optimized for the ipad. top bar and bottom bar are not proportional to the new display...

- fonts are rendered proportionally (meaning a 16 font will render as an 8) whereas there should be a method to render the same font with more pixels on the iPad HD.

On the bright side:

- iPAD HD is faster than iPad 2 in all kinds of writing and drawing.

Participating Frequently
July 15, 2012

hi.. does anyone know what needs to go in the descriptor file to support high res on iphone but standard res on ipad?

Known Participant
March 19, 2012

RichardLord, I can confirm that running the identical test I posted above using AIR 3.1 but using the command line instead of Flash Builder produces a retina version of the app.  I am going to try out making a placeholder native extension and see if that will force Flash Builder to include the -platformsdk line, which I am presuming is being left out.

Thanks for the blog post.  Great info.

Adrian

Known Participant
March 18, 2012

RichardLord; I'd like to hear your exact process as I will go try this week on a mac.  For whatever reason acrowne doesn't seem to have it working--so maybe there are more details.  Do you use the SWF directive like: [SWF(width="1024", height="768")]?

Also--and this is probably a different topic--but wouldn't you get the best performance if you took your vector graphics and make bitmaps (scaled properly for the target)?  Maybe that's just not worth the pain--but I'd think it'd improve performance.

Yes, I think we're stuck on the icon sizes.  Hopefully Adobe can come up with a patch soon.  The fact RichardLord can make it work makes me believe it's possible for adobe to update the magic stuff that makes it possible to deliver in the first place.

Known Participant
March 19, 2012

I am double posting at this point to two discussions on Adobe Forums, so apologies to followers of both.

Reading Adobe's support materials, I gather that in the Native Extensions dialog, setting the Apple iOS SDK is the equivalent of setting -platformsdk. So I set that value to point to my copy of the iPhoneOS5.1.sdk.  Below is my sample project code.  In the application descriptor file, the only thing I changed from the default is my project id to match the provisioning profile and adding <requestedDisplayResolution>high</requestedDisplayResolution> to the iPhone xml tag.  I tested this out on my iPhone 4 and it worked great.  On the new iPad only the top corner of the image appears on the screen because of the scale.  I am using AIR 3.1, so unless the 3.2 beta includes a fix, it seems that Adobe needs to produce an update before AIR supports the new iPad's display.  Please tell me if you find anything I missed.

package

{

          import flash.display.Sprite;

          import flash.display.StageAlign;

          import flash.display.StageScaleMode;

          import flash.display.Bitmap;

          public class RetinaTest extends Sprite

          {

                    [Embed(source="bgd@2x~ipad.png")]

                    private var bgdImg:Class;

                    private var bgd:Bitmap;

                    public function RetinaTest()

                    {

                              super();

  // support autoOrients

                              stage.align = StageAlign.TOP_LEFT;

                              stage.scaleMode = StageScaleMode.NO_SCALE;

                              bgd = new bgdImg();

                              addChild(bgd);

                    }

          }

}

Participating Frequently
March 19, 2012

I confirmed my test this morning. Specifying the iOS 5.1. sdk in the platformsdk setting works. I wrote a blog post with details of the test - http://www.richardlord.net/blog/using-the-ipad-retina-display-with-adobe-air

acrowne - Don't know why yours doesn't work. All I can think is perhaps Flash Builder ignores the platform sdk if you don't have any native extensions that need it.

Known Participant
March 18, 2012

I too have tried the high requestedDisplayResolution, latest AIR, -platformSDK linked to IOS 5.1, NO_SCALE setting, and high-res artwork, but it continues to resize my artwork as if I had a 1024x768 screen.  And also, there is no support for the retina iPad icon (144px), although the retina iPhone icon (114px) seems to do pretty well.

Participating Frequently
March 17, 2012

ok me back in here

I updated (overlayed AIR SDK to 3.1 v14 I hope? dont know how to confirm that but XML file changed) I seted HIGH settings for quolity and rebuild the test vector screen and still getting crappy results.

XML:

  <iPhone>

    <InfoAdditions>

            <![CDATA[<key>UIDeviceFamily</key><array><string>2</string></array>]]>

    </InfoAdditions>

    <requestedDisplayResolution>high</requestedDisplayResolution>

  </iPhone>

Canvas Size: 2048*1536

Can some one get something better?

Known Participant
March 17, 2012

I've done some tests now and believe RichardLord has mapped a solution--but I'm curious the EXACT behavior.  I can see using the current 3.1 out of the box (with CS5.5 or FlashBuilder) the 1024x768 is just stretching and certain pixel images can definitely look worse on iPad3 than iPad2--which is scaled at 1.0.  For bitmap images the scaling with smoothing works fine.  I guess my thought is some projects don't require you take full advantage of the new size.  I'd like to know the answers to a couple concerns:
--if I wait at least until I have a mac to test on what is the EXACT behavior?  Can you  reliably grab the stage.stageWidth?   Using the current tools it gives me 1024. 

--I have projects where I'm recycling previously scaled graphics--as small as 800x600.  I've been planning on scaling them myself using smoothing.  I suppose if stage.stageWidth works as I expect it'll be easy.

I'm not ready to convert to mac but think I need to order at least a mac mini.

Participating Frequently
March 18, 2012

phillipkerman - I only built the project I am currently working on. The difference when compiling against iOS 5.1 was distinct with vector graphics clearly rendered at a higher resolution than when compiling against iOS 5.0 or when running on an iPad2. I didn't have time to do more and the iPad is at work so can't investigate further today.

Participating Frequently
March 18, 2012

what is Platform SDK and how you select witch iOS you wnat to use it for?

Participating Frequently
March 17, 2012

I will overlay to 3.1 /3.2 SDK for windows and see results, if nothing good will do the same for mac.

To other posts, if you have your sample project then send me the file i will compile it or compile file and give me provisioning profile so we know you di it righ and dont relay on my curently 2.6 SDK system

and resolution was 2048*1536, and i use Flash 5.5

RichardLordCorrect answer
Participating Frequently
March 17, 2012

To avoid breaking apps that are not designed for the iPad's new retina display, apple only enable the full retina resolution on apps built with the iOS 5.1 SDK or later. So, to enable the higher resolution on your air app, you have to use this version of the SDK when compiling your app. You can only so this on a Mac with Air 3.1 or later. Use the -platformsdk compiler setting to point to the iOS 5.1 SDK and set the requestedDisplayResolution to high. Then you'll get the higher resolution.

User Unknow
Legend
March 17, 2012

If you want to complie 5.1 sdk - you need previusly install it. Right?

Looking on adt for compiling - it's use also on Windows files from xcode. Right? so we ca simple copy this files

Participating Frequently
March 17, 2012

ok so i guess its 50/50 so far. stretching to big screen works fine but native resolution does not seam to be supported. Meaning i see pixilization on side of the image. if vector is used it should not be a problem (i guess)

for testing i used high res images from here: http://www.zastavki.com/eng/Motocycles/Harley_Davidson/wallpaper-12206-18.htm just to give proper credit to who ever did the image

So for 1st test i used regualr ipad resolution 1024*768 i used HIGH res setings and placed 1280x800 photo obviously it got cut off, some side of the modules pixelazied but oveall model is ok no big digtortion

Next i inputed resolution to be 2048*1536, image now fully fits in, so i would expect it to be rendered nicely on large canvas yet i have same ordrder pixilization (ani alising needed i guess) I may be a bit picky but i consider interface by Apple to be perfect and our image that seams to be well rendering (externally) gets dissorted


Anyway here is snapshot

Now, lets play with bigger resolution  image... i used 1920x1200 resolution source image and HD canvas. Got image to be displayed almost full screen but sides of the images are not that perfect again.

Now i figure that print screens may not shto artifacts of renderings so i took some photos

As you can see around (5) has sitortion even though there is no on original image. This is photo of last test in HD mode full screen large image.

Here is another one

So my conclusion so far, is that 1024*768 and 2048*1536 have sa,e result in both case there is some sort of stratching and smoothing applied by player. Logically higher resolution images should look better on "new ipad" but i did not see that in my test.

Maybe i did something wrong but taht what I have so far! Any comments ideas? Lets get this thing to have perefect output... maybe you have other test assets?

Participating Frequently
March 17, 2012

ok me again i found betetr way to do testings

here it goes: snapshot of Apple Store and then we use that hanp shot as image for our app and snap shot of that ... see how quolity gets degraded. For example if you look at the Twitter bird shape, in original one it is crystal clear and in "remake" its pixilized on sides.

Aslo for any crazy reasonsnapshot of Apple store is 2Mb in size and snapshot of same image inserted in AIR app is 900kb WOW, seams like we really missing some pixels there

Any idea how to fix that quick without waiting on Adobe? For the record tjough, im usung Air 2.6

Participating Frequently
March 17, 2012

and one more test that killled me

atathed is vector shapes drawn in flash i thought vector obkects should scale perfectly but they are not, i have perfectly scalable object on my desctop and terrible output on iPad 3 (although gradient came out pretty good)

Hope we find way to fix this

Inspiring
March 8, 2012

I would rather ask IF it will be supported at all in 2012...

From what we know by waiting for the iPhone4 I would say it takes about three month - at least. This time it should be pretty easy to enable this, since they know everything from the 3gd to iPhone4 switch, but I think that the team is mostly working on Android devices and iOS is something they are doing in their sparetime...

It is so sad that it seems like there is only a very small team working on this project at Adobe, though this could really be something special and good, but I switched to Xcode to ensure that projects don't rely on a totally wierd upgrade timetable (for example look at the problems with the languages and how long it takes to fix this for Adobe, or how long it took to use Game Center etc.). I know of a lot of developers who switched to Xcode and just work with Air before developing to make quick sketches, though even this might chance since the new Xcode features. I really like working with Flash, but it is getting harder and harder with each new iOS or device update since the Air updates are out of synch and much to slow for new (and often small) new features and the last updates were always incorporating new bugs. So it is tough to use then instandly.

Participating Frequently
March 8, 2012


josholm wrote:

It is so sad that it seems like there is only a very small team working on this project at Adobe, though this could really be something special and good, but I switched to Xcode to ensure that projects don't rely on a totally wierd upgrade timetable (for example look at the problems with the languages and how long it takes to fix this for Adobe, or how long it took to use Game Center etc.). I know of a lot of developers who switched to Xcode and just work with Air before developing to make quick sketches, though even this might chance since the new Xcode features. I really like working with Flash, but it is getting harder and harder with each new iOS or device update since the Air updates are out of synch and much to slow for new (and often small) new features and the last updates were always incorporating new bugs. So it is tough to use then instandly.

That's exactly how i see it.
I saw one of the promo videos for making ios apps months ago and thought; "Wow! That would be awesome, work with Flash wich i've done the past 12 years and make cool ios apps!".

About 2,5 months down the app-road enthousiasm has been replaced with discouragement...

Inspiring
March 14, 2012

If you're using Flash, it's a setting in the iOS settings, General tab. If you're using the command line, or Flash Builder I guess, then look for this in the app-descriptor xml file:

That setting would be 'high' if you want the Retina display to be used, or 'standard' if you want it not to use Retina resolution.

At least a couple of us will know on Friday whether that setting works for the new iPad like it does for the iPhone 4 and 4S.


Hi Colin,

Thanks for sharing any experience you will have with the new iPad. In Italy it will come on the 27th but it will be impossible to get it before a couple of weeks' queue I'm afraid.

My opinions on how the "requestedDisplayResolution" could work in HD iPad:

In Flash Builder 4.6 standard, the "requestedDisplayResolution" tag works like so, with the iPhone:

- "high" requestedDisplayResolution tag allows us to address all new pixels as in iPhone 4 retina (you have a 960x640 screen you can use pixel by pixel)

- no "requestedDisplayResolution" tag makes the iPhone 4 screen equivalent to an iPhone 3Gs  (you have a 480x320 screen). AIR "fills" the pixels automatically with a ratio of 4:1. One attention point is that the onscreen simulator shows the retina screen resolution even when the appdescriptor is missing: you see the 3g-like screen in the iPhone 4s only when app is sent to device.

I think that the same *could* work for iPad HD:

- "high" requestedDisplayResolution *could* allow the application to address all new pixels (you'd have a 2048x1536 screen to deal with)

- no requestedDisplayResolution  tag *could* make the iPad  retina screen equivalent to an iPad 2  (you'd have a 1024x768 screen to work with). AIR could "multiply" the pixels automatically with a ratio of 4:1

But will it?