What are programming requirements for iOS apps?

Monkey Targets Forums/iOS/What are programming requirements for iOS apps?

RobB(Posted 2013) [#1]
Without having a developer's license yet, is there a way to find out programming requirements for iOS apps? Are there specific ways an app must behave if a user switches to another app and leaves yours running?
Are there different behaviors required for shut down vs. suspension? Any other issues/features a developer should plan for an app to be accepted?

I'm just trying to learn what features must be in the app to pass Apple's submission inspection so I can include the right ones in an app.

The app is a simple child's game without game center connection or sophisticated features, but I want to build it with the proper functionality required of any app for Apple approval.

I've seen nice links for the process of submission, but most of the info I've found on actual app requirements refers to Apple documentation that requires the developers license.


Xaron(Posted 2013) [#2]
Regarding shut down, you may not quit an app on iOS. E.g. an exit or quit button is a rejection reason.


Oddball(Posted 2013) [#3]
Edit: I posted Apples review guidelines here but looking again at your question they don't really answer it. To answer your question you really need to read the human interface guidelines which are to big to post here. If you plan to release on the AppStore anyway I'd recommend signing up for the dev program and having a good read of all the guidelines.


RobB(Posted 2013) [#4]
I guess my question as far as Monkey goes is: How does iOS deal with specific Monkey actions? Since iOS ends the program, I suppose the main concern is what happens when a program is suspended. My understanding is that if user suspends a program by going to another program, the suspended program should continue, when resumed, from the same state it was in at the time of suspension. So updates should stop at suspension and resume with the game at the same state when resumed.

So if iOS puts an app on hold as a user goes to another app, what Monkey code is necessary to enable iOS to do this properly? Is something like this from mak's bbgametest.monkey found in bananas what translates to what iOS wants? Do the Suspend and Resume Methods translate to iOS requirements?

#MOJO_AUTO_SUSPEND_ENABLED=True

Import monkeytarget

Class GameDelegate Extends BBGameDelegate

	Method StartGame:Void()
		Print "StartGame"
		BBGame.Game().SetUpdateRate 60
	End
	
	Method SuspendGame:Void()    '<------ Are Suspend...
		Print "SuspendGame"
	End
	
	Method ResumeGame:Void()     '<---- ...and Resume what iOS wants?
		Print "ResumeGame"
	End



Oddball(Posted 2013) [#5]
You don't have to do anything. iOS takes care of suspend, resume, quit for you. The only thing you need to do is save anything that you wish to persist after the app quits.


RobB(Posted 2013) [#6]
Thank you all for your help. It turns out I did not have

#MOJO_AUTO_SUSPEND_ENABLED=True

included in my code. Also, since I am using MikeHart's Fantom Engine (and am very pleased with it), I needed to include the Fantom Engine code as well in my suspend and resume Methods: fE.SetPause(TRUE) and fE.SetPause(False).

My son, who has a Mac, got a developers license, so we have tried it on the iPad2 and all now appears to work well.