Menu

Scaling from Iphone 5s to 6

Gordon
2014-12-08
2014-12-24
  • Gordon

    Gordon - 2014-12-08

    My app works great on iphone 5 compiled with xe6. When I install it on the new Iphone 6, it scales and looks great too. Zero code change..

    Now, Using xe7 Update 1.. My app does NOT scale on the Iphone 6. It is the size of Iphone 5..

    My question is.. 2 fold..

    1. Can I get the scaling work again? that is the easiest solution

    2. If not.. What do I do? look at the phone type at startup? then manually adjust every control? or do I make different screen layouts for each phone size? Ive only written phone apps since the Iphone 5 came out.. so I have no experience with diff screen sizes..

     

    Last edit: Gordon 2014-12-10
  • Sebastian Zierer

    Have you already installed this hotfix for XE7 Update 1?
    http://cc.embarcadero.com/item/30070

     
  • Gordon

    Gordon - 2014-12-10

    Yes, I installed this.. Then I built my app.. I assume it recompiled all of the FMX stuff.. Nothing changed..

    I think this fixes a diffent issue..

    My issue is .. with xe6.. it would AUTO scale or resize when installed on an Iphone 6.. Now with xe7.. it stays the size of an Iphone 5..

     

    Last edit: Gordon 2014-12-13
  • Diego

    Diego - 2014-12-13

    Hi Gordon:

    Are you using a custom Info.plist? If so, remove it and use the default one provided by XE7. (You can add your modifications later on)

     
  • Gordon

    Gordon - 2014-12-13

    Thanks for the idea.. If I make a very very basic app, with just one view and one button.. From scratch.. Its still doesnt scale..

    In Xe6, I make it for iphone 5.. scales to iphone 6 with no code changes..The button realigns, and it still in the center.. perfect scaling..

    In xe7, The button is off center when using iphone 6.

    I found this about using Iphone 6's .. doest this make any sense to anyone?

    "To let the system know that your app supports the iPhone 6 screen sizes, include a storyboard launch screen file in your app’s bundle. At runtime, the system looks for a storyboard launch screen file. If such an file is present, the system assumes that your app supports the iPhone 6 and 6 Plus explicitly and runs it in fullscreen mode. If such an image is not present, the system reports a smaller screen size (either 320 by 480 points or 320 by 568 points) so that your app’s screen-based calculations continue to be correct. The contents are then scaled to fit the larger screen."

     

    Last edit: Gordon 2014-12-14
  • Sebastian Zierer

    This means that iOS scales an application if it is not marked as compatible with the iPhone 6.
    If your application is compatible with the iPhone 6 it should provide a layout that is optimized for it. So create a layout for the iPhone 6 or use alignment and anchors.

     
  • Gordon

    Gordon - 2014-12-15

    The problem is our user base is about 75% Iphone 5.. but the new users Use Iphone 6..

    With Xe6, it worked perfect with both. With both phones having 6x9 screens.. it scaled perfectly.. I just cant seem to make it work right with XE7

     
  • Diego

    Diego - 2014-12-15

    My app resizes automatically and adapts to any device / resolution.

    I had to remove the custom Info.plist and I re-marked my app as iPhone and iPad compatible.

    Here you are a screenshot in a iPhone 6 Plus.

    My environment:
    XE7 + Update 1 + Resize Bugfix

     
  • Gordon

    Gordon - 2014-12-15

    Well , good news and bad news.. the good news is I got my app to work right.. The bad news is Im still not sure how I did it..
    At least I can say goodbye to XE6 for my app..
    But when I create a new app, I still cant make it scale right..

    Ive tried using the the default deployment (plist) and also making my own.. Ive gone to the form properties, then formfactor/devices and checked Ipad..

    Ive tried a DPF app, and a normal Firemonkey app.. same issue..

    I cant make it scale.. Im sorry to be such a pain, but this one is really making me pull my hair out.. It must be something so simple..

    When you appied the resize bugfix update.. did you have to do anything special? Shouldnt recompiling my app after do the trick? Am I missing something on the update? This whole thing is so weird..

    I will keep playing with it..

     

    Last edit: Gordon 2014-12-16
  • Gordon

    Gordon - 2014-12-24

    Ok, after painfully working on this.. I found a solution..

    I made a very simple hello world app. I copied the Project1.Info.Plist to my app folder. In deployment, I unchecked the default Project.Info.plist.. and added the one from my app dir.. Now, using a plist editor, i removed the references to the Iphone 6 and 6 plus.

    <dict>
    <key>UILaunchImageMinimumOSVersion</key>
    <string>8.0</string>
    <key>UILaunchImageName</key>
    <string>Default-736h</string>
    <key>UILaunchImageOrientation</key>
    <string>Portrait</string>
    <key>UILaunchImageSize</key>
    <string>{414, 736}</string>
    </dict>
    <dict>
    <key>UILaunchImageMinimumOSVersion</key>
    <string>8.0</string>
    <key>UILaunchImageName</key>
    <string>Default-Landscape-736h</string>
    <key>UILaunchImageOrientation</key>
    <string>Landscape</string>
    <key>UILaunchImageSize</key>
    <string>{414, 736}</string>
    </dict>
    <dict>
    <key>UILaunchImageMinimumOSVersion</key>
    <string>8.0</string>
    <key>UILaunchImageName</key>
    <string>Default-667h</string>
    <key>UILaunchImageOrientation</key>
    <string>Portrait</string>
    <key>UILaunchImageSize</key>
    <string>{375, 667}</string>
    </dict>

    Compile, and deploy. works great like it should with NO code change for Iphone 6

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.