SlideShare a Scribd company logo
1 of 39
Download to read offline
Using Xcode
Introduction to XCode 
• This tutorial will walk you through 
Xcode, a software development tool 
for Apple’s iOS applications 
– We will explore its different parts and 
their functions 
– This tutorial will teach you how to use 
Xcode, but not how to build an app. 
• To build an app, you need to know Objective- 
C.
Useful Terms 
• Objective-C: the programming 
language used to write iOS 
applications, based on C and using 
object oriented programming 
methods 
• Object: a collection of code with its 
data and ways to manipulate that 
data
Useful Terms 
• View: how your program presents 
information to the user 
• Model: how your data is represented 
inside of your application
App Templates, Pt 2 
Tabbed: Like the iPod 
app, with lots of 
different ways to 
view the same 
database items 
Utility: Like the 
weather app, a 
main view and a 
configuration view 
Empty: You 
build 
everything 
from scratch
Starting an App 
Choose the name you 
want for your app 
Click ‘Next’ 
Choose a folder in which 
to save your app 
Finally, choose your 
device 
Writing a universal 
iOS app is more 
difficult than writing 
for just one device
This is what your screen looks like 
now….
The main parts we’ll be 
focusing on… 
1. Navigator Panel 
2. Inspector Panel 
3. Libraries
Navigator Panel
The Classes folder 
contains two objects: 
- The App Delegate 
- The View Controller 
The extensions: 
- .h = header, defines 
object 
- .m= main/body 
-.xib= XML interface 
builder
The App Delegate 
• Handles starting and ending your 
app 
• Serves as a go-between between iOS 
and your app 
– Hands off control to your code after 
starting
The View Controller 
• Handles everything that shows up on 
screen 
• Handles all the info that the onscreen 
objects need to display themselves 
• Translates between the view and the 
model 
• Responds to user input and uses that 
to change model data 
– Responsible for updating view from the 
model
To help visualize… 
From developer.apple.com
XML Interface 
Builder 
This is where you lay 
out graphic views 
The view controller 
knows how to talk to 
the objects that have 
been created here 
Lots of formatting 
options
Supporting Files, Pt. 1 
These are system 
files 
.plist = property list 
Appname-Info.plist = 
contains info about 
your app for the iOS. 
It is an XML file that 
includes the options 
you put on your app 
(which device, etc.) 
InfoPlist.strings = 
helps to 
internationalize your 
app 
- Language
Supporting Files, Pt. 2 
Main.m = low level. 
Starts app and gives 
to the App Delegate. 
Never change this 
file. 
.pch = pre-compiled 
header 
Appname-Prefix.pch 
= generated by the 
system to speed up 
builds
Frameworks 
Frameworks contains a lot of 
already written code provided 
by the system 
- A library of code bits 
- Related to the Libraries 
menu on the right of 
Xcode 
UIKit = contains code for 
everything that interfaces 
with the user (views) 
Foundation = alll the 
components used to build the 
model 
CoreGraphics = handles 
drawing on the screen
Inspector Panel 
• This area contains 
utilities panels that 
let you change 
properties of your 
app’s view objects, 
like: 
• Colors 
• Sizes 
• Images 
• Button actions
Libraries 
• Different goodies 
depending on which 
icon you click 
– From left to right: 
• File templates 
• Code snippets 
• View Objects 
• Media/Images
Model, View, Controller 
(MVC) 
iOS applications follows 
the MVC design pattern. 
• Model: Represents the business 
logic of your application 
• View: Represents what the user sees 
in the device
• Controller: Acts as a mediator 
between the Model and View. There 
should not be any direct 
conversation between the View and 
the Model. The Controller updates 
the View based on any changes in 
the underlying Model. If the user 
enters or updates any information in 
the View, the changes are reflected 
in the Model with the help of the 
Controller.
How does a View or Model interact 
with the Controller? 
• Views can interact with the Controller with 
the help of targets or delegates. 
• Whenever the user interacts with a View, 
for example by touching a button, the 
View can set the Controller associated with 
it as the target of the user’s action. Thus 
the Controller can decide on further 
actions to be taken. We will see how this 
can be achieved in the later part of this 
tutorial. 
• Views can also delegate some of the 
actions to the Controller by setting the 
Controller as its delegate.
MVC
• The Model notifies the Controller of 
any data changes, and in turn, the 
Controller updates the data in the 
Views. The View can then notify the 
Controller of actions the user 
performed and the Controller will 
either update the Model if necessary 
or retrieve any requested data.
Outlet And Actions Outlet: 
• ViewController talks to View by using 
Outlet. Any object (UILabel, UIButton, 
UIImage, UIView etc) in View can have an 
Outlet connection to ViewController. Outlet 
is used as @property in ViewController 
which means that: 
• you can set something (like Update 
UILabel's text, Set background image of a 
UIView etc.) of an object by using outlet. 
• you can get something from an object 
(like current value of UIStepper, current 
font size of a NSAttributedString etc.)
Action: 
• View pass on messages about view to 
ViewController by using Action (Or in 
technical terms ViewController set itself 
as Target for any Action in View). Action is 
a Method in ViewController (unlike Outlet 
which is @property in ViewController). 
• Whenever something (any Event) 
happens to an object (like UIbutton is 
tapped) then Action pass on message to 
ViewController. Action (or Action method) 
can do something after receiving the 
message. 
Note: Action can be set only by UIControl's 
child object; means you can't set Action 
for UILabel, UIView etc.
Application Life 
Cycle
• application:willFinishLaunchingWithOp 
tions: 
—This method is your app’s first 
chance to execute code at launch 
time. 
• application:didFinishLaunchingWithOp 
tions: 
—This method allows you to perform 
any final initialization before your 
app is displayed to the user. 
• applicationDidBecomeActive:—Lets 
your app know that it is about to 
become the foreground app. Use this 
method for any last minute 
preparation.
• applicationWillResignActive:—Lets you know 
that your app is transitioning away from 
being the foreground app. Use this method to 
put your app into a quiescent state. 
• applicationDidEnterBackground:—Lets you 
know that your app is now running in the 
background and may be suspended at any 
time. 
• applicationWillEnterForeground:—Lets you 
know that your app is moving out of the 
background and back into the foreground, 
but that it is not yet active. 
• applicationWillTerminate:—Lets you know 
that your app is being terminated. This 
method is not called if your app is 
suspended.
Application State 
• Not running 
• Inactive 
• Active 
• Background 
• Suspended
View controller 
• Connect the view and the controller 
with 
IBOutlet
View Controller Life Cycle 
• - (void)viewDidLoad; 
• -( B(OvoOidL))vaineiwmWatiellAd;ppear: 
• -( B(OvoOidL))vaineiwmDaitdeAdp; pear: 
• - (void)viewWillDisappear: 
(BOOL)animated; 
• - (void)viewDidDisappear: 
(BOOL)animated:
UINavigationController 
• The UINavigationController class 
implements a specialized view 
controller that manages the 
navigation of hierarchical content. 
This navigation interface makes it 
possible to present your data 
efficiently and makes it easier for the 
user to navigate that content. 
• A navigation controller object 
manages the currently displayed 
screens using the navigation stack
TableView Control 
• Table View is one of the common UI 
elements in iOS apps 
• Most apps, in some ways, make use of 
Table View to display list of data 
• The “UITableViewDelegate” and 
“UITableViewDataSource” are known as 
protocol in Objective-C. Basically, in order 
to display data in Table View, we have to 
conform to the requirements defined in the 
protocols and implement all the 
mandatory methods.
UITableViewDelegate 
• UITableViewDelegate, deals with the 
appearance of the UITableView. 
Optional methods of the protocols let 
you manage the height of a table 
row, configure section headings and 
footers, re-order table cells, etc.
UITableViewDataSource 
• We’ll use the table view to present a 
list of recipes. So how do you tell 
UITableView the list of data to 
display? UITableViewDataSource is 
the answer. It’s the link between your 
data and the table view. The 
UITableViewDataSource protocol 
declares two required methods 
• tableView:cellForRowAtIndexPath 
• tableView:numberOfRowsInSection

More Related Content

What's hot

Consuming Web Services in Android
Consuming Web Services in AndroidConsuming Web Services in Android
Consuming Web Services in AndroidDavid Truxall
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing FundamentalsChankey Pathak
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application DevelopmentBenny Skogberg
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering NotesNavjyotsinh Jadeja
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Software Development Methodologies
Software Development MethodologiesSoftware Development Methodologies
Software Development MethodologiesNicholas Davis
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principlesDonato Di Pierro
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testingsandeepsingh2808
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | EdurekaEdureka!
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPTDhivya T
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-conceptsmedsherb
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming LanguageCihad Horuzoğlu
 
Software Testing
Software TestingSoftware Testing
Software TestingSengu Msc
 

What's hot (20)

Consuming Web Services in Android
Consuming Web Services in AndroidConsuming Web Services in Android
Consuming Web Services in Android
 
Mobile Programming
Mobile Programming Mobile Programming
Mobile Programming
 
Software Testing Fundamentals
Software Testing FundamentalsSoftware Testing Fundamentals
Software Testing Fundamentals
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Software Development Methodologies
Software Development MethodologiesSoftware Development Methodologies
Software Development Methodologies
 
Static Testing
Static TestingStatic Testing
Static Testing
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
 
Defects in software testing
Defects in software testingDefects in software testing
Defects in software testing
 
Amazon search test case document
Amazon search test case documentAmazon search test case document
Amazon search test case document
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Code coverage
Code coverageCode coverage
Code coverage
 
RMMM Plan
RMMM PlanRMMM Plan
RMMM Plan
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming Language
 
Software testing axioms
Software testing axiomsSoftware testing axioms
Software testing axioms
 
Software Testing
Software TestingSoftware Testing
Software Testing
 

Viewers also liked

iPhone Development Tools
iPhone Development ToolsiPhone Development Tools
iPhone Development ToolsOmar Cafini
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with XcodeStephen Gilmore
 
Corso Iphone in 48h
Corso Iphone in 48hCorso Iphone in 48h
Corso Iphone in 48hFLT.lab
 
Orthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable CodeOrthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable Codersebbe
 
Objective-C for iOS Application Development
Objective-C for iOS Application DevelopmentObjective-C for iOS Application Development
Objective-C for iOS Application DevelopmentDhaval Kaneria
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能Shingo Sato
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architectureDhaval Kaneria
 
iOS 101 - Xcode, Objective-C, iOS APIs
iOS 101 - Xcode, Objective-C, iOS APIsiOS 101 - Xcode, Objective-C, iOS APIs
iOS 101 - Xcode, Objective-C, iOS APIsSubhransu Behera
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
キーボードで完結!ハイスピード Xcodeコーディング
キーボードで完結!ハイスピード Xcodeコーディングキーボードで完結!ハイスピード Xcodeコーディング
キーボードで完結!ハイスピード Xcodeコーディングcocopon
 

Viewers also liked (15)

iPhone Development Tools
iPhone Development ToolsiPhone Development Tools
iPhone Development Tools
 
Getting started with Xcode
Getting started with XcodeGetting started with Xcode
Getting started with Xcode
 
Xcode - Just do it
Xcode - Just do itXcode - Just do it
Xcode - Just do it
 
Corso Iphone in 48h
Corso Iphone in 48hCorso Iphone in 48h
Corso Iphone in 48h
 
Orthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable CodeOrthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable Code
 
Objective-C for iOS Application Development
Objective-C for iOS Application DevelopmentObjective-C for iOS Application Development
Objective-C for iOS Application Development
 
Swine flu
Swine flu Swine flu
Swine flu
 
Xcode 6の新機能
Xcode 6の新機能Xcode 6の新機能
Xcode 6の新機能
 
HDMI
HDMIHDMI
HDMI
 
Gpu with cuda architecture
Gpu with cuda architectureGpu with cuda architecture
Gpu with cuda architecture
 
iOS 101 - Xcode, Objective-C, iOS APIs
iOS 101 - Xcode, Objective-C, iOS APIsiOS 101 - Xcode, Objective-C, iOS APIs
iOS 101 - Xcode, Objective-C, iOS APIs
 
Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
キーボードで完結!ハイスピード Xcodeコーディング
キーボードで完結!ハイスピード Xcodeコーディングキーボードで完結!ハイスピード Xcodeコーディング
キーボードで完結!ハイスピード Xcodeコーディング
 
IELTS ORIENTATION
IELTS ORIENTATIONIELTS ORIENTATION
IELTS ORIENTATION
 
Apple iOS
Apple iOSApple iOS
Apple iOS
 

Similar to Getting Started with Xcode - A Beginner's Guide

Ios development 2
Ios development 2Ios development 2
Ios development 2elnaqah
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureVu Tran Lam
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewSammy Sunny
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyUna Daly
 
What is ui element in i phone developmetn
What is ui element in i phone developmetnWhat is ui element in i phone developmetn
What is ui element in i phone developmetnTOPS Technologies
 
Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Michael Shrove
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1Hussain Behestee
 
ANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.docANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.docPalakjaiswal43
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppMike Taylor
 

Similar to Getting Started with Xcode - A Beginner's Guide (20)

Ios development 2
Ios development 2Ios development 2
Ios development 2
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
 
Visual basic
Visual basic Visual basic
Visual basic
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical Overview
 
Code camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una DalyCode camp 2011 Getting Started with IOS, Una Daly
Code camp 2011 Getting Started with IOS, Una Daly
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)
 
ios basics
ios basicsios basics
ios basics
 
Ui 5
Ui   5Ui   5
Ui 5
 
What is ui element in i phone developmetn
What is ui element in i phone developmetnWhat is ui element in i phone developmetn
What is ui element in i phone developmetn
 
Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)Android and IOS UI Development (Android 5.0 and iOS 9.0)
Android and IOS UI Development (Android 5.0 and iOS 9.0)
 
iOS app dev Training - Session1
iOS app dev Training - Session1iOS app dev Training - Session1
iOS app dev Training - Session1
 
04 objective-c session 4
04  objective-c session 404  objective-c session 4
04 objective-c session 4
 
Swift
SwiftSwift
Swift
 
IOS- Designing with ui tool bar in ios
IOS-  Designing with ui tool bar in iosIOS-  Designing with ui tool bar in ios
IOS- Designing with ui tool bar in ios
 
Mobile Application Development class 003
Mobile Application Development class 003Mobile Application Development class 003
Mobile Application Development class 003
 
iOS (7) Workshop
iOS (7) WorkshopiOS (7) Workshop
iOS (7) Workshop
 
ANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.docANDROID LAB MANUAL.doc
ANDROID LAB MANUAL.doc
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet App
 
IOS Storyboards
IOS StoryboardsIOS Storyboards
IOS Storyboards
 

More from Dhaval Kaneria

Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and AlgorithmDhaval Kaneria
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and AlgorithmDhaval Kaneria
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Dhaval Kaneria
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1Dhaval Kaneria
 
8 bit single cycle processor
8 bit single cycle processor8 bit single cycle processor
8 bit single cycle processorDhaval Kaneria
 
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
Paper on Optimized AES Algorithm Core Using  FeedBack Architecture Paper on Optimized AES Algorithm Core Using  FeedBack Architecture
Paper on Optimized AES Algorithm Core Using FeedBack Architecture Dhaval Kaneria
 
PAPER ON MEMS TECHNOLOGY
PAPER ON MEMS TECHNOLOGYPAPER ON MEMS TECHNOLOGY
PAPER ON MEMS TECHNOLOGYDhaval Kaneria
 
VIdeo Compression using sum of Absolute Difference
VIdeo Compression using sum of Absolute DifferenceVIdeo Compression using sum of Absolute Difference
VIdeo Compression using sum of Absolute DifferenceDhaval Kaneria
 

More from Dhaval Kaneria (16)

Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
 
Hdmi
HdmiHdmi
Hdmi
 
open source hardware
open source hardwareopen source hardware
open source hardware
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1
Manage Xilinx ISE 14.5 licence for Windows 8 and 8.1
 
VERILOG CODE
VERILOG CODEVERILOG CODE
VERILOG CODE
 
8 bit single cycle processor
8 bit single cycle processor8 bit single cycle processor
8 bit single cycle processor
 
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
Paper on Optimized AES Algorithm Core Using  FeedBack Architecture Paper on Optimized AES Algorithm Core Using  FeedBack Architecture
Paper on Optimized AES Algorithm Core Using FeedBack Architecture
 
PAPER ON MEMS TECHNOLOGY
PAPER ON MEMS TECHNOLOGYPAPER ON MEMS TECHNOLOGY
PAPER ON MEMS TECHNOLOGY
 
VIdeo Compression using sum of Absolute Difference
VIdeo Compression using sum of Absolute DifferenceVIdeo Compression using sum of Absolute Difference
VIdeo Compression using sum of Absolute Difference
 
Mems technology
Mems technologyMems technology
Mems technology
 
Network security
Network securityNetwork security
Network security
 
Token bus standard
Token bus standardToken bus standard
Token bus standard
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 

Getting Started with Xcode - A Beginner's Guide

  • 2. Introduction to XCode • This tutorial will walk you through Xcode, a software development tool for Apple’s iOS applications – We will explore its different parts and their functions – This tutorial will teach you how to use Xcode, but not how to build an app. • To build an app, you need to know Objective- C.
  • 3. Useful Terms • Objective-C: the programming language used to write iOS applications, based on C and using object oriented programming methods • Object: a collection of code with its data and ways to manipulate that data
  • 4. Useful Terms • View: how your program presents information to the user • Model: how your data is represented inside of your application
  • 5. App Templates, Pt 2 Tabbed: Like the iPod app, with lots of different ways to view the same database items Utility: Like the weather app, a main view and a configuration view Empty: You build everything from scratch
  • 6. Starting an App Choose the name you want for your app Click ‘Next’ Choose a folder in which to save your app Finally, choose your device Writing a universal iOS app is more difficult than writing for just one device
  • 7. This is what your screen looks like now….
  • 8. The main parts we’ll be focusing on… 1. Navigator Panel 2. Inspector Panel 3. Libraries
  • 10. The Classes folder contains two objects: - The App Delegate - The View Controller The extensions: - .h = header, defines object - .m= main/body -.xib= XML interface builder
  • 11. The App Delegate • Handles starting and ending your app • Serves as a go-between between iOS and your app – Hands off control to your code after starting
  • 12. The View Controller • Handles everything that shows up on screen • Handles all the info that the onscreen objects need to display themselves • Translates between the view and the model • Responds to user input and uses that to change model data – Responsible for updating view from the model
  • 13. To help visualize… From developer.apple.com
  • 14. XML Interface Builder This is where you lay out graphic views The view controller knows how to talk to the objects that have been created here Lots of formatting options
  • 15. Supporting Files, Pt. 1 These are system files .plist = property list Appname-Info.plist = contains info about your app for the iOS. It is an XML file that includes the options you put on your app (which device, etc.) InfoPlist.strings = helps to internationalize your app - Language
  • 16. Supporting Files, Pt. 2 Main.m = low level. Starts app and gives to the App Delegate. Never change this file. .pch = pre-compiled header Appname-Prefix.pch = generated by the system to speed up builds
  • 17. Frameworks Frameworks contains a lot of already written code provided by the system - A library of code bits - Related to the Libraries menu on the right of Xcode UIKit = contains code for everything that interfaces with the user (views) Foundation = alll the components used to build the model CoreGraphics = handles drawing on the screen
  • 18. Inspector Panel • This area contains utilities panels that let you change properties of your app’s view objects, like: • Colors • Sizes • Images • Button actions
  • 19. Libraries • Different goodies depending on which icon you click – From left to right: • File templates • Code snippets • View Objects • Media/Images
  • 20. Model, View, Controller (MVC) iOS applications follows the MVC design pattern. • Model: Represents the business logic of your application • View: Represents what the user sees in the device
  • 21. • Controller: Acts as a mediator between the Model and View. There should not be any direct conversation between the View and the Model. The Controller updates the View based on any changes in the underlying Model. If the user enters or updates any information in the View, the changes are reflected in the Model with the help of the Controller.
  • 22. How does a View or Model interact with the Controller? • Views can interact with the Controller with the help of targets or delegates. • Whenever the user interacts with a View, for example by touching a button, the View can set the Controller associated with it as the target of the user’s action. Thus the Controller can decide on further actions to be taken. We will see how this can be achieved in the later part of this tutorial. • Views can also delegate some of the actions to the Controller by setting the Controller as its delegate.
  • 23. MVC
  • 24. • The Model notifies the Controller of any data changes, and in turn, the Controller updates the data in the Views. The View can then notify the Controller of actions the user performed and the Controller will either update the Model if necessary or retrieve any requested data.
  • 25. Outlet And Actions Outlet: • ViewController talks to View by using Outlet. Any object (UILabel, UIButton, UIImage, UIView etc) in View can have an Outlet connection to ViewController. Outlet is used as @property in ViewController which means that: • you can set something (like Update UILabel's text, Set background image of a UIView etc.) of an object by using outlet. • you can get something from an object (like current value of UIStepper, current font size of a NSAttributedString etc.)
  • 26. Action: • View pass on messages about view to ViewController by using Action (Or in technical terms ViewController set itself as Target for any Action in View). Action is a Method in ViewController (unlike Outlet which is @property in ViewController). • Whenever something (any Event) happens to an object (like UIbutton is tapped) then Action pass on message to ViewController. Action (or Action method) can do something after receiving the message. Note: Action can be set only by UIControl's child object; means you can't set Action for UILabel, UIView etc.
  • 28.
  • 29. • application:willFinishLaunchingWithOp tions: —This method is your app’s first chance to execute code at launch time. • application:didFinishLaunchingWithOp tions: —This method allows you to perform any final initialization before your app is displayed to the user. • applicationDidBecomeActive:—Lets your app know that it is about to become the foreground app. Use this method for any last minute preparation.
  • 30. • applicationWillResignActive:—Lets you know that your app is transitioning away from being the foreground app. Use this method to put your app into a quiescent state. • applicationDidEnterBackground:—Lets you know that your app is now running in the background and may be suspended at any time. • applicationWillEnterForeground:—Lets you know that your app is moving out of the background and back into the foreground, but that it is not yet active. • applicationWillTerminate:—Lets you know that your app is being terminated. This method is not called if your app is suspended.
  • 31. Application State • Not running • Inactive • Active • Background • Suspended
  • 32.
  • 33. View controller • Connect the view and the controller with IBOutlet
  • 34. View Controller Life Cycle • - (void)viewDidLoad; • -( B(OvoOidL))vaineiwmWatiellAd;ppear: • -( B(OvoOidL))vaineiwmDaitdeAdp; pear: • - (void)viewWillDisappear: (BOOL)animated; • - (void)viewDidDisappear: (BOOL)animated:
  • 35.
  • 36. UINavigationController • The UINavigationController class implements a specialized view controller that manages the navigation of hierarchical content. This navigation interface makes it possible to present your data efficiently and makes it easier for the user to navigate that content. • A navigation controller object manages the currently displayed screens using the navigation stack
  • 37. TableView Control • Table View is one of the common UI elements in iOS apps • Most apps, in some ways, make use of Table View to display list of data • The “UITableViewDelegate” and “UITableViewDataSource” are known as protocol in Objective-C. Basically, in order to display data in Table View, we have to conform to the requirements defined in the protocols and implement all the mandatory methods.
  • 38. UITableViewDelegate • UITableViewDelegate, deals with the appearance of the UITableView. Optional methods of the protocols let you manage the height of a table row, configure section headings and footers, re-order table cells, etc.
  • 39. UITableViewDataSource • We’ll use the table view to present a list of recipes. So how do you tell UITableView the list of data to display? UITableViewDataSource is the answer. It’s the link between your data and the table view. The UITableViewDataSource protocol declares two required methods • tableView:cellForRowAtIndexPath • tableView:numberOfRowsInSection