SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
iPhone Development



onsdag den 7. september 2011
Agenda
                               • Requirements
                               • The Objective C Programming Language
                               • Cocoa Touch & Basic Design Patterns
                               • Apple Developer Tools
                               • Apple Developer Portal
                               • Resources


onsdag den 7. september 2011
Who am I?



onsdag den 7. september 2011
Hvem er jeg?
                               • Freelance udvikler i Barkode ApS & Bigger
                                • Objective C, Java, Python
                               • Udvikler af “Risteriet”, “MitNykredit”
                                iPhone applikationerne
                                •   Arbejder p.t. på en ny universal app for
                                    Infopaq International A/S
                               • Mac fanboy!
onsdag den 7. september 2011
Hvorfor iOS Platformen?
                               • Nysgerrig efter en ny platform.
                                 • en ny platform
                                 • en ny type device
                               • Andre problemstillinger end Enterprise Java
                               • Et “nyt” programmeringssprog og et nyt framework.
                               • Mac fanboy!


onsdag den 7. september 2011
onsdag den 7. september 2011
Risteriet
                               •   Primært tænkt som reklame for et
                                   mindre kafferisteri i det indre København.

                               •   Benyttede frameworks:

                                   •   Core Location

                                   •   MapKit

                                   •   MediaKit

                                   •   JSON (eksternt framework)

                                   •   Core Animation




onsdag den 7. september 2011
onsdag den 7. september 2011
Mit Nykredit
                               •   Nykredits Mobile Bank

                               •   Ekstremt hurtigt udviklet

                               •   Udvalgte benyttede frameworks:

                                   •   Core Location / MapKit

                                   •   MediaKit

                                   •   Core Animation og en del custom UIView’s

                                       •   Valuta beregner

                                       •   Pinkode husker

                                       •   Diverse tabeller

                                       •   ...

                                   •   Webservices




onsdag den 7. september 2011
Mit Nykredit
                               •   Nykredits Mobile Bank

                               •   Ekstremt hurtigt udviklet

                               •   Udvalgte benyttede frameworks:

                                   •   Core Location / MapKit

                                   •   MediaKit

                                   •   Core Animation og en del custom UIView’s

                                       •   Valuta beregner

                                       •   Pinkode husker

                                       •   Diverse tabeller

                                       •   ...

                                   •   Webservices




onsdag den 7. september 2011
Requirements



onsdag den 7. september 2011
Get a Mac!

                               • En Mac computer og helst et iOS device
                               • Medlem af Apples iOS Developer Program - $99
                               • Installering af SDK og Developer Tools
                               • “Live by the rules defined by the mothership”




onsdag den 7. september 2011
The Objective C
                               Programming Language



onsdag den 7. september 2011
Objective C
                               •   Superset til C og derfor kan man benytte C og C++

                               •   Objekt orienteret (1986) og baseret på message
                                   passing ala Smalltalk.

                               •   Udvidet i 2006 med properties, garbage collection og
                                   fast enumeration etc.

                               •   Memory Management

                                     •   OSX - Garbage Collection.

                                     •   iOS - explicit memory management
                                         (reference counting) (iOS 3/4).

                                     •   “Automatic Reference Counting” (iOS 5)




onsdag den 7. september 2011
Objective C Syntax 1/3
                          @interface classname : superclassname
                          {
                              // instance variables
                          }

                          @property (nonatomic, retain) inst_type inst_name;

                          + classMethod1;
                          + (return_type)classMethod2;
                          + (return_type)classMethod3:(param1_type)param1_varName;

                          - (return_type)instanceMethod1:(param1_type)param1_varName andOtherParameter:
                          (param2_type)param2_varName;

                          - (return_type)instanceMethod2WithParameter:(param1_type)param1_varName
                          andOtherParameter:(param2_type)param2_varName;

                          @end




onsdag den 7. september 2011
Objective C Syntax 2/3
                          @implementation classname

                          @synthesize type_name;

                          + (return_type)classMethod
                          {
                               // implementation
                          }
                          - (return_type)instanceMethod2WithParameter:(param1_type)
                          param1_varName andOtherParameter:(param2_type)param2_varName
                          {
                               // implementation
                          }
                          @end



onsdag den 7. september 2011
Objective C Syntax 3/3
                          @implementation ClientsMapViewController


                          @synthesize titleBar, mapView;


                          #pragma mark -
                          #pragma mark Lifecycle


                          // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
                          - (void)viewDidLoad {
                              [super viewDidLoad];
                          !
                          ! UIImageView *background = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
                          ! background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
                          ! background.image = [UIImage imageNamed:@"dark_wood_tile"];
                          ! [self.titleBar addSubview:background];
                          ! // Sending the image to the back ensures that the text isn't shadowed by the image
                          ! [self.titleBar sendSubviewToBack:background];

                          ! UIFont *font = [UIFont fontWithName:@"Lobster 1.4" size:17];
                          ! UILabel *header = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
                          ! header.text = @"Clients in the center of Copenhagen";
                          ! header.font = font;
                          ! header.textAlignment = UITextAlignmentCenter;
                          ! header.textColor = [UIColor whiteColor];
                          ! header.backgroundColor = [UIColor clearColor];
                          ! self.titleBar.topItem.titleView = header;
                          !
                          ...

                          }
                          ...




onsdag den 7. september 2011
Cocoa Touch
                                         &
                               Basic Design Patterns



onsdag den 7. september 2011
Cocoa Touch
                                      Selected Frameworks
                               • Core Audio       • Open GL ES      • Map Kit
                               • Open AL          • Quartz 2D       • Store Kit
                               • Media Library    • Bonjour         • Event Kit
                               • AV Foundation    • Webkit          • Game Kit
                               • Core Data        • BSD Sockets     • Core Image
                               • SQLite           • Address Book    • UI Kit
                               • Core Animation   • Core Location
onsdag den 7. september 2011
Model-View-Controller
                                                    Controller   Coordination

                                           Update                               Changes
                                                          Controller



                                                       Changes     Update

                                   Model                                               View

                               Model   Data                                     View      Display




onsdag den 7. september 2011
Delegate Pattern
                               • Formål: En delegate er et objekt, der får muligheden for
                                 at reagere på ændringer i eller påvirke adfærden hos et
                                 andet objekt.
                               • I Cocoa og Cocoa Touch benyttes følgende navne
                                 konvention for delegate metoder:
                                •   should

                                •   will

                                •   did



onsdag den 7. september 2011
Apple Developer Tools



onsdag den 7. september 2011
Xcode 4
                               • Source code editor
                               • Compiler (LLVM & GCC)
                               • Debugger (LLDB & GDB)
                               • Static Analysis
                               • SCM (Git, Subversion)
                               • DocViewer (Dokumentation)

onsdag den 7. september 2011
Xcode 4
                               •   Plus


                                   •   Static Analysis
                                       (http://clang-analyzer.llvm.org/)


                                   •   Markant lettere at uploade til iTunes Connect
                                       og tilføje devices end tidligere


                                   •   Git integration


                               •   Minus


                                   •   Desværre stadigvæk lidt buggy


                                   •   Refactoring?




onsdag den 7. september 2011
Interface Builder

                               • GUI Builder til hhv. iOS og OSX
                                 programmer.

                               • Interface designet gemmes i XIB
                                 filer og kompileres til NIB - realt
                                 en serialisering af objekter.

                               • Utroligt simpelt men stærkt.


onsdag den 7. september 2011
iOS Simulator

                               • Til hurtig afvikling af dine
                                 programmer - men ikke devicet
                                 da simulator og device ikke er
                                 100% ens.

                               • Understøtter flere typer af SDKs
                                 samt Retina display og iPad.




onsdag den 7. september 2011
Instruments

                               • Instruments er din ven!
                               • Bruges til at finde memory leaks,
                                 og over releases (NSZombie)

                               • Bruges også til at optimere
                                 performance, finde flaskehalse
                                 eller afvikling af automation
                                 scripts.




onsdag den 7. september 2011
Demo



onsdag den 7. september 2011
Apple Developer Portal



onsdag den 7. september 2011
Provisioning Portal
                               • Configure Profile
                                • Certificates
                                  • Signering af App før den kan afvikles på et device
                                • Devices
                                  • 100 devices
                                • AppID
                                  • Bruges bla. til In App Purchases, Push Notification, Hardware
                                     Accessory, Game Center & iCloud



onsdag den 7. september 2011
Provisioning Portal
                               • Download & Install
                                 • Development Provisioning Profile indeholder:
                                   • Development Certificates
                                   • Unique Device Identifiers
                                   • App ID.
                               • Build & Go
                                 • Ad hoc distribution - beta builds
                                 • AppStore distribution - production builds

onsdag den 7. september 2011
iTunes Connect

                               •   Produktet oprettes i AppStore via iTunes Connect
                                   • Beskrivelse af produktet samt keywords
                                   • Kategori
                                   • Screen Shots
                                   • Tilgængelighed (lande)



onsdag den 7. september 2011
iTunes Connect

                               • Customer Reviews
                               • Crash reports
                               • Financial reports
                               • Sales/Trends
                               • Manage Users



onsdag den 7. september 2011
One more thing...



onsdag den 7. september 2011
The new kid on the block
                               • AppCode fra Jetbrains
                               • Bygger på Jetbrains IntelliJ framework
                               • Refactoring kendt fra Jetbrains andre
                                 produkter så som IntelliJ, PyCharm,
                                 RubyMine etc.

                               • Integration med andre (D)VCS
                               • Plugin ecosystem
                               • Kræver at Xcode og SDK allerede er
                                 installeret



onsdag den 7. september 2011
Resources



onsdag den 7. september 2011
Online
                               • Google Group - cocoa-unbound
                                 http://groups.google.com/group/cocoa-
                                                                         • CocoaDev - wiki
                                                                           http://cocoadev.com/
                                 unbound/

                                                                         • Cocoa Dev Central
                               • Cocoa With Love - blog
                                 http://cocoawithlove.com/
                                                                           http://cocoadevcentral.com/


                                                                         • Der findes en del fine
                               • Cocoa is my girlfriend -blog
                                 http://www.cimgf.com/
                                                                           frameworks på Github
                                                                           http://github.com

                               • Apple Developer Connection
                                 Forum




onsdag den 7. september 2011
Offline
                CYAN                         YELLOW               SPOT MATTE                                                                                                    CYAN            YELLOW               SPOT MATTE
                MAGENTA                      BLACK                                                                                                                              MAGENTA         BLACK
                                             PANTONE 123 C                                                                                                                                      PANTONE 123 C




                                                                                                                                                                                                                                                                                                                                                                              By
                                                                                                                                                                                                                                                                                                 Companion




                                                                                                                                                                                                                                                                                                                                                                                 iP
                                                BOOKS FOR PROFESSIONALS BY PROFESSIONALS®                                                                                                            BOOKS FOR PROFESSIONALS BY PROFESSIONALS®




                                                                                                                                                                                                                                                                                                                                                                                 th
                                                                                                                                        Companion




                                                                                                                                                                                                                                                                                                                                                                                   e
                                                                                                                                                                                                                                                                                                 eBook




                                                                                                                                                                                                                                                                                                                                                                                     ho

                                                                                                                                                                                                                                                                                                                                                                                     be
                                                                                                                                        eBook




                                                                                                                                                                                                                                                                                                                                                                                       st
                                                                                                                                                                                                                                                                                                                                                                                        Be De
                                                                                                                                                                                                                                                                                                                                                                                         -s
                                                                                                                                                                                                                                                                                                                                                                                          ne

                                                                                                                                                                                                                                                                                                                                                                                           el
                                                                                                                                                                                                                                                                                                 Available




                                                                                                                                                                                                                                                                                                                                                                                             gi ve
                                                                                                                                                                                                                                                                                                                                                                                             lin
                                                                                                                                        Available




                                                                                                                                                                                                                                                                                                                                                                                                g
                                                                                                                                                                                                                                                                                                                                                                                                 nn lo
                                                                                                                                                                                                                                                                                                                                                                                                  au
                                                                                                                                                                                                                                                                                                                                                                                                    th
                                                                                                                                                                                                                           Turn Java Expertise into Mac OS X




                                                                                                                                                                                                                                                                                                                                                                                                      or
                                                                                                                                                                                                                                                                                                                                                                                                       in pm
                                                                                                                                                                                                                                                                                                                                             More Great iPhone API
                                                                                                                                                                                               I




                                                                                                                                                                                                                                                                                                                                                                                                        so
                                                                                                                                                             RELATED TITLES




                                                                                                                                                                                                                                                                                                                                                                                                         g e
                                                                                                                                                                                                                                                                                                                                                                                                            f
                            • Learn Objective-C, the language of native Mac and iPhone apps, by leveraging                                                                                      nterested in iPhone development? Want to learn more? Whether you’re a




                                                                                                                                                                                                                                                                                               More iPhone 3 Development
                                         the Java programming skills you already have.
                                                                                                                                        Learn Objective-C for Java Developers                                                and iPhone App Productivity
                                                                                                                                                                                                self taught iPhone dev or have just made your way through the pages of
                                                                                                                                                                                                                                                                                                                                          Coverage, Depth, and Insight




                                                                                                                                                                                                                                                                                                                                                                                                             nt
                                                                                                                                                                                               Beginning iPhone 3 Development, we’ve got a great new book for you.
                            • Learn to use Apple’s development environment, including just enough Cocoa                                                                                        More iPhone 3 Development: Tackling iPhone SDK 3 digs deep into Apple’s latest
                                         and Xcode. It’s the professional’s express route to Mac and iPhone developer
                                                                                                                                                                                               SDK, with bestselling authors Dave Mark and Je LaMarche explaining things
                                         pro ciency.
                                                                                                                                                                                               as only they can, covering topics like Core Data, peer-to-peer networking us-
                            • Learn by working through the exercises and then keep returning for reference                                                                                     ing GameKit and network streams, working with data from the web, MapKit,
                                         and further study. You’ll nd everything conveniently organized so you can                                                                             in-application e-mail, and more. All the concepts and APIs are clearly laid out
                                         reference techniques by design pattern.                                                                                                               and come complete with code snippets you can customize for use in your
                                                                                                                                                                                               most ambitious apps.

                          W      e all love Java, but Mac OS X is looking awfully cool these days and iPhone OS de-
                                 velopment is the most exciting new environment since, well…, since Java! If only
                          there were a way to avoid learning objective-C. If you’re a Javahead, you probably know a lot
                                                                                                                                                                                               More iPhone 3 Development continues right where Beginning iPhone 3 Develop-
                                                                                                                                                                                               ment left o , starting with a series of chapters devoted to Core Data, Apple’s
                                                                                                                                                                                               new standard for iPhone Persistence. Je and Dave step you through the key
                          more about objective-C than you think. The two languages are full of similarities and that’s
                                                                                                                                                                                               concepts of Core Data, including techniques and tips speci cally for writing
                          why we’ve published Learn Objective-C for Java Developers, your shortcut to Mac and iphone
                                                                                                                                                                                               Large-Scale Applications. For writing professional iPhone apps, you’ll want
                          development productivity.
                                                                                                                                                                                               to embrace Core Data,.
                          Both languages are object-oriented, use similar inheritance models, string classes, garbage
                                                                                                                                                                                               The depth and breadth of Core Data coverage alone is worth the price of ad-
                          collection, serialization, threads, introspection, and communications. They also embrace
                                                                                                                                                                                               mission, but there’s so much more. This book covers a variety of networking
                          proven design patterns like Model-View-Controller and property accessors. You’re already a
                                                                                                                                                                                               mechanisms, from GameKit’s relatively simple BlueTooth peer-to-peer model,
                          good portion of the way there and you haven’t even opened this book!
                                                                                                                                                                                               to the addition of Bonjour discovery and network streams, through the com-
                          We’ll show you how to use what you know about Java to understand and become quickly                                                                                  plexity of acquiring information through Web File Access. Dave and Je also
                          pro cient in Objective-C. Most important, we’ll show you how to take advantage of features                                                                           take you through advanced topics, such as Concurrent Programming and
                          unique to Objective-C and incorporate them into your designs. Don’t waste your hard-earned                                                                           techniques for Debugging.




                                                                                                                                                                                                     Learn Objective-C
                          Java knowledge by starting over in kindergarten. Move yourself to the head of the class and
                                                                                                                                                                                               Your knowledge of iPhone app creation can’t be considered complete until




                                                                                                                                                                                                                                                                                                                                   More
                          catapult over the Objective-C learning curve. You’ll be writing Mac OS X and iPhone apps
                                                                                                                                                                                               you’ve mastered all the knowledge imparted and techniques revealed in More
                          faster than you ever imagined possible.
                                                                                                                                                                                               iPhone 3 Development.
                          James Bucanek has over 25 years of experience in software and systems development.
                                                                                                                                                                                               Dave Mark is a long-time Mac developer and author and has written a num-
                          Having made the transition to Mac OS X many years ago, he has never looked back.
                                                                                                                                                                                               ber of books on Macintosh development, including Learn C on the Macintosh,
                                                                                                                                                                                               The Macintosh Programming Primer series, and Ultimate Mac Programming. His


                                                                                                                                                                                                            for
                                                                                                                                                                                                                                                                                                                           iPhone 3 Development
                                                                                                                                                                                               blog can be found at www.davemark.com.




                                                                                                                                                                                                      Java Developers
                                                                                                                                                                                                Je LaMarche is a longtime Mac developer, and Apple iPhone
                                                                                                                                                                                                Developer. With over 20 years of programming experience, he’s written
                            RELATED TITLES




                                                                                                                                                                                                on Cocoa and Objective-C for MacTech Magazine, as well as articles
                                                                                                                                                                                                for Apple’s Developer Technical Services website. He has experience



                                                                                                                                                                                                                                                                                                                                  Tackling iPhone SDK 3
                                                                                                                                                                                                working in Enterprise software, both as a developer for PeopleSoft
                                                                                                                                                                                                starting in the late 1990s, and then later as an independent consultant.




                                                                                                                                        Bucanek                                                                                                                                                                                         Dave Mark | Jeff LaMarche



                                                                                                                                                                                                                                                                                                    Mark
                COMPANION eBOOK                              SEE LAST PAGE FOR DETAILS ON $10 eBOOK VERSION
                                                                                                               ISBN 978-1-4302-2369-6                                           COMPANION eBOOK                                         James Bucanek ISBN
                                                                                                                                                                                                                SEE LAST PAGE FOR DETAILS ON $10 eBOOK VERSION             978-1-4302-2505-8
                                                                                                                             5 39 9 9                                                                                                                                               5 39 9 9
                                                                                                US $39.99                                                                                                                                          US $39.99

                                                                                                Shelve in                                                                                                                                      Shelve in:
                                                                                        Mac Development                                                                                                                Mobile Computing/Mac Development
                SOURCE CODE ONLINE                                                             User level:                                                                      SOURCE CODE ONLINE                                                User level:
                www.apress.com                                                    Intermediate–Advanced
                                                                                                              9 781430223696                                                    www.apress.com                                       Intermediate–Advanced       9 7814 225058
                                                                                                                                                                                                                                                                       30




                                               this print for content only—size & color not accurate                                                                                                 this print for content only—size & color not accurate
                                                                                                                                                                                                        Trim: 7.5 x 9.25 spine =0.96875" 520 page count                                                                      Trim: 7.5 x 9.25 spine = 0.000" 000 page count




onsdag den 7. september 2011
NSCoder Night
                               • NSCoder Night Copenhagen
                                 • Onsdag kl. 19-22
                                 • RETRO Nørrebro
                                  Jægersborggade 14
                                  2200 København N

                                • Twitter
                                  @copenhagencocoa




onsdag den 7. september 2011
Efficiency

onsdag den 7. september 2011
Simplified

onsdag den 7. september 2011
BARKODE

onsdag den 7. september 2011

Contenu connexe

En vedette

Anexo visual 2º cuatrimestre mariana vazquez
Anexo visual 2º cuatrimestre  mariana vazquezAnexo visual 2º cuatrimestre  mariana vazquez
Anexo visual 2º cuatrimestre mariana vazquez
geo39 geo39
 
Ocean habitat
Ocean habitatOcean habitat
Ocean habitat
grade3c
 
Memoria descriptiva pillco marca
Memoria descriptiva pillco marcaMemoria descriptiva pillco marca
Memoria descriptiva pillco marca
alienes004
 
Gerencia en el aula2
Gerencia en el aula2Gerencia en el aula2
Gerencia en el aula2
Mayré Rojas
 

En vedette (18)

Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
Anexo visual 2º cuatrimestre mariana vazquez
Anexo visual 2º cuatrimestre  mariana vazquezAnexo visual 2º cuatrimestre  mariana vazquez
Anexo visual 2º cuatrimestre mariana vazquez
 
Native Ads: Ad Content in Context
Native Ads: Ad Content in ContextNative Ads: Ad Content in Context
Native Ads: Ad Content in Context
 
Mountain Stream Group: Portfolio Sample - Media Kit
Mountain Stream Group: Portfolio Sample - Media KitMountain Stream Group: Portfolio Sample - Media Kit
Mountain Stream Group: Portfolio Sample - Media Kit
 
C15 - Advertising
C15 - AdvertisingC15 - Advertising
C15 - Advertising
 
Ocean habitat
Ocean habitatOcean habitat
Ocean habitat
 
Salesforce CRM para corredores, mediadores y comparadores de seguros
Salesforce CRM para corredores, mediadores y comparadores de segurosSalesforce CRM para corredores, mediadores y comparadores de seguros
Salesforce CRM para corredores, mediadores y comparadores de seguros
 
Key Note Session IDUG DB2 Seminar, 16th April London - Julian Stuhler .Trito...
Key Note Session  IDUG DB2 Seminar, 16th April London - Julian Stuhler .Trito...Key Note Session  IDUG DB2 Seminar, 16th April London - Julian Stuhler .Trito...
Key Note Session IDUG DB2 Seminar, 16th April London - Julian Stuhler .Trito...
 
Plantilla cuestionario sobre textos instructivos
Plantilla cuestionario sobre textos instructivosPlantilla cuestionario sobre textos instructivos
Plantilla cuestionario sobre textos instructivos
 
Solve It Labs Offshore Project Management
Solve It Labs Offshore Project ManagementSolve It Labs Offshore Project Management
Solve It Labs Offshore Project Management
 
Memoria descriptiva pillco marca
Memoria descriptiva pillco marcaMemoria descriptiva pillco marca
Memoria descriptiva pillco marca
 
The Audience Is in Charge. Why Every Business Model Should Put the Audience F...
The Audience Is in Charge. Why Every Business Model Should Put the Audience F...The Audience Is in Charge. Why Every Business Model Should Put the Audience F...
The Audience Is in Charge. Why Every Business Model Should Put the Audience F...
 
Gerencia en el aula2
Gerencia en el aula2Gerencia en el aula2
Gerencia en el aula2
 
Ajustes 1
Ajustes 1Ajustes 1
Ajustes 1
 
hipersensibilidades
hipersensibilidades hipersensibilidades
hipersensibilidades
 
Antracita
AntracitaAntracita
Antracita
 
Resolucion n° 214 2008-sunarp-tr-a - transferencia de participaciones sociales
Resolucion n° 214 2008-sunarp-tr-a - transferencia de participaciones socialesResolucion n° 214 2008-sunarp-tr-a - transferencia de participaciones sociales
Resolucion n° 214 2008-sunarp-tr-a - transferencia de participaciones sociales
 
Digital Triple Spark Ignition
Digital Triple Spark IgnitionDigital Triple Spark Ignition
Digital Triple Spark Ignition
 

Similaire à I phone udvikling best brains

JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies Today
Wesley Hales
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
Nuxeo
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
rsebbe
 
02 Objective C
02 Objective C02 Objective C
02 Objective C
Mahmoud
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
juliasceasor
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
Jonas Follesø
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
DataArt
 

Similaire à I phone udvikling best brains (20)

Ios development
Ios developmentIos development
Ios development
 
Image Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPadImage Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPad
 
Introduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for Android
 
Italian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch SessionItalian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch Session
 
5 Realms for Learning iOS Development
5 Realms for Learning iOS Development5 Realms for Learning iOS Development
5 Realms for Learning iOS Development
 
JavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies TodayJavaOne 2011 - Going Mobile With Java Based Technologies Today
JavaOne 2011 - Going Mobile With Java Based Technologies Today
 
Building Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst PlatformBuilding Effective and Rapid Applications with IBM MobileFirst Platform
Building Effective and Rapid Applications with IBM MobileFirst Platform
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
02 Objective C
02 Objective C02 Objective C
02 Objective C
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
C# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch Glasgow
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
 
Mobile application development; Complete steps
Mobile application development; Complete stepsMobile application development; Complete steps
Mobile application development; Complete steps
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
 
Java- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solutionJava- Java tech overview- Mazenet solution
Java- Java tech overview- Mazenet solution
 

Dernier

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 

I phone udvikling best brains

  • 1. iPhone Development onsdag den 7. september 2011
  • 2. Agenda • Requirements • The Objective C Programming Language • Cocoa Touch & Basic Design Patterns • Apple Developer Tools • Apple Developer Portal • Resources onsdag den 7. september 2011
  • 3. Who am I? onsdag den 7. september 2011
  • 4. Hvem er jeg? • Freelance udvikler i Barkode ApS & Bigger • Objective C, Java, Python • Udvikler af “Risteriet”, “MitNykredit” iPhone applikationerne • Arbejder p.t. på en ny universal app for Infopaq International A/S • Mac fanboy! onsdag den 7. september 2011
  • 5. Hvorfor iOS Platformen? • Nysgerrig efter en ny platform. • en ny platform • en ny type device • Andre problemstillinger end Enterprise Java • Et “nyt” programmeringssprog og et nyt framework. • Mac fanboy! onsdag den 7. september 2011
  • 6. onsdag den 7. september 2011
  • 7. Risteriet • Primært tænkt som reklame for et mindre kafferisteri i det indre København. • Benyttede frameworks: • Core Location • MapKit • MediaKit • JSON (eksternt framework) • Core Animation onsdag den 7. september 2011
  • 8. onsdag den 7. september 2011
  • 9. Mit Nykredit • Nykredits Mobile Bank • Ekstremt hurtigt udviklet • Udvalgte benyttede frameworks: • Core Location / MapKit • MediaKit • Core Animation og en del custom UIView’s • Valuta beregner • Pinkode husker • Diverse tabeller • ... • Webservices onsdag den 7. september 2011
  • 10. Mit Nykredit • Nykredits Mobile Bank • Ekstremt hurtigt udviklet • Udvalgte benyttede frameworks: • Core Location / MapKit • MediaKit • Core Animation og en del custom UIView’s • Valuta beregner • Pinkode husker • Diverse tabeller • ... • Webservices onsdag den 7. september 2011
  • 11. Requirements onsdag den 7. september 2011
  • 12. Get a Mac! • En Mac computer og helst et iOS device • Medlem af Apples iOS Developer Program - $99 • Installering af SDK og Developer Tools • “Live by the rules defined by the mothership” onsdag den 7. september 2011
  • 13. The Objective C Programming Language onsdag den 7. september 2011
  • 14. Objective C • Superset til C og derfor kan man benytte C og C++ • Objekt orienteret (1986) og baseret på message passing ala Smalltalk. • Udvidet i 2006 med properties, garbage collection og fast enumeration etc. • Memory Management • OSX - Garbage Collection. • iOS - explicit memory management (reference counting) (iOS 3/4). • “Automatic Reference Counting” (iOS 5) onsdag den 7. september 2011
  • 15. Objective C Syntax 1/3 @interface classname : superclassname { // instance variables } @property (nonatomic, retain) inst_type inst_name; + classMethod1; + (return_type)classMethod2; + (return_type)classMethod3:(param1_type)param1_varName; - (return_type)instanceMethod1:(param1_type)param1_varName andOtherParameter: (param2_type)param2_varName; - (return_type)instanceMethod2WithParameter:(param1_type)param1_varName andOtherParameter:(param2_type)param2_varName; @end onsdag den 7. september 2011
  • 16. Objective C Syntax 2/3 @implementation classname @synthesize type_name; + (return_type)classMethod { // implementation } - (return_type)instanceMethod2WithParameter:(param1_type) param1_varName andOtherParameter:(param2_type)param2_varName { // implementation } @end onsdag den 7. september 2011
  • 17. Objective C Syntax 3/3 @implementation ClientsMapViewController @synthesize titleBar, mapView; #pragma mark - #pragma mark Lifecycle // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; ! ! UIImageView *background = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease]; ! background.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; ! background.image = [UIImage imageNamed:@"dark_wood_tile"]; ! [self.titleBar addSubview:background]; ! // Sending the image to the back ensures that the text isn't shadowed by the image ! [self.titleBar sendSubviewToBack:background]; ! UIFont *font = [UIFont fontWithName:@"Lobster 1.4" size:17]; ! UILabel *header = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; ! header.text = @"Clients in the center of Copenhagen"; ! header.font = font; ! header.textAlignment = UITextAlignmentCenter; ! header.textColor = [UIColor whiteColor]; ! header.backgroundColor = [UIColor clearColor]; ! self.titleBar.topItem.titleView = header; ! ... } ... onsdag den 7. september 2011
  • 18. Cocoa Touch & Basic Design Patterns onsdag den 7. september 2011
  • 19. Cocoa Touch Selected Frameworks • Core Audio • Open GL ES • Map Kit • Open AL • Quartz 2D • Store Kit • Media Library • Bonjour • Event Kit • AV Foundation • Webkit • Game Kit • Core Data • BSD Sockets • Core Image • SQLite • Address Book • UI Kit • Core Animation • Core Location onsdag den 7. september 2011
  • 20. Model-View-Controller Controller Coordination Update Changes Controller Changes Update Model View Model Data View Display onsdag den 7. september 2011
  • 21. Delegate Pattern • Formål: En delegate er et objekt, der får muligheden for at reagere på ændringer i eller påvirke adfærden hos et andet objekt. • I Cocoa og Cocoa Touch benyttes følgende navne konvention for delegate metoder: • should • will • did onsdag den 7. september 2011
  • 22. Apple Developer Tools onsdag den 7. september 2011
  • 23. Xcode 4 • Source code editor • Compiler (LLVM & GCC) • Debugger (LLDB & GDB) • Static Analysis • SCM (Git, Subversion) • DocViewer (Dokumentation) onsdag den 7. september 2011
  • 24. Xcode 4 • Plus • Static Analysis (http://clang-analyzer.llvm.org/) • Markant lettere at uploade til iTunes Connect og tilføje devices end tidligere • Git integration • Minus • Desværre stadigvæk lidt buggy • Refactoring? onsdag den 7. september 2011
  • 25. Interface Builder • GUI Builder til hhv. iOS og OSX programmer. • Interface designet gemmes i XIB filer og kompileres til NIB - realt en serialisering af objekter. • Utroligt simpelt men stærkt. onsdag den 7. september 2011
  • 26. iOS Simulator • Til hurtig afvikling af dine programmer - men ikke devicet da simulator og device ikke er 100% ens. • Understøtter flere typer af SDKs samt Retina display og iPad. onsdag den 7. september 2011
  • 27. Instruments • Instruments er din ven! • Bruges til at finde memory leaks, og over releases (NSZombie) • Bruges også til at optimere performance, finde flaskehalse eller afvikling af automation scripts. onsdag den 7. september 2011
  • 28. Demo onsdag den 7. september 2011
  • 29. Apple Developer Portal onsdag den 7. september 2011
  • 30. Provisioning Portal • Configure Profile • Certificates • Signering af App før den kan afvikles på et device • Devices • 100 devices • AppID • Bruges bla. til In App Purchases, Push Notification, Hardware Accessory, Game Center & iCloud onsdag den 7. september 2011
  • 31. Provisioning Portal • Download & Install • Development Provisioning Profile indeholder: • Development Certificates • Unique Device Identifiers • App ID. • Build & Go • Ad hoc distribution - beta builds • AppStore distribution - production builds onsdag den 7. september 2011
  • 32. iTunes Connect • Produktet oprettes i AppStore via iTunes Connect • Beskrivelse af produktet samt keywords • Kategori • Screen Shots • Tilgængelighed (lande) onsdag den 7. september 2011
  • 33. iTunes Connect • Customer Reviews • Crash reports • Financial reports • Sales/Trends • Manage Users onsdag den 7. september 2011
  • 34. One more thing... onsdag den 7. september 2011
  • 35. The new kid on the block • AppCode fra Jetbrains • Bygger på Jetbrains IntelliJ framework • Refactoring kendt fra Jetbrains andre produkter så som IntelliJ, PyCharm, RubyMine etc. • Integration med andre (D)VCS • Plugin ecosystem • Kræver at Xcode og SDK allerede er installeret onsdag den 7. september 2011
  • 36. Resources onsdag den 7. september 2011
  • 37. Online • Google Group - cocoa-unbound http://groups.google.com/group/cocoa- • CocoaDev - wiki http://cocoadev.com/ unbound/ • Cocoa Dev Central • Cocoa With Love - blog http://cocoawithlove.com/ http://cocoadevcentral.com/ • Der findes en del fine • Cocoa is my girlfriend -blog http://www.cimgf.com/ frameworks på Github http://github.com • Apple Developer Connection Forum onsdag den 7. september 2011
  • 38. Offline CYAN YELLOW SPOT MATTE CYAN YELLOW SPOT MATTE MAGENTA BLACK MAGENTA BLACK PANTONE 123 C PANTONE 123 C By Companion iP BOOKS FOR PROFESSIONALS BY PROFESSIONALS® BOOKS FOR PROFESSIONALS BY PROFESSIONALS® th Companion e eBook ho be eBook st Be De -s ne el Available gi ve lin Available g nn lo au th Turn Java Expertise into Mac OS X or in pm More Great iPhone API I so RELATED TITLES g e f • Learn Objective-C, the language of native Mac and iPhone apps, by leveraging nterested in iPhone development? Want to learn more? Whether you’re a More iPhone 3 Development the Java programming skills you already have. Learn Objective-C for Java Developers and iPhone App Productivity self taught iPhone dev or have just made your way through the pages of Coverage, Depth, and Insight nt Beginning iPhone 3 Development, we’ve got a great new book for you. • Learn to use Apple’s development environment, including just enough Cocoa More iPhone 3 Development: Tackling iPhone SDK 3 digs deep into Apple’s latest and Xcode. It’s the professional’s express route to Mac and iPhone developer SDK, with bestselling authors Dave Mark and Je LaMarche explaining things pro ciency. as only they can, covering topics like Core Data, peer-to-peer networking us- • Learn by working through the exercises and then keep returning for reference ing GameKit and network streams, working with data from the web, MapKit, and further study. You’ll nd everything conveniently organized so you can in-application e-mail, and more. All the concepts and APIs are clearly laid out reference techniques by design pattern. and come complete with code snippets you can customize for use in your most ambitious apps. W e all love Java, but Mac OS X is looking awfully cool these days and iPhone OS de- velopment is the most exciting new environment since, well…, since Java! If only there were a way to avoid learning objective-C. If you’re a Javahead, you probably know a lot More iPhone 3 Development continues right where Beginning iPhone 3 Develop- ment left o , starting with a series of chapters devoted to Core Data, Apple’s new standard for iPhone Persistence. Je and Dave step you through the key more about objective-C than you think. The two languages are full of similarities and that’s concepts of Core Data, including techniques and tips speci cally for writing why we’ve published Learn Objective-C for Java Developers, your shortcut to Mac and iphone Large-Scale Applications. For writing professional iPhone apps, you’ll want development productivity. to embrace Core Data,. Both languages are object-oriented, use similar inheritance models, string classes, garbage The depth and breadth of Core Data coverage alone is worth the price of ad- collection, serialization, threads, introspection, and communications. They also embrace mission, but there’s so much more. This book covers a variety of networking proven design patterns like Model-View-Controller and property accessors. You’re already a mechanisms, from GameKit’s relatively simple BlueTooth peer-to-peer model, good portion of the way there and you haven’t even opened this book! to the addition of Bonjour discovery and network streams, through the com- We’ll show you how to use what you know about Java to understand and become quickly plexity of acquiring information through Web File Access. Dave and Je also pro cient in Objective-C. Most important, we’ll show you how to take advantage of features take you through advanced topics, such as Concurrent Programming and unique to Objective-C and incorporate them into your designs. Don’t waste your hard-earned techniques for Debugging. Learn Objective-C Java knowledge by starting over in kindergarten. Move yourself to the head of the class and Your knowledge of iPhone app creation can’t be considered complete until More catapult over the Objective-C learning curve. You’ll be writing Mac OS X and iPhone apps you’ve mastered all the knowledge imparted and techniques revealed in More faster than you ever imagined possible. iPhone 3 Development. James Bucanek has over 25 years of experience in software and systems development. Dave Mark is a long-time Mac developer and author and has written a num- Having made the transition to Mac OS X many years ago, he has never looked back. ber of books on Macintosh development, including Learn C on the Macintosh, The Macintosh Programming Primer series, and Ultimate Mac Programming. His for iPhone 3 Development blog can be found at www.davemark.com. Java Developers Je LaMarche is a longtime Mac developer, and Apple iPhone Developer. With over 20 years of programming experience, he’s written RELATED TITLES on Cocoa and Objective-C for MacTech Magazine, as well as articles for Apple’s Developer Technical Services website. He has experience Tackling iPhone SDK 3 working in Enterprise software, both as a developer for PeopleSoft starting in the late 1990s, and then later as an independent consultant. Bucanek Dave Mark | Jeff LaMarche Mark COMPANION eBOOK SEE LAST PAGE FOR DETAILS ON $10 eBOOK VERSION ISBN 978-1-4302-2369-6 COMPANION eBOOK James Bucanek ISBN SEE LAST PAGE FOR DETAILS ON $10 eBOOK VERSION 978-1-4302-2505-8 5 39 9 9 5 39 9 9 US $39.99 US $39.99 Shelve in Shelve in: Mac Development Mobile Computing/Mac Development SOURCE CODE ONLINE User level: SOURCE CODE ONLINE User level: www.apress.com Intermediate–Advanced 9 781430223696 www.apress.com Intermediate–Advanced 9 7814 225058 30 this print for content only—size & color not accurate this print for content only—size & color not accurate Trim: 7.5 x 9.25 spine =0.96875" 520 page count Trim: 7.5 x 9.25 spine = 0.000" 000 page count onsdag den 7. september 2011
  • 39. NSCoder Night • NSCoder Night Copenhagen • Onsdag kl. 19-22 • RETRO Nørrebro Jægersborggade 14 2200 København N • Twitter @copenhagencocoa onsdag den 7. september 2011
  • 40. Efficiency onsdag den 7. september 2011
  • 41. Simplified onsdag den 7. september 2011
  • 42. BARKODE onsdag den 7. september 2011