SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxtakshilkunadia
 
JUnit5 and TestContainers
JUnit5 and TestContainersJUnit5 and TestContainers
JUnit5 and TestContainersSunghyouk Bae
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
Angular - Chapter 5 - Directives
 Angular - Chapter 5 - Directives Angular - Chapter 5 - Directives
Angular - Chapter 5 - DirectivesWebStackAcademy
 
MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModelDareen Alhiyari
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming LanguageCihad Horuzoğlu
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework Serhat Can
 
Android - Phone Calls
Android - Phone CallsAndroid - Phone Calls
Android - Phone CallsYong Heui Cho
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patternsAmit Kabra
 
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)Mobile Software Engineering (at University of Cambridge Wednesday Seminars)
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)3scale.net
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin OverviewEkta Raj
 

Was ist angesagt? (20)

Spring MVC 3.0 Framework
Spring MVC 3.0 FrameworkSpring MVC 3.0 Framework
Spring MVC 3.0 Framework
 
Laravel ppt
Laravel pptLaravel ppt
Laravel ppt
 
Ch2 Liang
Ch2 LiangCh2 Liang
Ch2 Liang
 
Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptx
 
JUnit5 and TestContainers
JUnit5 and TestContainersJUnit5 and TestContainers
JUnit5 and TestContainers
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Angular 8
Angular 8 Angular 8
Angular 8
 
MVVM
MVVMMVVM
MVVM
 
Angular - Chapter 5 - Directives
 Angular - Chapter 5 - Directives Angular - Chapter 5 - Directives
Angular - Chapter 5 - Directives
 
iOS Introduction For Very Beginners
iOS Introduction For Very BeginnersiOS Introduction For Very Beginners
iOS Introduction For Very Beginners
 
MVVM - Model View ViewModel
MVVM - Model View ViewModelMVVM - Model View ViewModel
MVVM - Model View ViewModel
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Swift Programming Language
Swift Programming LanguageSwift Programming Language
Swift Programming Language
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Android - Phone Calls
Android - Phone CallsAndroid - Phone Calls
Android - Phone Calls
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event Handling
 
Ios development
Ios developmentIos development
Ios development
 
Introduction to design patterns
Introduction to design patternsIntroduction to design patterns
Introduction to design patterns
 
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)Mobile Software Engineering (at University of Cambridge Wednesday Seminars)
Mobile Software Engineering (at University of Cambridge Wednesday Seminars)
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
"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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Kürzlich hochgeladen (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
"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...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

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