In a small team where everyone is coding away on a project for a little while I want to encourage some different thinking to keep people increasing their iOS knowledge as well as to get a bit more variety in their daily activities. I'm not looking for interview questions involving manhole covers, nor very specific questions about whether drawRect: is part of UIView or UIViewController. I'm looking for questions more along the lines of UIImagePickerController, UIImage, Memory and More! - which has a lot of questions and a lot of great information. I voted it up.
I'm thinking of sending out one of these topics about every week and then having a discussion about it towards the end of the week with some examples. Maybe assign a short presentation on a rotating basis so someone gets the job of delivering a 10-minute presentation about the topic, prizes awarded etc. - then when some task comes up involving that topic we may not have an expert but we at least have someone who knows where to start looking for answers. And maybe is keen to find out more based on that exercise.
stackoverflow, while it has "great questions", has a lot that are not so great and these scroll by in huge numbers daily. In iPhone-tagged questions sorted by votes I'm seeing very few of the kind of questions I want. I'm going to look further at some of the top-ranked questions here of course but these are the questions people had to ask, not necessarily the questions that others might get the most benefit from.
There are lots of exercises for "programmers" around but those are not what is needed. I want this to be iPhone specific. We come from a range of backgrounds and are all decent programmers already.
So - what are some things about iPhone development that YOU think are worth knowing? Can those things be phrased in the form of a question that leads an enterprising programmer to a satisfying answer? What made you stop and think, saved you days, pushed you in another direction that was fun and/or profitable, increased your knowledge or just made you feel good for having discovered the answer?
Source: Tips4all
Things every iOS developer should know about:
ReplyDeleteCategories (how to extend existing classes with new
functionality)
Delegation pattern (how to implement your own delegates using either
a formal or informal protocol)
Blocks (often an improvement on delegation in case of
asynchronous calls, also useful in many other ways)
Passing NSErrors through indirection pointers.
NSInvocationOperation / NSOperationQueue for easy / clean threading code.
With the arrival of iOS 5 soon, one might want to learn about:
Storyboarding with Xcode 4.2 / iOS SDK 5.0
ARC
As a iPhone developer I will set these topics as a 10 minutes presentation.
ReplyDeleteBeginner level, may be useless if you are already developed in Obj-C but quite useful to integrate a C++ dev in your team
C++ vs Objective-C, Objective-C 2.0, Objective-C++
Memory management in Obj-C (retain, release, autorelease)
MVC design pattern
IB outlets
Design patterns in Obj-C
Use Stack Overflow before Google (not specifically iOS)
Medium/Advanced level
** Instruments ** (how to use it) (very important)
Comment code (even if selectors are expressive? a line or two is always better)
Automated tests (Who test their app anyway ? :))
Image manipulation + memory warnings
Code review of past apps (what is good, what is bad)
Code abstraction (see what module you have copied/pasted many times on yours apps and way to make it like a framework)
OpenGL ES (basics, only useful if you makes games)
Maps integration (with custom callouts, pins ...)
App Store submission (things to check before sending the app)
In-app Purchases
Push notifications
Core Data
SQLlite
Web service integration
Game Kit
Reducing loading times in the app by preloading
XMLParser (DOM and SAX)
Bonjour
Networking (checking that the iPhone can connect to the server)
Social network integration (FB, twitter, 4square ...)
Using GoogleMaps webservices
JSON
Core Animation (very long presentation)
Using UIAcceloremeter
Custom Views
Creating IB outlets
Creating Frameworks
Using Core Audio
Geolocalisation
Using C++ frameworks with iOS Projects
Things I don't know :
Calendar
Using iTunes library
CoreTelephony
Messing with Address Book
iAd
Video