Check out a free preview of the full Intermediate React Native, v2 course
The "Metadata, Images, & Testing" Lesson is part of the full, Intermediate React Native, v2 course featured in this preview video. Here's what you'd learn in this lesson:
Kadi reviews the metadata and image requirements for the app store. Both platforms require an extensive list of metadata along with several screenshots of the application. Test strategies are also discussed in this lesson.
Transcript from the "Metadata, Images, & Testing" Lesson
[00:00:00]
>> Kadi Kraman: So next, for both iOS and Android, there's actually quite a few forms to fill out. You only do these ones, but it is really tedious and there is a lot of information that is very difficult to answer. So when you're planning to do a release, like take a good week, especially if you have a client that you build this for.
[00:00:18]
Take a good week because a lot of it is regulatory and kind of important for them to know what they are agreeing to adhere by. So just to show you what it looks like. So the important part here is the app privacy. So you need to have a privacy policy URL which needs to be hosted something, hosted website, you'll be hosted on the web.
[00:00:42]
And then here we have a data collection. So if you do any analytics, you will say yes, we do some data. And then there's all this information you need to declare what you are collecting. So are you collecting the user's name? Are you collecting their fitness data? Are you collecting their financial information?
[00:01:05]
And then if you've seen on the app stores, you have this like a declaration of what's being collected. This is where this information comes from. The developer has to fill it out. And on Android, this is similar. So the best place to find it, I think is on the dashboard.
[00:01:26]
That was it, so it will be finished setting up your app and there is a list of tasks. So these are completely different questions to iOS just to make it fun. Where you do need to set up your privacy policy. But then you have things like this, whether you want a functionality in my app is available without access restrictions.
[00:01:52]
And you have whether it's a news app, I think data safety. So this is similar to what we just looked at on iOS. Where you need to again declare, let's say that the app is collecting things, say Yes, and then you need to declare all the information that your app is collecting.
[00:02:12]
So this is quite a long form to jump through so it will take some time. And you do change it periodically. So it's very difficult to write any instructions for it because the options won't be the same. So next up you need to generate some promotional assets. So actually put together this document.
[00:02:34]
So you have this document for app store assets. So these are the things that you need to generate in order to submit. And the most important part, I think, is the screenshots of your app. They're called screenshots, but they don't technically have to be screenshots on that device, which is a little bit funny.
[00:02:53]
So you can take a bit of creative liberty to it. If you do a screenshot on a particular device, then that's perfect, that is absolutely going to get through, but you can be a bit more creative. So Option 1, you can use actual screenshots. So for example, this is what this does.
[00:03:11]
Or you can be a little bit more creative when you do screenshots within a design. So this sometimes, so when I worked on projects where we have designers, they will design the app screenshots. So they're not actual screenshots that they've taken on their phone, they use their design and they put the iPhone bezel around it and then add some messaging.
[00:03:34]
So this is completely fine if it's reflective of what your app is actually gonna look like, then this will possibly be device. And Option 3 is you can make it quite fancy. There is limits to how fancy you can make it, but if this is still indicative to what your app actually looks like, you can get away with it.
[00:03:54]
So this was an example that I saw, which is like they've really gone to town with some creative design liberties. So we have a Figma template again for like the minimum asset requirements. So this has like for Android and for the iPhone, so it has some placeholders of what you would need to create.
[00:04:19]
And I've also listed them here. So the bare minimum. So this is the bare minimum you need to create in order to submit your app for approval. For Android, you need an app icon, you need a feature graphic, and you need between four and ten screenshots. And there's the sizing requirement is really strict as well.
[00:04:40]
So, if you're like a pixel over for the feature graphic, it won't work. For the screenshots, it is the aspect ratio that is important. And then for the iPhone, you need screenshots for iPhone without a notch. You need screenshots for iPhone with the notch, so between 2 and 10 of each.
[00:05:03]
And with the notch, you can choose between these dimensions. You can do one of them. So you can do two screenshots of one of these dimensions. And if your app also runs an iPad and then by default, the CreateExpoApps2, you also need to supply additional screenshots for the iPad.
[00:05:25]
I actually think that might be mandatory these days. Because I remember for the ReactConf, I created the app store assets for iOS and for all the iPhones. So iPhone with a notch, iPhone without a notch. And I was like, great, submit it. And then it errors because I didn't have iPad screenshots.
[00:05:42]
So I think you do need them these days. So next step is testing. So both stores include a testing option but the way the testing works is pretty different between both of them and very different from the web. So this is meant for user acceptance testing. So you are testing on the bundle that will be submitted to the actual users.
[00:06:03]
So it's not like a test version of your app and then you're submitting a different version. It is, that is not what it is. You are submitting to your actual app bundle. So let's see if our test. If our iOS app has finished uploading. I forgot to trigger it, that's embarrassing.
[00:06:31]
So when you upload an iOS app to either from transporter or from EIS into App Store Connect, it actually ends up here in test flight. So let me show you a different app.
>> Kadi Kraman: There we go. So the apps will show up here in the test Flight tab.
[00:06:58]
And then by default they will be in internal testing. So internal testers are only people that have to have access to your developer accounts you need they need to be users on your developer account and they will just immediately have access. They will be added by email and they'll get an email saying that a new version is ready.
[00:07:21]
If you want to show it to external testers, you need to choose a build from here. So I don't have a build that was valid, but if I did, then I could choose a build from here. And it actually has to submit it to a mini review before it's available.
[00:07:37]
But then once I have submitted it, you can share it via a link so you can have public URL. Or you can add people via their email, so they'll get an email saying that a new app version is ready.
>> Kadi Kraman: For Android on Google we have Testing Tracks.
[00:08:00]
So we have internal testing, we have closed testing, and open testing. So internal testing is where you can invite people via with email. So it has to be the email that the user sign into Google Play, like on their phones. I think it was up to 100 people.
[00:08:19]
And then close testing goes through like a mini review step, but you can have an email or stuff. I don't know if there is a limit, but you can have a much larger email list. And finally, open testing is your app will be open on the play store, it will be available for download but it will be tagged as in beta.
[00:08:38]
And then finally in production when you're ready, you will submit to production. This is again a note if you're using a personal account on Android on Google. You need a minimum of 20 testers who have opted in to test your app for at least 14 days before you can even apply to production access.
[00:09:00]
So this was introduced late last year, I think, and it only affects individual like personal accounts. So if you have a business account, you don't have this restriction. So there's some jokes out there about trying to find your 20 friends with Android devices to test your app. And finally you need to submit your app for review.
[00:09:21]
So, this is again crazy for use to web developer. By the way, you can just deploy your website. This is not the case for mobile apps, they need to be reviewed. So, the review is both manual and automated. There are automated checks for your app bundle, so it automatically It detects APIs that use native APIs, but it is also manual.
[00:09:44]
So it tends to be more strict on iOS than Android. So if your app, for example, requires login to access, you need to provide login details for the reviewer that they can use to log in and test the logged in features your app. And your app may be rejected for tons of different reasons on iOS, especially iOS reviews sent to be more strict in Android.
[00:10:10]
So for example, the first time Ii submitted the ReactConf, so I had a feature there that you use a quick action. Similar what we did, to open a secret modal, and then you can change your app icon on iOS. And the reviewer could see from the native bundle that I had code to change the app icon.
[00:10:32]
So it's a native API that was included, but they couldn't find this functionality in the app. So actually the app was rejected because they said the app bundle includes code to change your app icon, but you can't do it in the app. So then I had to reply saying, you actually use quick action, so press and hold.
[00:10:51]
And after a couple of hours, it went through. So there's tons of things that can make your app not go through. It seems a little bit random. Sometimes you can reply to a reviewer if it's a misunderstanding like that. And sometimes it is something that you need to actually change in the code, rebuild, and resubmit.
[00:11:10]
So especially the first time you're submitting to the App Store, give yourself a couple of days or a week ideally. Especially since each of these iterations can take let's say half a day if you're lucky, but it can take a couple of days if the queues are big.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops