1. Explain popular apps of iPhone?
Face book-Social networking
Doodle Buddy-drawing
Pandora Radio-radio on our iPhone
Yelp-restaurant reviews
2. Explain iphone architecture?
It is similar to MacOS X architecture
It acts as an intermediary between the iPhone and iPod hardware an the appearing applications on the screen
The user created applications never interact directly with the appropriate drivers, which protects the user applications from changes to the hardware.
3. Please explain the difference between shallow copy and deep copy?
Shallow copy is also known as address copy. In this process you only copy address not actual data while in deep copy you copy data.
Suppose there are two objects A and B. A is pointing to a different array while B is pointing to different array. Now what I will do is following to do shallow copy.
Char *A = {'a','b','c'};
Char *B = {'x','y','z'};
B = A;
Now B is pointing is at same location where A pointer is pointing.Both A and B in this case sharing same data. if change is made both will get altered value of data.Advantage is that coping process is very fast and is independent of size of array.
while in deep copy data is also copied. This process is slow but Both A and B have their own copies and changes made to any copy, other will copy will not be affected.
4. Explain the requirements for developing iPhone Apps?
Mac OS 10.5/10.6 iPhone SDK (Software Development Kit 3.0/4.0).
IPhone SDK consists of:
IDE to develop iPhone Apps is XCode(This tool is inbuilt in iPhone SDK)
Interface Builder This is used to design GUI of Apps(Inbuilt feature of iPhone SDK)
Instruments This is used to check any memory leaks in our apps (Inbuilt in SDK)
Simulator This is used to test our apps before deploying into real device.
5. Define about the applications that can be used with iphone?
Technology, Entertainment and Design(TED):
Allows to watch and listen to world's most fascinating people have to say, all on the iPhone.
Market Watch:
Breaking news about the investments can be seen. To do so, open the Stocks app and rotate.
Trends:
Latest runway shows, videos from Vogue's fashion library, reviews, exclusive party pictures, fashion news updates can be seen on Style.com.
6. Where can you test Apple iPhone apps if you do not have the device?
iOS Simulator can be used to test mobile applications. Xcode tool that comes along with iOS SDK includes Xcode IDE as well as the iOS Simulator. Xcode also includes all required tools and frameworks for building iOS apps. However, it is strongly recommended to test the app on the real device before publishing it.
7. Explain which JSON framework is supported by iOS?
SBJson framework is supported by iOS. It is a JSON parser and generator for Objective-C. SBJson provides flexible APIs and additional control that makes JSON handling easier.
8. Explain does iOS support multitasking?
iOS 4 and above supports multi-tasking and allows apps to remain in the background until they are launched again or until they are terminated.
Fast enumeration is a language feature that allows you to enumerate over the contents of a collection. (Your code will also run faster because the internal implementation reduces
message send overhead and increases pipelining potential.)
10. Explain why iPhone apps are popular?
Give our business a whole new way of transacting business for millions of users.
IPhones are the market leaders in the smart phone segment. The iPhone has become a great device to surf the internet, play games, interact with social networks and transact business.
12. Explain Iphone application Development?
In 2007, Apple entered the cellular phone business with the introduction of the iPhone, a multi-touch display cell phone, which also includes the features of iPod.
The frame of a view is the rectangle, expressed as a location (x,y) and size (width,height) relative to the superview it is contained within. The bounds of a view is the rectangle, expressed as a location (x,y) and size (width,height) relative to its own coordinate system (0,0).
An iPhone app is a program that runs on our iPhone/iPod Touch. It enables us to accomplish a certain task. They could be utility apps, games, enterprise apps, entertainment apps, apps to access our bank account etc.
A struct is a special C data type that encapsulates other pieces of data into a single cohesive unit. Like an object, but built into C.
17. Explain the functionality of accelerometer of an iphone?
iPhone responds to motion using a built-in accelerometer.
The accelerometer detects the movement and changes the display accordingly, at the time of rotating iPhone from portrait to landscape.
18. Define the location services?
Applications such as Maps, camera and compass are allowed to use the information from cellular, Wi-Fi and Global Positioning System networks for determining the approximate locations.
The location is displayed on the screen, using a blue marker.
19. Explain iphone reference library?
iPhone reference library is a set of reference documents for iPhone OS .
It can be downloaded by subscribing to the iPhone OS Library doc set.
Select Help>Documentation from Xcode, and click the subscribe button next to the iPhone OS Library doc set, which appears in the left column.
20. Define the features of iphone 3gs?
Video: Videos can be edited, shared. High quality VGA video can be shot in portrait or landscape.
3 Megapixel Camera:
Still photos with greater quality can be taken
Voice control:
It recognizes the names in contacts and recognizes the music on iPod.
Compass:
iPhone 3GS has built-in digital compass, used to point the way.
Internet Tethering: Internet surfing can be done from anywhere. A 3G connection can be shared on Iphon3 with Mac notebook or laptop.
21. Explain sensors in iphone?
The proximity sensor immediately turns off the display when the iPhone is lifted to ear. With this sensor the power is saved and accidental dialing is prevented.
The display is automatically brightens the iPhone by the ambient light sensor when the sunlight or bright rooms and dims in darker places.
iPhone SDK is available with tools and interfaces needed for developing, installing and running custom native applications.
Native applications are built using the iPhone OS's system frameworks and Objective-C language and run directly on iPhone OS.
Native applications are installed physically on a device and can run in presence or absence of network connection.
iPhone OS runs on iPhone and iPod touch devices.
Hardware devices are managed by iPhone OS and provides the technologies needed for implementing native applications on the phone.
The OS ships with several system applications such as Mail, Safari, Phone, which provide standard services to the user.
IPhone is a combination of internet and multimedia enabled smart phone developed by Apple Inc.
iPhone functions as a camera phone, including text messaging, and visual voice mail
iPhone is a portable media player that resembles a video iPod
It has user interface that is built around the multi-touch screen including virtual keyboard.
App Store , which launched in the mid 2008 has over 1,00,000 applications with functionalities including games, references, GPS navigation, advertising, television shows, films, reference, celebrities.
25. Design a chess game. Basics of a chess game was explained and a player could be human or AI?
Follow-up questions:
* What are the main objects?
* How do the main objects interact with each other?
* Which object or objects own the current game state information?
* Implement the method to move a piece to another position on the board. method must communicate if the move is legal or not.
* How do you test the move piece method?
Chessboard: contains a matrix of chess pieces objects
Player: contains a list of references to his/her active chesspieces
Chess piece: contanis color or player, and what type of piece is it (tower, horse...)
boolean canMove(pieceType, start_x_pos, end_x_pos, start_y_pos, end_y_pos){
if (type equals horse){
canMoveHorse (pieceType, start_x_pos, end_x_pos, start_y_pos, end_y_pos);
}
else if (type equals horse){...}
...
}
test1: the piece is at the indicated position
test2: the piece has the same color at before it was moved
test3: if there was another piece at the end position, now it has been removed from the chessboard and from its player's list
test4: if it is a queen, tower, ... check that before the movement there wasn't any other piece in the path
test5: check that the other pieces are at the same places where they were before the movement
Poll after some constant time
If T1 has priority p always set T2 priority lesser then T1 that is p+1
How about this? For multithreading, put mutex in write
template<typename T>
class writeandread
{
public:
writeandread(T* s, int n):start(s), writePtr(s),readPtr(s), maxbytes(n), numofeles(0) {}
T* getStartPtr(){return start;}
T* getwritePtr(){return writePtr;}
T* getreadPtr(){return readPtr;}
bool write(T* input, int n);
T* read(int n);
private:
T* start, *writePtr, *readPtr;
size_t maxbytes, numofeles;
};
template<typename T>
bool writeandread<T>::write(T* input, int n)
{
if (input == NULL && n > 0)
return false;
if (maxbytes-numofeles < n*sizeof(T)/sizeof(char))
return false;
numofeles += n*sizeof(T)/sizeof(char);
for (int i = 0; i < n; ++i)
{
*writePtr = *input;
++writePtr;
++input;
}
return true;
}
template<typename T>
T* writeandread<T>::read(int n)
{
if (n <= 0)
return NULL;
T* res = (T*) malloc(n);
T* t = res;
int count = 0;
while (writePtr != readPtr)
{
*t = *readPtr;
++t;
readPtr += sizeof(T);
++count;
}
if (count < n)
readPtr = start;
return res;
}
28. Designed a similar API like malloc, which has a similar functionality. How do you test the API?
1) Give a very large size(1000000000) and check if its able to allocate
2) Provide number values 1,3,0,100
3) Give a character in size to api
4) GIve blank spaces
5) NUll value for size field in api
6) Call the api from multiple sessions
29. How to parse a phone number from a huge database of a n billion webpages in 30 minutes
The numbers do have sematic meaning, eg: location. Hence, if the database is distributed, that helps. Additionally, the DB must be stored in a N-nary search tree where N is large, reducing the height of the tree significantly.
char * setEmpty(int len){
if (0>len) return NULL;
char * c = (char *) malloc(len+1);
memset(c, 0, len+1);
return c;
}
31. Do you know Which sorting algo you would like to implement as unix library and why?
I think more than the answer, the reason would be important. Quick sort for example is important because its average runtime is O(nlog(n)) and in most cases its better than other logarithmic algorithms ( Merge Sort and Heap Sort ). I would ask him though, why would you want to stop at implementing just one algorithm. How about an API that can use sort based on input size ( strategy design pattern ); because for different values of n different sorting algorithms can be usefule
32. How to design spotlight search feature in Mac OS?
B-tree or Hash Table
33. What is B trees and its applications?
A B-tree is just another tree data structure mostly used within file systems and databases. Common file systems that use B-trees are HFS+ (OSX), ext4 (Linux) and NTFS (Windows).
Two methods must be applied. First, the simulator must conform to the system specification for the hardware. Every instruction that retires must behave exactly as the hardware expects, including every result, and every control register. Unit tests can be written for these individual cases and used to maintain the simulator. Next, real world programs and applications should be ported to run on the simulator. Instrumentation code can be added to provide some kind of checksum section to ensure that the simulator is outputting results the same as hardware.
After retrospective, I think intent of this question was to check if I knew these sorting in and out or not including very details.