Xcode 6.1.3 can't change simulated screen size - xcode

Using Xcode 6.3.1 I needed to simulate sizes to make the app compatible with older devices, I went to menu just to find that I can't select different screen sizes.
What am I missing?
EDIT
Another project, this time using size classes:
This option makes the entire storyboard use a specific screen size so I can see what is happening at design time
Maybe this is intended? To make people use size classes?

So, after some time (almost a year) I still haven't found a solution. The new preview is supposed to replace the old "Simulated Screen".
This is how you enable it:
And this is how you add any number of devices side-by-side:
The reason they added this is because you can now see many resolutions at the same time and see better what you build and how it will look in the various devices available.
I don't agree with that, I still miss the "Simulated Screen". I think it was a better solution, but they removed. We have to deal with it.
Before this turns into a race to see who gets the bounty I'm going to close this.
#mcatach : Thats not the point. Xcode before 6.3.1 allowed you to see your storyboard in the interface builder with the device size you wanted. So we could use size classes and see in a particular resolution how it should look.
#aman.sood : This wont do. Changing the development target will not do anything to the interface builder, only remove size classes on older targets. Preview helps, but could be better. Using actual device is required to publish but it's not a solution to see different resolutions, that would mean you need at least 6 devices (7 with iPad mini).

Couple of things you can do
Use Xcode by setting active schema for different devices like iPhone 4,iPhone 6s etc. But these drop down option will be available as per your deployment target settings selection
Second option is to use Preview in Xcode. That will provide you with different configuration without running your app. Check out this video for more details.
And last is to use actual device which only one uses when there is device specific issue.

When you're using size classes you will not see specific resolutions sizes. You need to design your screens based on global sizes (Compact/Regular/Any). You can use Any to fit any possible height/width.
So, my advice is to decide if you want to support iPhone and/or iPad, and then start to draw your screens.

Related

Minmizing OpenGL app while preserving EGL Context results in HUGE PROBLEM

I'm using opengl es 3.0 API with the android studio ndk to create apps.
But I've encountered a very huge problem. I've created a demo app, all it does it change the background color of the screen from white to black and vice versa, every frame. And so when I go to minimize this app, I still see it rendering the background, mostly at the edges of the screen, and not in full color but still very strongly apparent. And it doesn't go away when I close the app, when I restart the device, or when I run "kill apps" on it. Only a factory data reset fixes the issue, so it's not easy for me to debug this.
This is the relevant code that I'm using for when the app is minimized and receives the APP_CMD_TERMINATE event:
eglMakeCurrent(engine->display,EGL_NO_SURFACE,EGL_NO_SURFACE,EGL_NO_CONTEXT);
eglDestroySurface(engine->display,engine->surface);
engine->display = EGL_NO_DISPLAY;
engine->surface = EGL_NO_SURFACE;
I've error checked that eglDestroySurface() is successful.
And I've put debugging messages in to make sure that the main draw loop is NOT executing when the app is minimized. But the problem persists and I don't know what to do about it. Thanks for any help.
UPDATE: well, no one has responded, and I still don't know what to do. Could it be related to threads?
UPDATE: Still can't determine what it is, but for some reason it's messing with the System UI. Willing to upload my entire source code somewhere if someone would be willing to go through this with me, as I'd really like to be able to continue working on my game engine.
Is it the "Strict Mode" developer option on the device settings, perhaps?
That one flashes the screen if an app is blocking.
It would explain why a factory reset changes behaviour.
The answer is not a solution here. The above comment by the user columbo was correct.
I've demoed switching from black to white at high framerates on 3 different android devices, and also my Linux Desktop, all via the openGL api, and it has exhibited this issue on all the devices. So what he said must be correct: this is a problem with LCD monitor technology itself. Interestingly, doing completely random colors does not cause this problem.

Configure platform page with platform specific options

We've begun evaluating Xamarin for a up and coming project involving both iOS and Android, with the overriding intention to produce a single UI layer (and some share code, obviously) (I'm also new to C#)
TL;DR
I've begun exploring Xamarin on iOS. I started with the Phoneword example and it worked well enough.
The first issue I found was running the code on the iPhone X, which I was able to solve by using MainPage.On<Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true); in the platform App class
While testing this, I noticed some issues with the ListView not scrolling properly (the core issue was actually with the platform padding).
I then used (MainPage as Xamarin.Forms.NavigationPage).On<iOS>().EnableTranslucentNavigationBar(); to enable translucent navigation bars (as we're targeting iOS 11+) and now everything appears under the navigation bar.
This is easily fixed in xCode and after some research I've found that I need to be using UIKit.UIViewController.EdgesForExtendedLayout Property, the immediate problem I'm facing is, the only "snippets" of code I can find are from the View is displayed under status bar in iOS 7 and EdgesForExtendedLayout doesn't help forum post.
Issue at hand...
The example solution snippets posted seem to be making use of a platform (iOS) specific solution. The problem is, I want to keep using the "cross-platform" code in the "platform" project and simply provide some custom configuration for the iOS platform which can apply these states.
I understand it could be possible to use a renderer, but this seems to counter-interactive, as I'd need one for both iOS and Android, where the platform page is doing just fine as it.
I understand that I could setup a DependencyService, but this seems annoying to have to include a specific "configuration" service just to solve this issue for iOS
I was hoping it might be possible to setup a iOS Page which would "override" some of the functionality of the platform page and would allow me to make use of things like viewDidLoad so I can apply the iOS specific configurations on a page by pages bases, so we could keep the platform page as it, but when running under iOS, it would provide me access to iOS life cycle of the actual view...
I've been trying to search the documentation and tutorials and haven't yet come across anything which would seem to do this or something similar (not to say there isn't one, but I'm just not finding it).

Xamarin Forms - Magnified UI Issue

My company has just started a new development project using Xamarin Forms. The app looks great on most Android devices but on certain devices the whole app appears magnified. The font is huge, icon resolution looks poor and even the device time, connection, battery life, etc looks magnified.
Has anyone come across this before and did you find the cause?
Appreciate the help!
Will
I think that the problem is related to devices performance and it's not related with the app if problem are battery life , connection and device time , but if you talk about some poor UI you need to check your resolution folder in android or if you use default android theme so it will not look good for old android versions
Before developing the android application you should consider the below things.
1. You should take care of DPI mechanism for different device - For UI issues
2. The child hierarchy level should not exceed 4 to 6.
3. You should not create the objects inside the ondraw method.
4. Don't layout the base at all the times.
5. Inside ondraw, don't use any looping mechanism.

Adding screenshot in iTunes Connect without real Device

I am about to submit my app in iTunes connect.
Now it is asking me for screenshots for a 3.5-inch, 4-inch, 4.7-inch and 5.5-inch.
Since I coded it in swift I guess I can skip the 3.5inch part?
But my question is: I only have an 4-inch device available. How can I add the screenshots of the 4.7 and 6inch? maybe with the simulator?
Thank you
In the iOS Simulator File > Screenshot
That saves a screenshot to your desktop.
Simulator should be fine. You can edit it using Sketch, I found it really helpful.
I tried a few different methods, and what worked best for me in a short amount of time was to capture screenshots in the iOS Simulator at 100% scale and then resize them using GIMP, which is free unlike Sketch.
If you're in the business of creating screenshots for many devices, across locales or with frequent screenshot update needs it's best to look into automation with tool like Snapshot.

Creating Universal UI files

Is there any tutorial available for creating Universal UI which can run on iPad as well as iPhone on different resolution. I tried looking in the official documentation, but couldn't find anything about UI files.
I notice you've tagged this question with Marmalade, so I'm assuming you are talking about how to write a Universal app in Marmalade? If so then creating a Universal UI is pretty much up to you to implement in the best way you see fit.
By default all Marmalade apps are Universal apps, though you can limit to iPad only with the MKB setting iphone-ipad-only.
Marmalade does come with the iwui module that allows you to lay out user interfaces with buttons and text boxes etc. but ultimately unless you have a very simple UI you'll need to either provide different UI layouts for each screen resolution/orientation you wish to support, or do some fancy laying out in code.
Apple wisely chose to persuade developers into creating separate UIs for iPhone and iPad since the one-layout-fits-all approach generally looks bad at any screen size.

Resources