Colin, 

This is a fantastic overview of the problem! Do you mind if I make these links 
available to my students? We are studying how to make mobile apps with LiveCode 
this semester, and the different resolutions are a major issue.

Thanks for this.

Regards,

Devin


On Feb 28, 2013, at 1:56 PM, Colin Holgate wrote:

> I know quite a bit about showing content at a size that is different to the 
> original document size, everything I make in Flash uses that ability, it lets 
> me make a single file that works for all existing mobile screens. But, it 
> would be easy for most people to not understand what resolution independence 
> is, or what the benefits are.
> 
> What it is not: Something that will automatically layout your interface, 
> using different styled buttons, or different arrangements of controls. If 
> you're doing an app that needs different layout for portrait and landscape, 
> or different buttons for small screens compared to large screens, then that's 
> more like the current geometry manager, plus some code logic.
> 
> What it is: The ability to layout your app with a given aspect ratio, and 
> then have that layout fill a device screen of the same ratio, even though the 
> device is a different pixel size.
> 
> For example, if you want to create an app that works for all iPads in 
> landscape, you could layout the card as a size of 640x480, and that card 
> would fill the 1024x768 iPad 1 & 2 screens, and the 2048x1536 iPad 3 Retina 
> screen.
> 
> If you wanted to design for iPhone, but couldn't bare working at 480x320, you 
> could work at a comfortable 960x640 and have an app that is immediately 
> correct for iPhone 4 Retina, and would still exactly fill an iPhone 3gs 
> screen.
> 
> Now, those are the simple cases for resolution independence, there are more 
> exceptions to the above examples than there are cases that are so convenient.
> 
> Suppose you want, as an obvious case, to support the full width of the iPhone 
> 5 screen, as well as the iPad screen. You could have 960x720 of content, 
> which would scale to exactly fill the iPad screen, and you would accept the 
> fact that empty areas would appear on the iPhone 4 and even more empty space 
> on the iPhone 5.
> 
> That's not ideal though, so instead you might have extra content that extends 
> beyond the left and right of the card window. On iPad you would never see 
> that extra content, but on the other screens you would.
> 
> To achieve that the resolution independence system would need to be able to 
> place the card centered on the device screen, currently it's always at the 
> top left of the device screen.
> 
> Another solution to the problem is to allow the wider screen device to cut 
> into the top and bottom of the card window. In that case you would have 
> content near the edges that was not vital, and if it didn't appear on the 
> iPhone 5 screen it wouldn't matter.
> 
> There may also be cases where you want the card to remain at 100 percent 
> size, but be centered on the screen, whatever size it is.
> 
> Here are some examples of how all that resizing and aligning might look. In 
> each one you will see some lines. The red lines represent the iPad ratio, the 
> green lines are iPhone, and the blue liens are iPhone 5. Incidentally, this 
> all applies to Android too, where the narrowest Android is the same as the 
> iPad, and the widest is the same as the iPhone 5. Open the links and do 
> window resizing to simulate different device screens.
> 
> 1. Top left alignment, and no scaling. This is identical to how LiveCode 
> works currently. You would have to do all layout management with code. Try 
> resizing the window and you'll see that more content is revealed to the right 
> and bottom:
> 
> http://xfiles.funnygarbage.com/~colinholgate/rev/topleftnoscale.html
> 
> 2. Centered, no scaling. I can't immediately think of a good usage case for 
> this one, other than maybe you have a backdrop image that works better when 
> its centered:
> 
> http://xfiles.funnygarbage.com/~colinholgate/rev/noscale.html
> 
> 3. Show all. In this one the content is resized to fill the window, and in 
> doing so it makes sure that all of the card window's content is visible, 
> doing that by revealing extra content area. In this case that extra area is 
> empty, but it need not be:
> 
> http://xfiles.funnygarbage.com/~colinholgate/rev/showall.html
> 
> 4. No border. Again, the content is scaled to fill the window, but this time 
> it's at a size that makes sure you don't see any empty areas. The content 
> will be cropped on either the left and right, or the top and bottom, 
> depending on how narrow you make the window:
> 
> http://xfiles.funnygarbage.com/~colinholgate/rev/noborder.html
> 
> 5. Exact fit. Here the card window is squished to exactly match the device 
> screen. I can't think of ANY usage case for this! But, for completeness here 
> it is:
> 
> http://xfiles.funnygarbage.com/~colinholgate/rev/exactfit.html
> 
> The scale modes I use the most are Show All and No Border. But then I mainly 
> do graphical scenes, and not control filled utility applications. If you are 
> doing those sorts of things you could use code to do the general layout for 
> all aspect ratios, from 4:3 through to 16:9, and then let the Centered No 
> Scale mode or Top Left No Scale modes take care of the different pixel 
> dimensions.
> 
> Please let me know if I need to go not more detail!
> 
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

Devin Asay
Office of Digital Humanities
Brigham Young University


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to