SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Computer Science Large Practical:

                                Programming with Xcode

                                               Stephen Gilmore

                                               School of Informatics


                                          Friday 19th October, 2012




Stephen Gilmore (School of Informatics)      Computer Science Large Practical   Friday 19th October, 2012   1 / 47
News



         There will be no CSLP lecture next week. The next CSLP lecture will
         be on Friday 2nd November.

         As of Tuesday, Xcode is now available on all the Open Access Lab
         Apple Macs in the Main Library in George Square.
                 If you are developing on the Macs in the library you do not need to
                 install Xcode.
                 We see first how to install Xcode if you are working on your (Mac)
                 laptop.




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   2 / 47
Xcode is available from the App Store




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   3 / 47
Click to install




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   4 / 47
Supply your Apple ID password




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   5 / 47
The button will change to “Installing”




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   6 / 47
Foo




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   7 / 47
Accept the License Agreement




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   8 / 47
Some components may be updated




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   9 / 47
Requires system permission




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   10 / 47
Installing ...




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   11 / 47
Installing ...




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   12 / 47
Installation complete




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   13 / 47
Welcome screen




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   14 / 47
Create a new project




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   15 / 47
Many options, including iOS projects




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   16 / 47
Choose an OS X application




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   17 / 47
Choose a command-line tool




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   18 / 47
Choose options




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   19 / 47
Choose options




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   20 / 47
Choose Foundation for Objective-C




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   21 / 47
Can choose to create a git repository




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   22 / 47
Project main screen




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   23 / 47
Project has sample “Hello World” code




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   24 / 47
Autocompletion suggests options




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   25 / 47
Autocompletion suggests options




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   26 / 47
Autocompletion suggests options




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   27 / 47
Static analysis warns about code problems




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   28 / 47
Autocompletion works on literals too




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   29 / 47
Deliberately seeding a bug, overwriting a needed value




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   30 / 47
Static analysis warns about format string errors




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   31 / 47
Fixing the format string error




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   32 / 47
Running the code (first time)




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   33 / 47
Requires authentication




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   34 / 47
Build succeeded




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   35 / 47
Output in console




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   36 / 47
Using static analysis to find errors (choose Analyze)




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   37 / 47
Errors detected: value stored to ‘s’ is never read




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   38 / 47
Xcode decides to download libraries




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   39 / 47
Xcode decides to download libraries




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   40 / 47
Decide to initialise string




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   41 / 47
Looking for appropriate init method




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   42 / 47
Looking for appropriate init method (initWithString: ?)




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   43 / 47
Using “initWithString:” with a literal is redundant




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   44 / 47
Checking documentation




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   45 / 47
Code compiles without warnings — even with Analyze




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   46 / 47
Produces expected result




Stephen Gilmore (School of Informatics)   Computer Science Large Practical   Friday 19th October, 2012   47 / 47

Contenu connexe

Plus de Stephen Gilmore

More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation ExamplesStephen Gilmore
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with RobotiumStephen Gilmore
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with AndroidStephen Gilmore
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-CStephen Gilmore
 
Working with databases in Android
Working with databases in AndroidWorking with databases in Android
Working with databases in AndroidStephen Gilmore
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-CStephen Gilmore
 
SELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsSELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsStephen Gilmore
 
The Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmThe Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmStephen Gilmore
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android DevelopmentStephen Gilmore
 
Computer Science Large Practical coursework
Computer Science Large Practical courseworkComputer Science Large Practical coursework
Computer Science Large Practical courseworkStephen Gilmore
 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical courseworkStephen Gilmore
 
Introduction to the CSLP and the SELP
Introduction to the CSLP and the SELPIntroduction to the CSLP and the SELP
Introduction to the CSLP and the SELPStephen Gilmore
 
Fixing errors in Android Java applications
Fixing errors in Android Java applicationsFixing errors in Android Java applications
Fixing errors in Android Java applicationsStephen Gilmore
 
Feedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual PracticalFeedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual PracticalStephen Gilmore
 
Creating and working with databases in Android
Creating and working with databases in AndroidCreating and working with databases in Android
Creating and working with databases in AndroidStephen Gilmore
 
Continuing Android development
Continuing Android developmentContinuing Android development
Continuing Android developmentStephen Gilmore
 
Project management for the individual practical
Project management for the individual practicalProject management for the individual practical
Project management for the individual practicalStephen Gilmore
 
Beginning Android development
Beginning Android developmentBeginning Android development
Beginning Android developmentStephen Gilmore
 
CS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDCS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDStephen Gilmore
 

Plus de Stephen Gilmore (19)

More Stochastic Simulation Examples
More Stochastic Simulation ExamplesMore Stochastic Simulation Examples
More Stochastic Simulation Examples
 
Testing Android apps with Robotium
Testing Android apps with RobotiumTesting Android apps with Robotium
Testing Android apps with Robotium
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with Android
 
Quick quiz on Objective-C
Quick quiz on Objective-CQuick quiz on Objective-C
Quick quiz on Objective-C
 
Working with databases in Android
Working with databases in AndroidWorking with databases in Android
Working with databases in Android
 
Crash Course in Objective-C
Crash Course in Objective-CCrash Course in Objective-C
Crash Course in Objective-C
 
SELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and ManifestsSELP: Debugging, AVDs and Manifests
SELP: Debugging, AVDs and Manifests
 
The Stochastic Simulation Algorithm
The Stochastic Simulation AlgorithmThe Stochastic Simulation Algorithm
The Stochastic Simulation Algorithm
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
Computer Science Large Practical coursework
Computer Science Large Practical courseworkComputer Science Large Practical coursework
Computer Science Large Practical coursework
 
Software Engineering Large Practical coursework
Software Engineering Large Practical courseworkSoftware Engineering Large Practical coursework
Software Engineering Large Practical coursework
 
Introduction to the CSLP and the SELP
Introduction to the CSLP and the SELPIntroduction to the CSLP and the SELP
Introduction to the CSLP and the SELP
 
Fixing errors in Android Java applications
Fixing errors in Android Java applicationsFixing errors in Android Java applications
Fixing errors in Android Java applications
 
Feedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual PracticalFeedback on Part 1 of the Individual Practical
Feedback on Part 1 of the Individual Practical
 
Creating and working with databases in Android
Creating and working with databases in AndroidCreating and working with databases in Android
Creating and working with databases in Android
 
Continuing Android development
Continuing Android developmentContinuing Android development
Continuing Android development
 
Project management for the individual practical
Project management for the individual practicalProject management for the individual practical
Project management for the individual practical
 
Beginning Android development
Beginning Android developmentBeginning Android development
Beginning Android development
 
CS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVDCS/SE Individual practical - DDMS and AVD
CS/SE Individual practical - DDMS and AVD
 

Dernier

Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptxJonalynLegaspi2
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Projectjordimapav
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 

Dernier (20)

Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
week 1 cookery 8 fourth - quarter .pptx
week 1 cookery 8  fourth  -  quarter .pptxweek 1 cookery 8  fourth  -  quarter .pptx
week 1 cookery 8 fourth - quarter .pptx
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
ClimART Action | eTwinning Project
ClimART Action    |    eTwinning ProjectClimART Action    |    eTwinning Project
ClimART Action | eTwinning Project
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 

Getting started with Xcode

  • 1. Computer Science Large Practical: Programming with Xcode Stephen Gilmore School of Informatics Friday 19th October, 2012 Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 1 / 47
  • 2. News There will be no CSLP lecture next week. The next CSLP lecture will be on Friday 2nd November. As of Tuesday, Xcode is now available on all the Open Access Lab Apple Macs in the Main Library in George Square. If you are developing on the Macs in the library you do not need to install Xcode. We see first how to install Xcode if you are working on your (Mac) laptop. Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 2 / 47
  • 3. Xcode is available from the App Store Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 3 / 47
  • 4. Click to install Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 4 / 47
  • 5. Supply your Apple ID password Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 5 / 47
  • 6. The button will change to “Installing” Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 6 / 47
  • 7. Foo Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 7 / 47
  • 8. Accept the License Agreement Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 8 / 47
  • 9. Some components may be updated Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 9 / 47
  • 10. Requires system permission Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 10 / 47
  • 11. Installing ... Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 11 / 47
  • 12. Installing ... Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 12 / 47
  • 13. Installation complete Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 13 / 47
  • 14. Welcome screen Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 14 / 47
  • 15. Create a new project Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 15 / 47
  • 16. Many options, including iOS projects Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 16 / 47
  • 17. Choose an OS X application Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 17 / 47
  • 18. Choose a command-line tool Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 18 / 47
  • 19. Choose options Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 19 / 47
  • 20. Choose options Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 20 / 47
  • 21. Choose Foundation for Objective-C Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 21 / 47
  • 22. Can choose to create a git repository Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 22 / 47
  • 23. Project main screen Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 23 / 47
  • 24. Project has sample “Hello World” code Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 24 / 47
  • 25. Autocompletion suggests options Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 25 / 47
  • 26. Autocompletion suggests options Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 26 / 47
  • 27. Autocompletion suggests options Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 27 / 47
  • 28. Static analysis warns about code problems Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 28 / 47
  • 29. Autocompletion works on literals too Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 29 / 47
  • 30. Deliberately seeding a bug, overwriting a needed value Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 30 / 47
  • 31. Static analysis warns about format string errors Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 31 / 47
  • 32. Fixing the format string error Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 32 / 47
  • 33. Running the code (first time) Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 33 / 47
  • 34. Requires authentication Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 34 / 47
  • 35. Build succeeded Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 35 / 47
  • 36. Output in console Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 36 / 47
  • 37. Using static analysis to find errors (choose Analyze) Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 37 / 47
  • 38. Errors detected: value stored to ‘s’ is never read Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 38 / 47
  • 39. Xcode decides to download libraries Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 39 / 47
  • 40. Xcode decides to download libraries Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 40 / 47
  • 41. Decide to initialise string Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 41 / 47
  • 42. Looking for appropriate init method Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 42 / 47
  • 43. Looking for appropriate init method (initWithString: ?) Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 43 / 47
  • 44. Using “initWithString:” with a literal is redundant Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 44 / 47
  • 45. Checking documentation Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 45 / 47
  • 46. Code compiles without warnings — even with Analyze Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 46 / 47
  • 47. Produces expected result Stephen Gilmore (School of Informatics) Computer Science Large Practical Friday 19th October, 2012 47 / 47