This, the difference between rendering 1080p or 1440p is rather huge.
It's almost a miracle that the performance of the GS6 is so close to the iPhones, it has to render more pixels than both iPhone 6 variants combined.
Samsung GS6 : 2560 * 1440 : 3.7 Million pixels iPhone 6+ : 2001 * 1125 : 2.3 Million pixels iPhone 6 : 1334 * 750 : 1.0 Million pixels
(iPhones 6's don't render at their native resolution).
More bad than good. It means that the device renders more pixels than actually useful, before scaling the image down (which means wasted energy and performance); and it means that you can't have precise detail (as mentioned in the article, 1 pixel lines are not possible, they'll be a bit blurry).
However; if the resolution of the screen is big enough, the problem can be unnoticeable if you're not a design fanatic. Knowing Apple, this probably is the case here.
Edit: if you want more details about this, there's this interesting report by the folks behind Paintcode.
The 6 plus has to render about 2.7 megapixels while the regular 6 only has to render about 1.0 megapixels. Since they both have the same graphics processing power and the 6 plus has to render more pixels, it gets lower frames per second in apps that are demanding of the graphics processor (like 3d games).
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
The visible resolution isn't high but the iPhone 6s+ has to downscale the image to 1080p, in reality the iPhone 6s+ is literally trying to run two high resolution displays simultaneously which isn't an easy task.
Edit: Okay looks like idiots are down voting me, here's why it lags:
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
Maybe.... just maybe, this is more a limitation of the fact that the Plus is effectively rendering 2.7x more pixels than the 6, while utilizing the same hardware, might be causing some slow down. Really, until either there is no processor parity, or they simply put things up to par on the Plus series, you'll see better graphical performance from the 6 simply because it has less to render.
Just look at how many pixels that the 6 renders compared to the 6 Plus
It's not to do with parallax. To optimize for parallax I believe you are supposed to add 200px to the dimensions so it would be 2408 × 1442. For non-parallax I think the best would be 2208 × 1242 because that is the resolution the phone actually renders at, before downsampling to fit the screen. See here: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
The 6 plus should be at a 3x size, but instead it scales it down to 1080p. This means that the internal resolution is different from the display resolution.
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
What is misleading is how pixels vs. programmable dots are used in advertising.
Original iPad 1024x768 but Retina iPad double that. Awesome lets load up a web page and I get to see double the content right? Nope, you see the exact same amount of content on the Retina iPad. It sure is a lot clearer looking but you have no extra rows of data. When I program for the iPad I program in a dot address space of 1024x768.
Think of desktop days, 1024x768 seems pretty pitiful now doesn't it? It really is not that much room for today's content.
Go to a store and pick up a newer Android tablet. Maybe the 12" Samsung or even the second generation 7" Nexus 7. Pick up an iPad next to it, can be retina, non or even a mini. Open the same web page. How much more of the content do you get to see? It can be quite a lot. The pixel count might be less than what is advertised for the iPad but it is probably using a small font and showing more information on the Nexus 7 and a similar sized font with more information on a Samsung 12".
Just comparing pixel counts from Android or Apple specs does not tell you how much content you are seeing on the screen.
Even the iPhone 6+ has a ton more pixels than the original iPad but it can't show as much content as the original iPad. It is a 3x scaling so divide what they give in pixels by 3 to get what I get to deal with as a programmer.
See http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions if you are not believing me.
On an iPhone 6 Plus, iOS draws to a canvas that has a resolution of 1242p. The resulting image is then downscaled to 1080p right before it's displayed on the screen (since 1080p is the screen's resolution).
Any scaling by a non-integer multiplier (~0.87x in this case) involves interpolation when the image is resampled. Said interpolation (bilinear in this case) tends to blur the image a little. It's the same effect that can be observed if you have a Retina Mac that you run at a scaled resolution (i.e. not "Best for display").
Say the iPhone 6s Plus had a 1440p display. Its frame buffer would still remain at 1242p (for reasons mentioned in comments below). All that would change is that the scaling factor would now be ~1.33x instead of ~0.87x (slight upscale instead of of slight downscale). In the end you would still have interpolation (added blurriness) while still presenting an image that was originally drawn on a 1242p canvas. Having a 1242p display would be sharper since you would still present data from a 1242p framebuffer, but you wouldn't have any interpolation (no added blurriness).
It's because Apple is rendering everything on the display at 1242 × 2208 and downsampling to 1080 x 1920; the new app switcher exacerbates the problem. Displaying it straight at 3x would be fine, but all the transparency + downsampling is a recipe for disaster.
Downsampling actually reduces noise and other artifacts because you're taking something bigger and then shrinking it - moving the rendered pixels closer together.
It's not really just with iPhones or other mobile phones. I can make my PC games look crisper by enabling supersampling, which is a similar idea: render the image at a higher resolution, then downscale it to fit my screen. It does have performance costs though.
You can get a better explination here: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
and here: http://www.neogaf.com/forum/showthread.php?t=509076
> (the 6+ is their only phone ever to be 1920x1080)
It should be noted that in this context, the iPhone 6+ isn't 1080p.
It has a 1080 x 1920 panel, but the device renders a 1242 x 2208 image downsampled to 1080 x 1920.^[1]
TL;DR - If you really wanted to make pixel perfect graphics you'd create separate graphics entries and not rely on 2x, 3x for this.
Paintcode did a pretty good writeup on this: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
If you created a single image asset with a 2x and 3x versions. The iPhone 6 (and 4S, 5, 5S, 5C) would all try and load the 2x version, even though they aren't the same ratio.
The iPhone 6+ would load the 3x version.
Other thoughts:
Assets catalog aren't specifically aware of the devices you're building for. They also store more than just the 3-level graphics e.g. you've got more that 1x, 2x, 3x if you're creating an app icon entry.
You can actually already leave out 1x versions and make non-retina devices scale down big images. It isn't always great since the devices are already slower, but you said you weren't caring about the people trying to run this on their iPad 2.
The iPhone 6 Plus actually renders at 1242 × 2208 and then downsamples to 1080p, this results in a better picture quality. Also the developers just have to provide 3x assets, making development easier. Source
All Apple products tend to have a weird resolution. They only have two that would be considered 'standard'. The Retina iMac (5k) and iPhone 6 Plus (1080p). See on the Retina iDevices they actually scale up imaging by 2 or 3x from the original point count which the devs use for their apps. By actually putting a standard resolution display in the 6 Plus, it's caused more problems because now the image scales up 3x (first iDevice to do so) from the DPI (414x736) then down samples the rendered image (1242x2208) to 1080p. It taxes the GPU more then it should, but it's supposed to make developing apps easier for devs.
Are they print designers? Web designers? Are they freelancers (they're used to clients providing specs, or they have their own template), or do they have jobs (their job might have a standard practice)? See what they're comfortable with dealing with already.
Make sure they design their assets in high-resolution for less headaches (they should be vectors, really) - you can't upsize, only downsize, after all. See the Ultimate Guide To iPhone Resolutions
Do they use iOS? Android? iOS is obviously more helpful since they will have more experience with iOS UI design even if they haven't done any mobile design per se.
You can provide pixel (point) constraints, or you can provide ratios (ie. a table view cell is generally 320x44, of course you can make it whatever you'd like).
It's best to start with initial sketches, but I'd recommend "segmenting" each component for them to design, and list the components for them. For example, a table view cell is one, a button is one, a label is one, friendly error/success messages, etc. You're not likely to have 3 different label designs, because it'll make your app inconsistent. Keep in mind that if you plan on making your app localizable, the design should adapt for variable widths.
Alot of designers like a point of reference. Find a few apps and show it to them.
Well according to this: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
The rendered pixels are at 1242 x 2208 and is downsampled to 1080p
You could test out the higher resolution if you want.
Here's a screen shot from my 6+. I'm using standard zoom. The only change I made to the home screen was swapping the phone app with the messages app.
Also, this might have useful info for you maybe: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
It's big, and it has to do all that down-sampling with the same graphics hardware the 6(non-plus) has. OIS is nice, but it's not that nice; went with the 6 here.
I hear good stories about PaintCode, but something tells me that you still need to have some sense of creativity. How hard is it really to make some of the examples? The fact that it generates the code is pretty awesome, but it's probably harder for me to create something that looks good.
Close, but not quite! In display zoom mode iPhone 6 will upscale from the 640 mode, it's really, really screwed up: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions (I didn't know about the iPhone 6 Plus actually rendering at 1242x2208)
It's even worse with iPad resolutions. I used to make wallpapers, just geometric and organic patterns, but it started getting stupid.
Interface Builder is a scaffolding tool, it doesn't actually builds the interface for you. Back when it was introduced, programmers built their interfaces from code. In that perspective, it's a good addition.
A tool that bridges the gap between Sketch/Photoshop and IB is: http://www.paintcodeapp.com/
LittleBrother's "small" is 414x736 (828x1472 in Upscale), which according to this article, is the size for iPhone 6+.
Upscale's "iPhone 6+" at 850x1511 (425x755 in LB) is not really iPhone 6+.
Upscale = 2 x LittleBrother. Both use “points” instead of “pixels”. Check out the article linked above.
Can you give us a number how big the complete .ipa file is and how much of this data are related to assets?
Beside that i would highly recommend paintCode (if its possible to use vector graphics): http://www.paintcodeapp.com
In our current app we are complete asset free and just using images for the app icons. With roughly about 35.000 lines of code the .ipa size is about 7MB
Yes. The first resolution is 3x resolution. iPhones 4-6 are 2x. It helps keep that math easier, instead of requiring devs to use assets and point coordinates that are ~2.6087x, which is what would have to happen if they didn't do the downsampling.
Edit: More info
Speaking of Upscale... I'm sorry OP this may not be relevant to your question but I thought the following could be useful for people checking in on this thread. Copied and pasted from this comment.
Upscale's "iPhone 6+" is 850x1511, and translates to 425x755 when used as custom in LittleBrother.
LittleBrother's "small" is 414x736 (828x1472 in Upscale), which according to this article, is the size for iPhone 6+. So Upscale's "iPhone 6+" is bigger than LB's "iPhone 6+"/"Small".
Upscale = 2 x LittleBrother.
Both use “points” instead of “pixels”. Check out the article linked above. So the iPhone 6+ resolution isn't 1080x1920 where these two tweaks are concerned.
The difference between the two is Upscale doesn't use Substrate so it takes effect in non-substrate mode. Upscale also causes black splash screens on larger resolutions.
I would start with something like this http://www.raywenderlich.com/90690/modern-core-graphics-with-swift-part-1 and seriously consider using PaintCode (http://www.paintcodeapp.com/) once you understand what is going on as it will save you a lot more time than you'd pay for the application.
Upscale's "iPhone 6+" is 850x1511, and translates to 425x755 when used as custom in LittleBrother.
LittleBrother's "small" is 414x736 (828x1472 in Upscale), which according to this article, is the size for iPhone 6+. So Upscale's "iPhone 6+" is bigger than LB's "iPhone 6+"/"Small".
Upscale = 2 x LittleBrother.
Both use “points” instead of “pixels”. Check out the article linked above. So the iPhone 6+ resolution isn't 1080x1920 where these two tweaks are concerned.
The difference between the two is Upscale doesn't use Substrate so it takes effect in non-substrate mode. Upscale also causes black splash screens on larger resolutions.
2D graphics in Quartz are not at all difficult if you've ever worked with Adobe Illustrator or similar vector-based graphics applications (or just understand the concept of vector art.)
It can be as simple as:
However there are a number of tools that help with this process, some very powerful. For example PaintCode which not only simplifies drawing but exports as ObjC or Swift. You can also attach some variables to the drawn objects to ease in repurposing and reuse. There's a ton of very easy tutorials on the website on how to do some pretty interesting stuff in PaintCode.
There is also an Extension for Illustrator called Drawscript (free I think) that exports Illustrator drawings to ObjC code, which, with a bit of additional work, produces very serviceable graphics.
Hey thanks!
Do you know CSS at all? I used an editor on my mac first to change the sizes. The main thing you will have to do is change the width. If you can wait, I will try and make a 6 version over the weekend and post it back for ya.
I used this site to get the screen sizes.
I'm also a bit confused about how all of the resolution stuff works as well but here's a guide to how iOS screen resolutions work. The pixel count is basically the same but the resolution between the iPhone 4 and iPhone 5 is twice as high because the pixels are smaller on the 5. I believe that Android works the same way; HDPI is like the iPhone 4 resolution style, XHDPI is @2x and XXHDPI is maybe @3x... That's something that I should look into.
I know that our iOS dev builds at 1x because that's the way that Xcode works but I always provide him 1x exported assets (which are built in the @2x resolution so really I'm giving him assets that are twice as large as they should be I would think) but everything comes out fine. I have no idea if he's sizing them down or what. I should ask him that.
If I were you I would just ask your devs and see what they want. Then if something is the wrong size it's not your fault :)
I think this is what you need: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
EDIT: you can eighter design in 414x739 and then render at @2x and @3x or you can design at 1242 × 2208 adn reverse the export. But the proportions are different, so you might need to re-align few things
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
This article does a decent job explaining things. Most people won't even notice the difference but from a technical point of view there's a case to be made that the iPhone 6 has some advantages.
They needed the AX processors in the iPad 3 and 4 because the switch to retina was a huge increase in the required resources, something the A5 and A6 couldn't handle (the A5 pushed 960x640, the retina 2048x1536, aka 5x the pixels). The A7 was a pretty big step forward and the added cost was unnecessary. We know for certain that the A8X was originally destined for the iPad Pro 12.9" to be released a year ago. Its production may have been accelerated to get into the iPad Air 2 when delays were apparent, and further justified by juicing sagging iPad sales. Remember, almost everyone was surprised by the Air 2's rather overpowered triple-core CPU.
That's all the past though. With the Pro line arriving with AX-series chips, we're seeing bifurcation of the lineup. Using the same processor for both lineups makes no sense - too little differentiation, too large a cost. The A9X chip is way more expensive than the A9, which is more than capable enough of running an iPad, as iPhone chips have moved to greater performance targets in the Plus models (which internally render at 2208x1242, or 87% the pixels of an iPad). It's definitely capable enough for an iPad that isn't geared toward the higher end, and will very likely be priced as such.
It makes absolutely no sense for the AX-series to be in non-Pro iPads going forward.
If they're really going for OLED, it's most likely going to start in 2018, as many rumors suggest. And knowing Apple, it's going to have "Retina"/lower than Android flagship ppi because the hardware ppi has historically complemented iOS' display scaling mechanism. iPhones originally had 163 ppi, which quadrupled in the iPhone 4 to 326 ppi and remained the same through to the 6S (excluding the 6/S Plus). And if this density thing remains true, then Apple will probably design an OLED display with a Real-Stripe RGB subpixel layout to compensate for the lack of a physically higher ppi.
Rumor also has it that it's going to be flexible OLED, so Apple might be spending those extra years of R&D to make it match the durability of their LCD screens (have you seen TechRax's S6 Edge Hammer test? It paints a bright future for the durability of flexible OLEDs!). Who knows, they might use flexible OLED tech in a flat screen just to make it more resilient to breaking.
It was late when I wrote my reply last night, what I meant was that it has a scaling factor of 3 from 414 x 736 points and then the image is downscaled from 2208 × 1242 to 1920 x 1080 1.15 times like you said. Source
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
Your image could be upsampled which is causing the re-interpolation. Do you have a meta-tag setting the initial view? That doesn't look to be 600 of 667 wide.
The article states that the 6S Plus is superior to the 6S in every way; it's wrong.
Now, does it make sense to have a beefed up larger phone that makes it easier to multitask with more RAM and push more pixels without skipping a beat? Yes it does.
A) Marin Todorov's animation book and newsletter are awesome (as someone pointed out).
B) If you're looking for a library to help, Spring is pretty good: https://github.com/MengTo/Spring
C) If you're looking for a tool to help create native animations, PaintCode is sweet: http://www.paintcodeapp.com/
Points are abstract units to provide the coordinates of what needs to be drawn on screen.
On the first iPhone 1 point was equal to 1 pixel. Then when they went Retina, 1 point equaled 2 pixels. So a line that's 1 point high is 2px high on retina displays. Now though with the introduction of the 6 Plus there is a third options where 1 point is equal to 3px. This can actually be a problem: If you draw a line with a height of 0.5point it'll end up 1px high on a 2x screen (retina with the exception of the 6 Plus), BUT it'll end up being 1.5px high on a 6 Plus. This is a problem since half pixels can't be drawn. So when you start scrolling on the 6 Plus with a line on screen that's 1.5px high, the line might start flashing or "glitching". This can be avoided if Apple gave the 6 Plus an 4x screen or if developers specifically design for the 6 Plus. Source
Hey just a heads up to inform you I edited my previous comment:
> Upscale's "iPhone 6+" option is 850x1511, and translates to 425x755 when used as custom in LittleBrother.
> Conflictingly, LittleBrother's "small" is 414x736, which according to this page, is the size for the iPhone 6+. So Upscale's "iPhone 6+" is bigger than LB's "iPhone 6+"/"Small".
Edit: I've checked with a friend's stock iPhone 6+ and it is indeed the same as LittleBrother's "small", whicih is 414x736.
Edit 2: Edited my previous comment again, if you're interested.
Yeah, I was a little confused about that as well! Then I saw this. So it seems like Upscale and LittleBrother uses “points” instead of “pixels”.
The iPhone 6 and iPhone 6 plus render more pixels than are sent to the screen. The software renders "@3x" instead of "@2.85x" then shrinks the image to fit the screen. It makes development easier and simpler, at the cost of some processing power.
Some more info can be found here:
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
Use this website to determine what your pixel counts is for your phone.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
Using iFile, go to groovylock folder and look for the theme.
Open "Style.css"
In the Body Section, add "width: (number)px;"
Save and respring.
NOTE: Might have to do this a few times, because that website is not perfect.
You need to add
"width: 412px;"
into the body section in the file "style.css"
EDIT: This is only for the iphone 6+, if you use a different phone, please use this to find what pixels you need.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
It has to do with the way iOS handles the screen dpi.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
So when making an app you generally use points to define drawings. Then your rasterized art assets are packaged at 1x, 2x, 3x sizes. iPhone 2,3,3GS will pull the 1x art assets, since they weren't high pixel density screens. iPhone 4-6 pull the 2x assets and the 6+ uses the 3x assets, then everything else is scaled up to the screen. This gives sharp text without having to define different sizes for different devices.
> I started with the first screen for iPhone 5 (750 x 1334) in Photoshop.
The iPhone 6 is that resolution. The iPhone 5 is 640x1136.
> Now the question is: do I also have to resize @2x, meaning 1500 x 2668?
No, the 750x1334 is already @2x. The point resolution of the iPhone 6 is 375x667 points. Each point is doubled, to give the pixel resolution of 750x1334.
The iPhone 6+ is a @3x device, 414×736 points -> which becomes 1242×2208 pixels. Then that 1242x2208 screen is downsampled to fit on a 1080x1920 screen.
Device | Point Resolution | @X | Pixel Resolution |
---|---|---|---|
pre-iPhone 4 | 320x480 pt | 1x | 320x480 px |
iPhone 4 | 320x480 pt | 2x | 640x960 px |
iPhone 5 | 320x568 pt | 2x | 640x1136 px |
iPhone 6 | 375x667 pt | 2x | 750x1334 px |
iPhone 6+ | 414x736 pt | 3x | 1242x2208 px |
This is a nice resource for current iPhone resolutions: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
As for exporting assets, I'd ask your developer how they need / prefer them.
I tried it on my phone and it happens to me too.
I don't think that this is a defect with the display/phone, but rather a result of the image processing that goes in displaying the background on the screen.
See my link below. Apparently, the phone takes more than one step to display the wallpaper onto the background, and the final background that you see is a stretched/resized/re-rendered version of the image:
http://www.paintcodeapp.com/news/iphone-6-screens-demystified
When you power on, the screen takes a split second to "stretch" to fit the tops of the screen.
As you power off, the reverse happens. The screen de-stretches and "rubber bands" back to the middle of the screen before powering off the display.
The fact that your wallpaper image is grainy causes the stretching to display streaks, which makes it look like your display is defective.
If you switch your wallpaper to an official apple wallpaper of a similar blue color that is not grainy, you won't have that strange streaking effect.
My suggestion: clean up your wallpaper image so that it's less grainy.
I'm not an expert on the iphone (this is in fact my first iphone), but I was JUST reading about the image processing on these things. I have no idea why they take so many steps.
The iPhone 6 Plus is a bit weird. It uses @3x assets and has a resolution of 2208x1242, however that resolution is scaled down to 1920x1080. This website explains it: http://www.paintcodeapp.com/news/iphone-6-screens-demystified
It's just like /u/ziiiion said. Ideally, the display would actually be 1242x2208, but for whatever reasons (too high dpi for the hardware to handle, probably), Apple just made a 1080p screen that thinks its 1242x2208. This might explain a little more.
Remember 'Retina' is a marketing term. You do NOT get 5k real pixels on this iMac in any dimension.
What Apple do is render a display at twice native resolution (Which is where the 5120x2880 comes from) then scale it down so it's a subsampled and smoother looking version.
This means OSX doesn't have to waste processing time playing with font hinting, transparency, rendering objects pixel perfect, as it can all be dumped to the graphics card, then when it's scaled down to the screen's real pixel count (which is still 2560x1440 like any PC monitor for $300) you get the benefit of antialiasing everywhere.
A better looking display that's easier on the CPU at the cost of GPU performance. It gets a better graphics card sure, but most of its advantages are soaked up on this one gimmick.
See this article on how the high-res rendering then downsampling actually works.
What is happening is the iPhone 6 Plus is actually rendering a 2208×1242 image and downscaling it to 1080p. This is what leads to the lag. More Info Here
I'm sure they'll be night unnoticeable. In this detailed report by Paintcode, they say that “every 23 pixels from the original render have to be mapped to 20 physical pixels”. That's a very small amount of scaling!
This behavior is probably caused by the same bug that was found a few months ago in iOS 7 rounded rectangles implementation:
> iOS 7 rounded rectangles are buggy. > > Unfortunately, there are parameters for which the shapes generated by bezierPathWithRoundedRect:cornerRadius: are obviously wrong.
[](/twiquite)