ANR stands for "Application Not Responding". It's a dialog box that appears when an application doesn't respond for more than 10 seconds (sometimes it can be less than 10 seconds). The ANR dialog box offers the user the option of either closing the app or waiting for it to finish running.
A follow-up to the previous question, there are a number of possible answers here. What you want to hear is that you want as little work done as possible on the main thread, also known as the "UI thread". Since that is the core single thread that your application runs on, you would want to keep activities that require more complex computations or network and database connections, for example, on separate worker threads so as not to slow down the main thread.
Scoping starts with a long, hard look at the device. Mobile devices offer different form factors, screen size and resolution, computing power and functionality. They run different operating systems and have other methods of retrieving data such as wifi or 3G.
The challenge is to understand the device and how it will be used to the best advantage: focus on the benefits of the device, such as size and portability, and ensure that the user experience will be optimised.
You want to find out that this person will seek to truly understand what you are trying to accomplish with your app, and the functionality. The following items are good to hear:
★ Objective statement or purpose of the app for the app publisher
★ Description of the target audience or user demographics
★ Any existing apps that it might be similar to
★ Artwork; The best developers will say they require the artwork to be completed before development. This avoids delays, and helps the developer understand the look, feel and branding you are trying to achieve.
On state transitions can be responded to state changes in an appropriate way by calling corresponding methods on app's delegate object.
applicationDidBecomeActive method can be used to prepare to run as the foreground app.
applicationDidEnterBackground method can be used to execute some code when app is running in the background and may be suspended at any time.
applicationWillEnterForeground method can be used to execute some code when your app is moving out of the background
applicationWillTerminate method is called when your app is being terminated.
An app is said to be in active state when it is running in foreground and is receiving events.
An app can get into InActive state when the user locks the screen or the system prompts the user to respond to some event e.g. SMS message, incoming call etc.
An app is said to be in 'not running' state when:
1) It is not launched.
2) It gets terminated by the system during running.
The UIKit infrastructure takes care of delivering events to custom objects. As an app developer, you have to override methods in the appropriate objects to process those events.
An app is notified whenever the operating system moves the apps between foreground and background. The operating system improves battery life while it bounds what your app can do in the background. This also improves the user experience with foreground app.