iPhone App Development Tips & Tricks (Zürich)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    iPhone App Development Tips & Tricks (Zürich) - Presentation Transcript

    1. tips & tricks for iPhone application development
    2. adrian kosmaczewski
    3. akosma software akosma.com akosma.tumblr.com github.com/akosma linkedin.com/in/akosma facebook.com/akosma
    4. @akosma
    5. some questions
    6. new to iPhone?
    7. technologies?
    8. J2EE, J2ME, .NET, RoR, others?
    9. programming languages?
    10. C / C++? Java, C#? Ruby, Python, Lua? JavaScript?
    11. iPhone dev ≠ web dev
    12. Cocoa & Objective-C
    13. born in the 80s
    14. Objective-C
    15. Objective-C Java @interface & class (1 file) @implementation @protocol interface #import // files! import // classes! n/a (in C#, “class categories extensions”) id n/a (generics?)
    16. Objective-C Java @selector n/a NSObject / NSProxy / ... Object @public / @protected / public / protected / @private private @try / @catch / @finally try / catch / finally NSException Exception n/a package / namespace
    17. • Thin layer around C • Message-dispatch runtime • Static and dynamic (you choose) • The “real” inspiration for Java: • http://cs.gmu.edu/~sean/stuff/java-objc.html
    18. • Single inheritance + interfaces (“@protocols”) • @protocols can have optional methods • Fields protected by default • All methods are virtual and overridable • Methods can be added to existing classes • Full introspection / reflection • Messages can be intercepted and forwarded à la AOP
    19. Demo
    20. Cocoa Touch
    21. iPhone Specifics
    22. 128 or 256 MB RAM
    23. ~70 MB for the OS!
    24. no swap file
    25. (no virtual memory)
    26. no garbage collector
    27. (manual memory management)
    28. http://cocoadevcentral.com/d/learn_objectivec/
    29. no automatic objects on the stack (C++)
    30. // C++ // Memory freed when out of scope std::string name(“Adrian”); std::string *name = NULL; name = new std::string(“Adrian”); delete name;
    31. hygiene
    32. memory warnings
    33. avoid autorelease
    34. lazy-loading & reuse
    35. custom table cells & reuse
    36. override setters properly
    37. beware of delegation
    38. instruments & static analysis
    39. warnings as errors
    40. code organization
    41. (cheaper maintenance)
    42. iPhone ≠ computer
    43. http://www.flickr.com/photos/oskay/365607662/
    44. http://www.flickr.com/photos/blakespot/2379207825/
    45. http://www.flickr.com/photos/oskay/365607591/
    46. Mobile HIG
    47. books
    48. thanks!
    49. questions?

    + Adrian KosmaczewskiAdrian Kosmaczewski, 2 months ago

    custom

    548 views, 0 favs, 3 embeds more stats

    This is the presentation I’ve given on the free J more

    More info about this document

    CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

    Go to text version

    • Total Views 548
      • 430 on SlideShare
      • 118 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 6
    Most viewed embeds
    • 116 views on http://kosmaczewski.net
    • 1 views on http://www.hanrss.com
    • 1 views on http://akosma.com

    more

    All embeds
    • 116 views on http://kosmaczewski.net
    • 1 views on http://www.hanrss.com
    • 1 views on http://akosma.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories