• Save
iPhone Development For .Net Dev
Upcoming SlideShare
Loading in...5
×
 

iPhone Development For .Net Dev

on

  • 5,572 views

Presentation for Philly ALT.NET group on May 5th at Drexel

Presentation for Philly ALT.NET group on May 5th at Drexel

Statistics

Views

Total Views
5,572
Views on SlideShare
5,519
Embed Views
53

Actions

Likes
2
Downloads
0
Comments
0

4 Embeds 53

http://www.slideshare.net 30
http://a7.vox-data.com 20
http://www.linkedin.com 2
https://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    iPhone Development For .Net Dev iPhone Development For .Net Dev Presentation Transcript

    • Mobile ‘i’ for the .NET Guy iPhone development for .NET developer Tuesday May 5th, 2009 © ThoughtWorks 2009
    • Agenda • Introduction • What do you need? • Comparisons • Code Demo • Pleasure & Pain • MIA • Why? • Open discussion © ThoughtWorks 2009
    • Introduction • .NET developer since 2004 (WinForms, WebForms, ASP.NET MVC) • C/C++ before that • iPhone development since SDK beta 1 © ThoughtWorks 2009
    • What do you need? Hardware • Mac • Mini - $599 • iMac - $1199 • MacBook - $1299 • MacBook Pro - $1999 • iPod Touch - $229 (8GB) • iPhone 3G • $199 (8GB + 2yr contract) • $599 (8GB + no contract) © ThoughtWorks 2009
    • What do you need? Software • iPhone SDK (require registration but free to download) • iPhone Developer Program • Personal - $99 (ad-hoc deploy to hardware, submit to AppStore) • Enterprise - $299 (Personal + in-house deployment) © ThoughtWorks 2009
    • What do you need? Books • The iPhone Developer Cookbook • Beginning iPhone Development • Beginning Xcode • Programming in Objective-C 2.0 © ThoughtWorks 2009
    • What do you need? Optional Mockup Software – Balsamiq (http://www.balsamiq.com/) – iPhone Mockup (http://iphonemockup.lkmc.ch/) Bucket loads of patience! © ThoughtWorks 2009
    • Language Comparison Objective-C C# Square Brackets + Dot notation Dot notation self.currentPostion = 0.5; this.currentPosition = 0.5; [foodoStuffWith:bar]; foo.DoStuff(bar); Named Parameter Object/Collection Initializer in C# 3.0 [foodoStuffWith:bar atPosition:4]; Named Parameter in C# 4.0 new foo(bar = “ISO”, position = 4); Message Passing Method Invocation Category Extension Method Protocol/Interface Interface/Class Class/Method prefix Namespace C based (header file, pointers) Inline declaration, no pointer Manual Memory Management (in iPhone) GC NSString *foo = [NSStringalloc]; [foo release]; © ThoughtWorks 2009
    • IDE Comparison quot;What is Xcode? It starts as a great source code editor...” and quot;... and also has a nice debugger” - Scott Forstall, Senior VP of iPhone Software © ThoughtWorks 2009
    • IDE Comparison Xcode 3.1 Visual Studio 2008 Text Editor Refactoring UI Design Debugging Profiling Localization © ThoughtWorks 2009
    • Code Demo © ThoughtWorks 2009
    • Pleasure • MVC architecture • SDK’s API o Hit the 80/20 rules o Convention over Configuration  Settings bundle  Application icon © JesperRønn-Jensen • Simulator o Work exactly as the real phone o Except bandwidth, CPU (audio/video), interruptions © ThoughtWorks 2009
    • Pleasure – cont’d • Objective-C language features o Dynamic o Named parameters o Categories o Properties & @synthesize o C-based. Lots of libraries available (e.g. libxml) © ThoughtWorks 2009
    • Pain • Xcode IDE o CodeSense is not that smart o Keyboard shortcuts are strange o Take a while to re-train muscle memory • Interface Builder © deeleea o Good for simple UI, not so for complext UI o Can’t do everything (UITabController and UINavigationController don’t mix well) • Objective-C syntax o [foodoBar] – having to type the square brackets get old very quickly o Header files – What’s this, the 90’s? © ThoughtWorks 2009
    • Pain – cont’d • Memory management o Constraint environment o No GC o Have to remember to release object manually • Debugging o Do I really care about register address? o Erratic behavior • Unit testing framework o OCUnit/Google Toolbox for mac o OCMock © ThoughtWorks 2009
    • Pain – cont’d • Deployment o Require code signing o Opaque approval process o Small(er) developer community o StackOverflow o Google’s your friend! © ThoughtWorks 2009
    • MIA/WIP • DI/IoC container • OR/M – Partly solved by SqlitePersistanceObjects (Google Code) • Build Framework – Use scripts (Rake, shell script) © ThoughtWorks 2009
    • Why learn something so different? • Diversify skills • Expansive API – A/V – Graphics/Animation – Game/Peer to Peer (in 3.0) – Maps (in 3.0) • On most CTOs’ radar • iTuneAppStore – Broad reach – Easy to start © ThoughtWorks 2009
    • Open Discussion ahung@thoughtworks.com Twitter: AlexHung http://alexhung.vox.com Questions? RubyCocoa Mono Feedback © ThoughtWorks 2009