What's the better approach, use In-App Settings (A Screen on Startup) or use the Settings Bundle and if nothing is entered show a popup on start? Or is it possible to combine both?
BR,
mybecks
Apple says:
Which option you choose depends on how you expect users to interact with preferences. The Settings bundle is generally the preferred mechanism for displaying preferences. However, games and other apps that contain configuration options or other frequently accessed preferences might want to present them inside the app instead.
Therefore if the settings are going to be used frequently use in-app settings, otherwise make a settings bundle
Try InAppSettingsKit, it will provide you a hybrid solution by maintaining the Settings.app pane.
Related
Are there any classes or frameworks out there that allow my app to access and modify iPhone settings of the device used to visit my app? I know there's plenty of apps out there which (for example) can change the screen brightness of the device, so I was wondering if it's also possible to modify other settings you can manage in the Settings app on your device (i.e. automatic device lock, time and date, etc.).
No this can't be done... What you can do is to open the settings and that's it. Apple does not allow you to change anything outside your application.
I'm fairly new to iOS development and I am porting an Android app to iOS 7. The Android app provides a screen that allows the user to change a number of non persistent settings. Because these are not saved, it doesn't seem appropriate to me to expose them, on iOS, as preferences via a settings bundle and the built-in Settings app. So I'm looking at an in-app settings screen, which I understand is allowed - but perhaps not encouraged - by Apple.
Some questions:
Am I correct that an in-App approach is allowed by Apple? Most example code seems to use settings bundles. Am I going to have problems when the app is submitted to the App Store?
I can put the settings UI in a simple UITableViewController, but is there an approved way to expose this to the user? XCode 5 doesn't provide a settings identifier (and icon) for toolbar buttons, and the "Info" identifier (letter i inside a circle) seems to have been dropped too. Should I use a custom icon? Are there any de facto standards?
I haven't seen this kind of UI element before on iOS but my exposure to the platform as a user is limited.
There is nothing wrong with doing an in-app preference (table)view. You won't be rejected for that (this point seems to be way too much exagerated outside the iOS community). There are guidelines that you can follow: iOS Human Interface Guidelines... or not. As long as you don't use private APIs (assuming you know how to access them anyway), you're fine! So you can use a custom icon, the "i" button, or any UI element that convey the reasonable meaning of providing access to more info/preference.
In your code, you can use the class NSUserDefaults (with the standardUserDefaults) to store your preferences.
Many apps have in-app settings. It's fine. Apple even states that it is fine. Just don't have both.
Use a custom icon. Many apps seem to use an icon that looks like a gear.
is there a way to enable itunes UiFileSharing at runtime?
I need to start my application with UiFileSharing Disabled and Enable it under superuser configuration
I'm pretty sure this isn't possible unfortunately, here's a similar question relating to changing the values of different settings in the info.plist file.
https://stackoverflow.com/a/1430351/879741
The best you could do I think is to not allow a non-registered user to look at and interact with the files being shared in-app. Stopping a non-registered user from adding/removing files from iTunes wouldn't be possible. File sharing is either off or on.
Usually on a long press of a third-party application icon, it will give you the option to delete the app. Is there any way to disable that option, the way it seems to be with the preloaded applications on iPhone?
It's not possible to do it from within the app.
You could, however, configure the parental settings on the device to disallow removing applications (Settings -> General -> Restrictions), but you would need to do it on each device you want the feature enabled, and the setting will apply for all third party apps, not only yours.
Nope, you can't disable it. If you're developing some enterprise application where the iPad is supposed to run only your app and nothing else, I suggest getting a case or something along those lines to block the "home" button on the iPad.
Using Apple's Settings bundle in a project, is it possible to expose certain settings to the user only if another setting condition is met?
E.g I have a toggle switch, and if the user toggles the selection to False in the Settings application, I want to show a text box that they can fill in. If the toggle is true, I want to hide the text box.
Any help or pointers to documentation that explain this would be great.
You can find step by step instructions here: Adding a settings bundle to an iPhone App.
Edit:
I did my research and I think you cannot do this in an App Store approved app, because to reach this thing you have to change the settings.bundle file inside the application's bundle, which is not allowed in App Store approved apps.