I recently designed an iphone app in photoshop and asked developer to code that. That developer sent me a horrible image to define what he is expecting me as deliverable.
Here is the link to the image
Since I've lot of screens so it will take a lot of time to make examples of each screens like that. That developer doesn't know anything about PSD and says that he had developed previous 10 application in the same way. I google out about what is the professional way to achieve the task but didn't find any good solution.
I'm front end developer and what I do? I simply take PSDs and measure all stuff as described in above image my self.
Please write how should we proceed? What are the best practices to follow.
What I always do is resizing the png to the height of an real IPhone screen. That way you'll be able to open it in photoshop and use the measure tool.
So, what you'll have to do is: Crop the image to the screen (so the picture is the 'screen' of the iPhone), set height in pixels and measure!
Good luck
Related
I usually do not care much about my assets even if I support the iPads in my project. As long as the imageView for the background of the app is set to Aspect Fill.
Also, here are some links I've found, but not so related to this question.
OLD Question and old answers: How to support both iPad and iPhone retina graphics in universal apps
Cool question and cool answers, however, question and answers focus merely in iPhones:
iOS: Preparing background images for applications
Going back to the question, if I have an Adobe XD file or Sketch, or Photoshop or whatever file that lets me export an image/asset, in what resolution should I start? Do I start with the largest possible size (for iPad Pro) which is 1024x1366 then let the software cut the sizes into #1x and #2x?
If I'm only to support the iPhones, then this would be way lots easier. Thank you!
If your source is vector based, then (obviously?) it's a non-issue...
With bitmap / raster images, you almost always get better results by scaling down.
Depending on the image itself (a photo tends to scale much better than a line-drawing), you may not be happy with simple "auto-gen" features... in which case, you'd need to manually "scale and tweak".
(Hope that helps).
I'm tempted to provide the highest resolution icon and let iOS scale it down as necessary. Is this a bad idea, and (if so) why?
you'll definitely want to produce files of various sizes as required by xCode. You want to make sure that the file presented when the app runs is of a high quality.
There are tools out there that will automatically create all the sizes you need for your app icon. Here is a link to the site that I use: https://makeappicon.com/
Hope that helps!
Yes, it might be bad idea. If your icon art was produced using a vector image editor (e.g., Adobe Illustrator, Adobe Photoshop with vector primitives, Sketch, etc) you best bet is to export all required resolutions yourself. In doing so, you will guarantee the best possible output for each resolution.
Keep in mind that exporting a single high resolution image and then resizing, for each required resolution, using a bitmap editor (e.g., macOS Preview) won't produce the same results.
PS. As already pointed out, I'm not sure your binary will even be accepted by Apple if missing icon data :-(
I am into iOS development from past 1+ months and what I have experienced is that I have to put images for 1x 2x 3x for iphone and then 2x retina for ipad. One of the experienced designers has sugguested to me to go for svg format as it scales itself according to the screen sizes.
So my elaborated questions are:
Can I use svg instead of png?
Is it necessary to still put images in 2x and 3x for iphone and ipad if I'm using svg?
Will the images in svg scale according to the phone size and not lose quality?
If any other information according to your experience please share.
Thank you.
Official iOS Dev documentation says "the PNG format is the one most recommended for use in your apps". You can read it for a lot more information here.
Yes, although the supported file types table doesn't list it. Apple values user experience. SVG scaling consumes a few more CPU cycles which they don't like. PNG rendering is more efficient than SVG.
Yes, Apple explicitly recommends using multiple versions of the image at different sizes. Then scaling can be done from the file having the nearest dimensions.
Refer 1. There are cases like zoom-in / out scenarios where SVGs would be better though.
You could use vectorized PDFs alternatively. You can read more here. It isn't without limitations, but with vectorized PDFs, Xcode automatically generates scaled versions. That should make life easier. Note that sometimes the scaled results look quite poor.
Im programming an app in xcode and something has recently come to my attention when designing app icons. Here is the current setup that I have in my project:
Right now I have a 87x87pixel image for the "29pt" option (far left of the image), I also have a 120x120 for the 40pt option(middle) and I have a 180x180 pixel png for the 60pt option(far right). This seems highly inefficient, not only this but I need to supply #2 resolution images too? Surely there is a better way of doing this?
There are a couple of approaches I've taken in the past. One way is to create your icons, etc. in GIMP, Photoshop, etc. If you need to resize them, there's a command line utility called ImageMagick which I find to be a lot easier for resizing images than setting sizes in an image editor. The command you would use for resizing is called mogrify.
Option two is to get your hands on an app called Asset Catalog Generator. You just dump your images in and it spits out the correct file sizes and naming conventions. It's probably the best $4.99 I've spent in a long time.
Update
It appears someone has written a script to create the icons, too. I haven't used it myself, so you might want to poke around and look for others.
Create your app icon (once) at a decent resolution say 1024x1024. Drop the file into MakeAppIcon (a free service) and out pops all your icons in a zip file properly sized, enhanced as necessary, and rendered. Just drop them into images.xcassets and you're done. This avoids having to tweak any icons that may be off by a pixel or two and avoids those annoying Xcode warning messages.This vendor also offer a service for bulk uploading your iTunes screenshots, but I haven't tried that yet. Luv it!
You can use the vector-based images from a PDF. Session 411 from WWDC “What’s New in Interface Builder” discussed—albeit very briefly—Xcode’s support for creating your PNG files at build time from a vectorised PDF.
There is good article on this, you can refer that as well. http://martiancraft.com/blog/2014/09/vector-images-xcode6/
(Note that this does NOT cover PDFs for icons, just for images)
I would suggest you try SquareIcon, which I believe makes creating Xcode app icon sets very easy. Just to let you know, this is my own app.
The app allows you to drop in a generic image file (like a JPG or PNG) and convert it to a .appiconset file which you can put into your project's asset catalog. This takes care of all the naming and resizing that you might have to do manually.
UPDATE 2: I might've misunderstood you. When I wrote this answer, I thought that by 'inefficiency' you meant memory consumption and the resulting app size. If you meant, that making an icon for all the sizes is a lot of work, and you're looking for a better way to do it, consider looking at Adrian B's answer instead.
First of all, no, there is no more efficient way of doing it (unfortunately). Xcode supports vector images, but they are only supported on OS X, AFAIK. On iOS it just generates all necessary images at compile time.
Second, the app icon is small. You won't save a lot of space by optimizing app icon size. If you need to decrease the app size, try finding something that really takes much space. The icon doesn't.
UPDATE: Luckily, Apple realizes, that forcing everybody to download resources that they don't need is no good. So they introduced App Thinning along with iOS 9. I haven't looked into it thoroughly yet, but the general idea is that you upload a binary containing all the resources as usual, but when your users download the app from the AppStore, they get a version containing only resources that they need.
Using UIImageView I am trying to animate an image sequence of 300 PNG files, it works fine on the simulator however on actual device this doesn't work at all and what i see is a blank sereen.
If I am right then this is possibly due to the large number of images (300 approx.) that I am trying to load and animate or is there any other issue. Please advise?
It will depend on how big the .png files are, which test device you're using etc. When you test on the simulator it has access to all the computers RAM, which is considerably more than an iPhone does. I'll try to improve my answer if you post up some code. It sounds like there is a better way to do it.
Have you tried using a small subsection of the frames (say 10) and see if that works? You could also profile your app and check whats going on that way?