Microsoft Word - iOSAppReverseEngineering.docx

(Romina) #1

components and each component is an object. For example, every single icon, message and


photo is an object. Besides these visible objects, there are also many objects working in the


background, providing a variety of support for foreground objects. For instance, some objects


are responsible for communicating with servers of Apple and some others are responsible for


reading and writing files. One object can own other objects, such as an icon object owns a label


object, which displays the name of the App. In general, each object has its own significance. By


combination of different objects, developers can implement different features. In Objective-C,


we call the function of an object “method”. The behavior of method is called “implementation”.


The relationship among objects, methods and implementation is where tweaks take effect.


If an object is provided with some certain function, we can send it a message like [object


method] which lets the object perform its function, i.e. we can call the method of the object. So


far, you may wonder that “object” and “method” are both nouns, where is the verb that used to


perform the function? Good point, we lack a verb representing the implementation of


“method”. So here, the word “implementation” can be the missing verb and it means that when


we call the method, what does iOS do inside the method, or in other words, what code is


executed. In Objective-C, the relationship between method and its implementation is decided


during run time rather than compile time.


During development, method in [object method] may not be a noun. Instead, it can be a


verb. However, with only a brief [object method], we still don’t know how this method works.


Let’s take a look at the following examples.



  • When here comes a phone call, we may say that “Mom, answer the phone, please”. When we want


to translate this sentence into Objective-C, it will be [mom answerThePhone]. Here, the object is
“mom” and the method is “answerThePhone”. The implementation could be “Mom stops cooking
and goes to the sitting room to answer the phone”.

-^ "snakeninny, come here and help me move out this box". This could be translated into [snakeninny
moveOutTheBox]. The object here is “snakeninny” and method is “moveOutTheBox” while the
implementation could be “snakeninny stops working and goes to the boss’ office to move a box
downstairs”.


In the above examples, if there is no specific implementation, even we call a method of an


object, the object still doesn’t know what to do. So now, we can think implementation as the


interpretation of method. Is it a little confusing? Don’t worry. Let’s draw an analogy between


programming and dictionary. You can just imagine the method here to be a word in the

Free download pdf