Reputation: 1837
For my current project I need to develop both an android and an iOS app. I never used iOS in private so I am not really sure about the best practices and how a user would expect my app to behave.
In android I provide the user with a custom view which offers different options (server IP, port, language settings, GUI settings, ...) which can be directly accessed by clicking the settings icon in the upper right border of my app. How would one do this in iOS?
What I've read by now is that there is the possibility to provide an settings bundle which will lead to an entry for my app in the system's settings app. But this means the user would have to leave my app to change his settings, right? I looked into a few standard iOS apps (Calendar, contacts, camera, ...) and it seems all apps use the settings bundle but there is no possibility to access this directly out of my app.
Would it be bad iOS practice if I offer a new view that can be accessed by the navigation bar and where the user can change those settings? How should I store them to be persistent over many app restarts? In Android I use the SharedPreferences object which is quite convenient.
Upvotes: 0
Views: 120
Reputation: 368
Depending on what you are trying to store, you could store them in UserDefaults, or if it's something you need to store securely you could use Apple's KeyChain. Both of these will persist across launches and can be updated, appended to, or removed if needs be.
You can add a settings bundle as you've said and then in your app, you can hook a button up to present that settings screen to the user - so they wouldn't have to background your app, scroll to settings, find your app, etc., it'll be presented to them straight from your app.
Many apps also do their settings in the app, so it's really up to you - there is no hard and fast rule.
Upvotes: 1