I have been giving iPhone training for over one year and the most commonly question that i am asked is what is required to learn iPhone app development well in today’s post i am going to answer those questions.
What is required to learn iPhone app development ?
The answer to this is Objective C which is of course the programming language required to build iPhone and Mac OS desktop application, but even before beginning with objective c it is very necessary for the students to know what is programming and how does it work also it is necessary that the basic part of programming should be very clear basics like loops, events, delegates etc should be know to the students.
Objective C is an object oriented programming language so it is compulsory that the oops part of the candidate must be very clear, the candidate must be aware about the basic concepts like class, object, and oops 4 pillars. Objective C is a mixture of ANSI C and small talk together so the syntax part is a bit tough in the beginning but i am quite sure that a little bit practise and completing all the your assignments will definitely help you out in clearing this hurdle.
What makes Objective C different from all the other programming languages ?
Objective-C is a thin layer on top of C, and moreover is a strict superset of C; it is possible to compile any C program with an Objective-C compiler, and to freely include C code within an Objective-C class. Objective-C derives its object syntax from smalltalk all of the syntax for non-object-oriented operations (including primitive variables, preprocessing, expressions, function declarations, and function calls) are identical to that of C, while the syntax for object-oriented features is an implementation of Smalltalk-style messaging.
If Objective C is a super-set of C then what is the difference between C++ and Objective C ?
Most of ObjectiveC is straight C, with embedded Smalltalk. Assuming you already know C and C++, then you know most of the syntax of Objective-C. When reading Objective-C code, an easy way to understand the syntax is to know that [anObject aMethod] in Objective-C is the same as anObject->aMethod() in C++. This is over-simplification, but it is a useful rule for getting started. Objective-C does not respect public and private as does C++. It knows about them, but doesn’t really use them.
Objective-C does not have a constructor or destructor. Instead it has init and free methods, which must be called explicitly. There is nothing in the Objective-C language that requires them to be called init and free, it’s just a standard practice. Objective-C uses + and – to differentiate between class and instance methods, C++ uses static to specify a class method.
What does C++ has that Objective C is missing ?
C++ has tons of features not found in Objective-C. Objective-C is a simpler language. Objective-C tries to blend the purity of Smalltalk with the simplicity of C. However, some people have said that Objective-C blends the lack of readability of C with the limitations of Smalltalk. The biggest C++ feature that Objective-C does not have is constructors/destructors. In Objective-C, the initialization and free methods have to be called manually. With Foundation Kit, NeXTSTEP provides garbage collection, so objects don’t have to be explicitly freed, but the destructors won’t be called when an object falls out of scope. Another missing feature is overloading. Objective-C has a work-around for method overloading, but none for operator overloading. Personally, I don’t like operator overloading, so I don’t really miss it.
Templates are another feature that C++ has that Objective-C doesn’t. Templates are needed because C++ has strong typing and static binding that prevent generic classes, such as List and Array. With templates, a List of Int class easily can be created. Under Objective-C, List classes hold objects, and the List class does not care what kind of object it is holding. C++ will guarantee that each object put in the List of Int is an int, at least theoretically guarantee it, while Objective-C makes no such guarantee. Objective-C’s runtime binding makes List easier to use, but the safety of compile-time binding is lost.
Can i practise objective c on windows ?
Well currently i haven’t tried that so i cannot provide much details on that, but will surely update this in future.
Who am I ?
My name is Ravi Dixit i am the team leader of iOS department at Quagnitia Systems pvt ltd pune branch, you can find me sitting in the iOS department sitting close to my iMac.