;tldr Be sure to check all the human interface guidelines and adhere to those strictly.
Imagine my excitement posting my first app to the app store and going through all the rigamarole of setting up all the meta data and uploading the binary to be checked out, giving out demo credentials and waiting patiently for it to finally appear in the app store. And then it all comes crashing down because you failed to account for certain interface guidelines on different size devices.
I am going to give you my tips and tricks as I see them so that you won’t get rejected like me.
If you are learning for the first time like I was, I urge you to focus less on the Swift language and focus a lot of your attention on the design phases. Particularly constraints and page layouts. This absolutely has to be correct.
Don’t design just for a particular device or devices (like just phones). iOS has gone to universal apps. Your app MUST work on both iPhones and iPads. I seem to remember in the past you being able to designate whether it was for tablet or phone use but not anymore. I suppose if you are designing games, it may be different but for business apps, they MUST work on both.
Test all devices. They have a simulator that you can test on multiple devices with in Xcode which is great for layouts, etc… Use it!
Go beyond the simulators, plug as many devices as you can into your testing environment. iPhones, iPads, older iPhones, your buddy’s iPhone. The more devices the better. I believe the developer account allows you to test on up to 100 devices before submitting to the app store. You probably won’t get that far, but be sure to use as many slots as you can.
Lock the layout where you can. This will really help with the design aspect as typically if you allow the user to go into landscape mode and don’t account for it, you are in big trouble. Things that may have looked great in portrait, will look awful in landscape, particularly if you referenced from the top down or bottom up with margins and constraints.
Lastly, don’t get discouraged. Test a lot. Not just with the typical unit tests, etc… but with actual manual builds. I would try different things out and then build every 30 minutes. Depending on your app size, builds typically only take 10-15 seconds. Test early, test often. And don’t get discouraged if this is your first go around. It takes some getting used to as it isn’t typical coding (a lot more drag and drop) and a new language.
More to come on this subject as I get my app retested for the app store and I will bring you my success story 🙂