2

My app is ready for release so I need to make the required screenshots for App Store Connect. I use the CN1 simulator to do that.

Today Apple requires 4 screen sizes if the app is for both iPhones and iPads:

  1. iPhone 6.5" 1284 x 2778
  2. iPhone 5.5" 1242 x 2208
  3. iPad Pro 3rd gen 12.9" 2048 x 2732
  4. iPad Pro 2nd gen 12.9" 2048 x 2732

For 3 & 4 the CN1 skin 'iPadPro' can be used (and I can upload identical screenshots if I understand correctly), for 2 the skin 'iPhone8Plus' can be used, but which skin can be used for 1, the iPhone 6.5"?

From help.apple.com:

For iPhone, screenshots for 6.5-inch iPhone Xs Max and 5.5-inch devices (iPhone 6s Plus, iPhone 7 Plus, iPhone 8 Plus) are required. These screenshots will scale down for smaller device sizes.

Screenshot specifications: 6.5 inch (iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR), 1284 x 2778 pixels (portrait), Required if app runs on iPhone.

I don't see any appropriate skins in the CN1 skin download list. Is there one that can be used?

P.S. My app supports 8 languages and let's say I want to show 5 different screenshots, do I really have to provide 8 x 5 x 4 = 160 screenshots? How do other developers deal with this?

J-J
  • 419
  • 2
  • 12

1 Answers1

1

I suggest using one of the app screenshot generator companies like these to generate screenshots in the various resolutions for iOS/Android. There are many such companies you can search for, these are a few:

https://theapplaunchpad.com/

https://app-mockup.com/

https://www.appstorescreenshot.com/

https://launchkit.io/

https://play.google.com/store/apps/details?id=cn.gavinliu.snapmod&hl=en_US

This is the best approach as it will always work (even if a new phone comes out tomorrow or requirements change). Notice I'm not affiliated with any of these companies... I did use a few of them for our apps.

Making a skin isn't hard but isn't trivial either. I built a tool a while back that generates skins but it's unmaintained. I find it easier to just add a skin in the project directly here:

https://github.com/codenameone/codenameone-skins/tree/master/Phones/iPhoneX

See the iPhoneX skin. The main challenges here are:

  • Finding an image of the iPhone where the screen is actually in correct pixel proportions (this is surprisingly hard)

  • Then generating the images that represent the screen surface areas

  • Editing the properties file for correct font size, pixel density etc.

Then you can just add it to the bash script in the root/XML build and run the script to generate a skin file. Ideally also submit a PR to the project.

I'm not asking you to do that. I'm just not sure when we'll get around to this bug as there are many issues and tasks in queue and most people pick the first option for appstore submissions (or use physical device screenshots).

Shai Almog
  • 51,749
  • 5
  • 35
  • 65
  • 1
    This is very disappointing. I've been a paying CN1 customer for 9 years and I expect CN1 to offer this functionality, not a (paid) third party product. There are many dozens of CN1 skins, how hard can it be to add one more? I filed an issue for this: https://github.com/codenameone/CodenameOne/issues/3482. Please, pretty please, add such a skin asap. – J-J Aug 12 '21 at 10:28
  • FYI this is not the place to promote products and services. This answer is just a collection of links to products and services, so it's not really an answer (also, link-only answers are not answers). – David Makogon Aug 12 '21 at 11:45
  • 1
    @DavidMakogon I disagree. The answer is acceptable by itself, and he even went further by suggesting what he is using by himself instead of sending the J-J to google. – fnklstn Aug 12 '21 at 13:55
  • @fnklstn - it's fine to disagree, but that doesn't make this answer valid. 1) Links rot over time. 2) Many product/service links can be considered spam. 3) There is no objectively correct answer here. 4) not that this is topical, as it's not programming-related, but the answer doesn't show how to actually create a screenshot, as requested in the question. Now... there could have been a comment dropped under the question, mentioning there is nothing built-in. But no, this is not a valid answer. – David Makogon Aug 12 '21 at 14:11
  • 1
    I think having links with which I'm unaffiliated for several different products that solve the problem is a valid answer. I also added an additional answer that covers the question better but IMO it's not the preferred way and I don't like telling people to "it's open source just do it yourself". Links rot and answers can be edited in that case. It isn't spam since it's applicable to the question and again not a SEO spammer (intention matters). Submitting to appstores is a part of the CD workflow so it's programming related. – Shai Almog Aug 12 '21 at 15:10
  • @Shai thanks for your additional answer. As I understand it the tools generate pseudo screenshots consisting of a correctly sized picture of a phone with uploaded content of fixed dimensions (and you can add text to the picture). Maybe I'm old-fashioned but I prefer real screenshots. If it would be trivial I would consider making a new skin, but for now I will use the Xcode simulator. It makes my app regularly freeze (it runs fine in the CN1 simulator and on all devices) but I think I can manage and it offers the required 1284 x 2778 resolution. I hope the CN1 skin will be added in the future. – J-J Aug 12 '21 at 20:52
  • It's weird the xcode simulator causes your app to freeze. Opening a thread on that too as it's possibly something we can track down. If you can provide a stack trace and some details there – Shai Almog Aug 13 '21 at 02:39
  • See https://stackoverflow.com/questions/68783464/running-codename-one-app-in-xcode-simulator-problems. – J-J Aug 14 '21 at 12:53