SlideShare a Scribd company logo
Presented by Vu Tran Lam
Building a
Completed iPhone App
Friday, March 29, 13
2
Could You Build Apps For
This...?
Friday, March 29, 13
...And This...?
Friday, March 29, 13
Friday, March 29, 13
Friday, March 29, 13
L
6
Friday, March 29, 13
Set Up
When you develop apps, you use the iOS SDK and Xcode (Apple’s IDE). Xcode provides
everything you need to create great apps for iPhone, iPod touch, and iPad. It includes
a source editor, a graphical user interface editor, and many other features. Xcode
employs a single window (workspace window), that presents most of the tools you
need to develop apps. The iOS SDK extends the Xcode toolset to include the tools,
compilers, and frameworks you need specifically for iOS.
Friday, March 29, 13
Language
Objective-C is an elegant object-oriented language that powers all iOS apps. You write
Objective-C code to create your app, and you need to understand this language in
order to use most application frameworks. Although you can use other languages for
development, you can’t build an iOS app without Objective-C.
Friday, March 29, 13
Friday, March 29, 13
Development
Friday, March 29, 13
• Frameworks
Development
Friday, March 29, 13
Frameworks
An app consists of code that you write and frameworks provided by Apple. A framework
contains a library of methods that your app can call. More than one app can access a
framework library at the same time.
Friday, March 29, 13
Using an Object-Oriented Framework
Friday, March 29, 13
Handle the Events
Friday, March 29, 13
Survey Major Frameworks
Friday, March 29, 13
Survey Major Frameworks
Friday, March 29, 13
• Frameworks
• Design Patterns
Development
Friday, March 29, 13
Design Patterns
A design pattern solves a common software engineering problem. Patterns are abstract
designs, not code. When you adopt a design, you adapt the general pattern to your
specific needs.
Friday, March 29, 13
Design Pattern: Model-View-Controller
Friday, March 29, 13
Design Pattern: Model-View-Controller
Friday, March 29, 13
• Frameworks
• Design Patterns
• Human Interface Design
Development
Friday, March 29, 13
Human Interface Design
It’s not enough to create an app that works. Users expect iOS apps to be intuitive,
interactive, and engaging. Think about the user experience as you design every aspect
of your app, from the features you choose to the way your app responds to a gesture.
Friday, March 29, 13
Human Interface Design
• Types of App
Friday, March 29, 13
Human Interface Design
• Types of App
• Wireframing
Friday, March 29, 13
Human Interface Design
• Types of App
• Wireframing
• Icons
Friday, March 29, 13
• Frameworks
• Design Patterns
• Human Interface Design
• App Design
Development
Friday, March 29, 13
App Design
Friday, March 29, 13
App Design
Before you begin writing a line of code, you should make
some critical design decisions:
• Be as specific as possible about your app’s purpose and features
• Choose the kind of data model your app will use
• Decide on UI style for your app (e.g. single view or master-detail)
• Decide your app to be universal (runs on iPad, iPhone, iPod touch)
These and other design decisions help you to construct the
architecture of your app.
Friday, March 29, 13
• Frameworks
• Design Patterns
• Human Interface Design
• App Design
• App Store
Development
Friday, March 29, 13
App Store
To make a great app, you need to test it on actual devices throughout the development
process, not just in Simulator. To run an app on iOS-based devices, you need to
register the devices you want to test on, create certificates that authorize developers to
sign an app, and create an app ID to identify the app. Finally, you will do to publish an
app on the App Store.
Friday, March 29, 13
Xcode IDE
Friday, March 29, 13
Xcode Workspace
Friday, March 29, 13
Toolbar Xcode Workspace
Friday, March 29, 13
Toolbar
Navigation
Selector Bar
Filter Bar
Project
Navigator
Xcode Workspace
Friday, March 29, 13
Toolbar
Navigation
Selector Bar
Filter Bar
Interface Builder
Project
Navigator
Xcode Workspace
Friday, March 29, 13
Toolbar
Navigation
Selector Bar
Jump Bars
Filter Bar
Interface Builder Editor Area
Project
Navigator
Xcode Workspace
Friday, March 29, 13
Toolbar
Navigation
Selector Bar
Library
Selector Bar
Filter Bar
Inspector
Selector Bar
Interface Builder Editor Area
Inspector Pane
Library Pane
Project
Navigator
Jump Bars
Xcode Workspace
Friday, March 29, 13
Toolbar
Navigation
Selector Bar
Library
Selector Bar
Filter Bar
Inspector
Selector Bar
Debug Bar
Interface Builder Editor Area
Inspector Pane
Library Pane
Debug Area
Project
Navigator
Jump Bars
Xcode Workspace
Friday, March 29, 13
Friday, March 29, 13
Your First iOS App - Hello World
Friday, March 29, 13
Introduction
First iOS App introduces Three Ts of iOS app development:
• Tools: How to use Xcode to create and manage a project?
• Technologies: How to create an app that responds to user input?
• Techniques: How to take advantage fundamental design patterns?
Friday, March 29, 13
Part 1: Getting Started
• Create and Test a New Project
• Anatomy of an Application
• Find Out How an Application Starts Up
• Look at UIApplicationMain Function
• Look at Storyboad File
• Look at Property List File
• Understand View and Window Architecture
Friday, March 29, 13
Anatomy of an Application
• Compiled code
• Storyboard files
• Resources (images, sounds, strings, etc)
• Info.plist file (application configuration)
Friday, March 29, 13
• Compiled code
• Your code
• Framework
• Storyboard files
• Resources (images, sounds, strings, etc)
• Info.plist file (application configuration)
Anatomy of an Application
Friday, March 29, 13
• Compiled code
• Your code
• Framework
• Storyboard files
• UI elements and other objects
• Details about object relationships
• Resources (images, sounds, strings, etc)
• Info.plist file (application configuration)
Anatomy of an Application
Friday, March 29, 13
Anatomy of an Application
Friday, March 29, 13
Anatomy of an Application
Your Code
Friday, March 29, 13
Anatomy of an Application
Your Code
Storyboard
Friday, March 29, 13
Anatomy of an Application
Your Code
Storyboard
Info.plist File
Friday, March 29, 13
Anatomy of an Application
Your Code
Storyboard
Info.plist File
Framework
Friday, March 29, 13
Understanding View and Window Architecture
Views and windows present your application’s user interface and handle the interactions
with that interface. UIKit and other system frameworks provide a number of views that
you can use as-is with little or no modification. You can also define custom views for
places where you need to present content differently than the standard views allow.
Friday, March 29, 13
Part 2: Inspecting View Controller and Its View
• Use Inspector to Examine View Controller
• Open Inspector
• Change View’s Background Color
• Set Background Color of View Controller’s View
• Restore Background Color of View Controller’s View
Friday, March 29, 13
Change View’s Background Color
Friday, March 29, 13
Part 3: Configuring View
• Understand View Controller Basics
• Add User Interface Elements
• Create an Action for Button
• Create Outlets for Text Field and Label
• Make Text Field’s Delegate Connection
• Test Application
Friday, March 29, 13
Understand View Controller Basics
View controllers are a vital link between an app’s data and its visual appearance.
Whenever an iOS app displays a user interface, the displayed content is managed by a
view controller or a group of view controllers coordinating with each other. Therefore,
view controllers provide the skeletal framework on which you build your apps.
Friday, March 29, 13
Understand View Controller Basics
A key part of any view controller’s implementation is to manage the views used to display
its content. It’s very difficult to manage many connections view controllers. Instead, use
Interface Builder to create storyboards. Storyboards make it easier to visualize the
relationships in your app and simplify the effort needed to initialize objects at runtime.
Interface Builder
Friday, March 29, 13
Understand View Controller Basics
This is “Hello World” window with its target screen and content views. On the left, you
can see the objects that make up this interface and understand how they are
connected to each other.
Friday, March 29, 13
Add User Interface Elements
You add user interface (UI) elements by dragging them from the object library to a view
on the canvas. After adding UI elements, you can move and resize them.
Friday, March 29, 13
Create an Action for Button
Control-drag, press and hold the Control key while you drag from the button to the
implementation file in the assistant editor pane. After that, you must input as following:
Friday, March 29, 13
Create Outlet for Text Field
Control-drag, press and hold the Control key while you drag from the text field to the
implementation file in the assistant editor pane. After that, you must input as following:
Friday, March 29, 13
Create Outlet for Label
Control-drag, press and hold the Control key while you drag from the label to the
implementation file in the assistant editor pane. After that, you must input as following:
Friday, March 29, 13
Make Text Field’s Delegate Connection
Control-drag, press and hold the Control key while you drag from text field to the
yellow sphere in the scene dock. After that, you must input as following:
Control-drag and
select delegate
Friday, March 29, 13
Test Application
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
@property (copy, nonatomic) NSString *userName;
In HelloWorldViewController.h, type:
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
• Implement changeGreeting: Method
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
• Implement changeGreeting: Method
- (IBAction)changeGreeting:(id)sender
{
self.userName = self.textField.text;
NSString *nameString = self.userName;
if (nameString.length == 0)
{
nameString = @"World";
}
NSString *greeting = [[NSString alloc] initWithFormat: @"Hello, %@!",
nameString];
self.label.text = greeting;
}
In HelloWorldViewController.m, type:
- (IBAction)changeGreeting:(id)sender
{
self.userName = self.textField.text;
NSString *nameString = self.userName;
if (nameString.length == 0)
{
nameString = @"World";
}
NSString *greeting = [[NSString alloc] initWithFormat: @"Hello, %@!",
nameString];
self.label.text = greeting;
}
In HelloWorldViewController.m, type:
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
• Implement changeGreeting: Method
• Configure View Controller as Text Field’s Delegate
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
• Implement changeGreeting: Method
• Configure View Controller as Text Field’s Delegate
- (BOOL) textFieldShouldReturn: (UITextField *)theTextField
{
if (theTextField == self.textField)
{
[theTextField resignFirstResponder];
}
return YES;
}
@end
In HelloWorldViewController.m, type:
In HelloWorldViewController.h, add <UITextFieldDelegate>:
@interface HelloWorldViewController : UIViewController <UITextFieldDelegate>
Friday, March 29, 13
Part 4: Implementing View Controller
• Add a Property for User’s Name
• Implement changeGreeting: Method
• Configure View Controller as Text Field’s Delegate
• Run Application
Friday, March 29, 13
Next...
Friday, March 29, 13
MVC
Friday, March 29, 13
many thanks
to
Thank you
lamvt@fpt.com.vn
please
say
Stanford University
https://developer.apple.com
Developer Center
http://www.stanford.edu/class/cs193p
xin
chào
References
http://az4you.wordpress.com
http://www.slideshare.net/vutlam9083/building-a-completed-
iphone-app
Friday, March 29, 13

More Related Content

Viewers also liked

Introduction to MVC in iPhone Development
Introduction to MVC in iPhone DevelopmentIntroduction to MVC in iPhone Development
Introduction to MVC in iPhone Development
Vu Tran Lam
 
3D & Animation Effects Using CSS3 & jQuery
3D & Animation Effects Using CSS3 & jQuery3D & Animation Effects Using CSS3 & jQuery
3D & Animation Effects Using CSS3 & jQueryVu Tran Lam
 
Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Vu Tran Lam
 
Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Vu Tran Lam
 
Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barVu Tran Lam
 
Session 14 - Working with table view and search bar
Session 14 - Working with table view and search barSession 14 - Working with table view and search bar
Session 14 - Working with table view and search barVu Tran Lam
 
Session 5 - Foundation framework
Session 5 - Foundation frameworkSession 5 - Foundation framework
Session 5 - Foundation frameworkVu Tran Lam
 
130522 book study-사례로보는ux디자인
130522 book study-사례로보는ux디자인130522 book study-사례로보는ux디자인
130522 book study-사례로보는ux디자인정인 주
 
Session 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationSession 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationVu Tran Lam
 
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
한국디자인진흥원 공공서비스디자인PD
 
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
 
Some Dos and Don’ts in UI/UX Design of Mobile Applications
Some Dos and Don’ts in UI/UX Design of Mobile ApplicationsSome Dos and Don’ts in UI/UX Design of Mobile Applications
Some Dos and Don’ts in UI/UX Design of Mobile Applications
Ashiq Uz Zoha
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDK
Vu Tran Lam
 
Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationVu Tran Lam
 
UX 디자인사례와 커뮤니케이션
UX 디자인사례와 커뮤니케이션UX 디자인사례와 커뮤니케이션
UX 디자인사례와 커뮤니케이션
Bryan Woo
 
'UX', 'UX Design' and 'Good UX'
'UX', 'UX Design' and 'Good UX''UX', 'UX Design' and 'Good UX'
'UX', 'UX Design' and 'Good UX'
Jinyong Kim
 

Viewers also liked (16)

Introduction to MVC in iPhone Development
Introduction to MVC in iPhone DevelopmentIntroduction to MVC in iPhone Development
Introduction to MVC in iPhone Development
 
3D & Animation Effects Using CSS3 & jQuery
3D & Animation Effects Using CSS3 & jQuery3D & Animation Effects Using CSS3 & jQuery
3D & Animation Effects Using CSS3 & jQuery
 
Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)
 
Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures
 
Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab bar
 
Session 14 - Working with table view and search bar
Session 14 - Working with table view and search barSession 14 - Working with table view and search bar
Session 14 - Working with table view and search bar
 
Session 5 - Foundation framework
Session 5 - Foundation frameworkSession 5 - Foundation framework
Session 5 - Foundation framework
 
130522 book study-사례로보는ux디자인
130522 book study-사례로보는ux디자인130522 book study-사례로보는ux디자인
130522 book study-사례로보는ux디자인
 
Session 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationSession 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 application
 
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
서비스디자인, 경험 경제를 디자인하다 - K디자인 2014년 가을호 서비스디자인 특집
 
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
 
Some Dos and Don’ts in UI/UX Design of Mobile Applications
Some Dos and Don’ts in UI/UX Design of Mobile ApplicationsSome Dos and Don’ts in UI/UX Design of Mobile Applications
Some Dos and Don’ts in UI/UX Design of Mobile Applications
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDK
 
Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 application
 
UX 디자인사례와 커뮤니케이션
UX 디자인사례와 커뮤니케이션UX 디자인사례와 커뮤니케이션
UX 디자인사례와 커뮤니케이션
 
'UX', 'UX Design' and 'Good UX'
'UX', 'UX Design' and 'Good UX''UX', 'UX Design' and 'Good UX'
'UX', 'UX Design' and 'Good UX'
 

Similar to Building a Completed iPhone App

9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
Concetto Labs
 
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
Concetto Labs
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
Manoj Ellappan
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
Marie Weaver
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
FarjanaAhmed3
 
EXPLORING VARIOUS UI INTERACTION PATTERNS
EXPLORING VARIOUS UI INTERACTION PATTERNSEXPLORING VARIOUS UI INTERACTION PATTERNS
EXPLORING VARIOUS UI INTERACTION PATTERNS
ROHISIVAM
 
PPT on MS-CIT Unit 3 (slide share)
PPT on MS-CIT Unit 3 (slide share)PPT on MS-CIT Unit 3 (slide share)
PPT on MS-CIT Unit 3 (slide share)
SHRIBALAJIINFOTECH
 
5 beginner android application development foundation
5 beginner android application development foundation5 beginner android application development foundation
5 beginner android application development foundation
Cbitss Technologies
 
ICT.docx
 ICT.docx ICT.docx
ICT.docx
ambreenzahid3
 
Usability principles 1
Usability principles 1Usability principles 1
Usability principles 1
Sameer Chavan
 
From Buildings to Software - Paving the way to construction
From Buildings to Software - Paving the way to constructionFrom Buildings to Software - Paving the way to construction
From Buildings to Software - Paving the way to construction
Katerina Skroumpelou
 
Grade 11-Q1_W3-PECS_AQS.pdf
Grade 11-Q1_W3-PECS_AQS.pdfGrade 11-Q1_W3-PECS_AQS.pdf
Grade 11-Q1_W3-PECS_AQS.pdf
Victor Sinangote
 
Xcode profiler slideshare.pdf
Xcode profiler slideshare.pdfXcode profiler slideshare.pdf
Xcode profiler slideshare.pdf
Skywinds Solutions
 
B041130610
B041130610B041130610
B041130610
IOSR-JEN
 
Roadmap to Become Experts.pptx
Roadmap to Become Experts.pptxRoadmap to Become Experts.pptx
Roadmap to Become Experts.pptx
dscwidyatamanew
 
Microsoft Nokia developer programmes and opportunity
Microsoft Nokia developer programmes and opportunityMicrosoft Nokia developer programmes and opportunity
Microsoft Nokia developer programmes and opportunity
Lee Stott
 
Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptx
Mesut Günes
 
7 Amazing Flutter App Development Tools
7 Amazing Flutter App Development Tools7 Amazing Flutter App Development Tools
7 Amazing Flutter App Development Tools
XongoLab Technologies LLP
 
UX Workshop: How to design a product with great user experience
UX Workshop: How to design a product with great user experienceUX Workshop: How to design a product with great user experience
UX Workshop: How to design a product with great user experience
Raj Lal
 

Similar to Building a Completed iPhone App (20)

9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pdf
 
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
9 Best Design Patterns in iOS to Develop Powerful iPhone Apps.pptx
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
 
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdfHow to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
How to Create Wireframes For Mobile Apps and Why It’s Good for Apps.pdf
 
Software design.edited (1)
Software design.edited (1)Software design.edited (1)
Software design.edited (1)
 
EXPLORING VARIOUS UI INTERACTION PATTERNS
EXPLORING VARIOUS UI INTERACTION PATTERNSEXPLORING VARIOUS UI INTERACTION PATTERNS
EXPLORING VARIOUS UI INTERACTION PATTERNS
 
PPT on MS-CIT Unit 3 (slide share)
PPT on MS-CIT Unit 3 (slide share)PPT on MS-CIT Unit 3 (slide share)
PPT on MS-CIT Unit 3 (slide share)
 
5 beginner android application development foundation
5 beginner android application development foundation5 beginner android application development foundation
5 beginner android application development foundation
 
ICT.docx
 ICT.docx ICT.docx
ICT.docx
 
Usability principles 1
Usability principles 1Usability principles 1
Usability principles 1
 
XCode8.0
XCode8.0XCode8.0
XCode8.0
 
From Buildings to Software - Paving the way to construction
From Buildings to Software - Paving the way to constructionFrom Buildings to Software - Paving the way to construction
From Buildings to Software - Paving the way to construction
 
Grade 11-Q1_W3-PECS_AQS.pdf
Grade 11-Q1_W3-PECS_AQS.pdfGrade 11-Q1_W3-PECS_AQS.pdf
Grade 11-Q1_W3-PECS_AQS.pdf
 
Xcode profiler slideshare.pdf
Xcode profiler slideshare.pdfXcode profiler slideshare.pdf
Xcode profiler slideshare.pdf
 
B041130610
B041130610B041130610
B041130610
 
Roadmap to Become Experts.pptx
Roadmap to Become Experts.pptxRoadmap to Become Experts.pptx
Roadmap to Become Experts.pptx
 
Microsoft Nokia developer programmes and opportunity
Microsoft Nokia developer programmes and opportunityMicrosoft Nokia developer programmes and opportunity
Microsoft Nokia developer programmes and opportunity
 
Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptx
 
7 Amazing Flutter App Development Tools
7 Amazing Flutter App Development Tools7 Amazing Flutter App Development Tools
7 Amazing Flutter App Development Tools
 
UX Workshop: How to design a product with great user experience
UX Workshop: How to design a product with great user experienceUX Workshop: How to design a product with great user experience
UX Workshop: How to design a product with great user experience
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 

Building a Completed iPhone App

  • 1. Presented by Vu Tran Lam Building a Completed iPhone App Friday, March 29, 13
  • 2. 2 Could You Build Apps For This...? Friday, March 29, 13
  • 7. Set Up When you develop apps, you use the iOS SDK and Xcode (Apple’s IDE). Xcode provides everything you need to create great apps for iPhone, iPod touch, and iPad. It includes a source editor, a graphical user interface editor, and many other features. Xcode employs a single window (workspace window), that presents most of the tools you need to develop apps. The iOS SDK extends the Xcode toolset to include the tools, compilers, and frameworks you need specifically for iOS. Friday, March 29, 13
  • 8. Language Objective-C is an elegant object-oriented language that powers all iOS apps. You write Objective-C code to create your app, and you need to understand this language in order to use most application frameworks. Although you can use other languages for development, you can’t build an iOS app without Objective-C. Friday, March 29, 13
  • 12. Frameworks An app consists of code that you write and frameworks provided by Apple. A framework contains a library of methods that your app can call. More than one app can access a framework library at the same time. Friday, March 29, 13
  • 13. Using an Object-Oriented Framework Friday, March 29, 13
  • 17. • Frameworks • Design Patterns Development Friday, March 29, 13
  • 18. Design Patterns A design pattern solves a common software engineering problem. Patterns are abstract designs, not code. When you adopt a design, you adapt the general pattern to your specific needs. Friday, March 29, 13
  • 21. • Frameworks • Design Patterns • Human Interface Design Development Friday, March 29, 13
  • 22. Human Interface Design It’s not enough to create an app that works. Users expect iOS apps to be intuitive, interactive, and engaging. Think about the user experience as you design every aspect of your app, from the features you choose to the way your app responds to a gesture. Friday, March 29, 13
  • 23. Human Interface Design • Types of App Friday, March 29, 13
  • 24. Human Interface Design • Types of App • Wireframing Friday, March 29, 13
  • 25. Human Interface Design • Types of App • Wireframing • Icons Friday, March 29, 13
  • 26. • Frameworks • Design Patterns • Human Interface Design • App Design Development Friday, March 29, 13
  • 28. App Design Before you begin writing a line of code, you should make some critical design decisions: • Be as specific as possible about your app’s purpose and features • Choose the kind of data model your app will use • Decide on UI style for your app (e.g. single view or master-detail) • Decide your app to be universal (runs on iPad, iPhone, iPod touch) These and other design decisions help you to construct the architecture of your app. Friday, March 29, 13
  • 29. • Frameworks • Design Patterns • Human Interface Design • App Design • App Store Development Friday, March 29, 13
  • 30. App Store To make a great app, you need to test it on actual devices throughout the development process, not just in Simulator. To run an app on iOS-based devices, you need to register the devices you want to test on, create certificates that authorize developers to sign an app, and create an app ID to identify the app. Finally, you will do to publish an app on the App Store. Friday, March 29, 13
  • 35. Toolbar Navigation Selector Bar Filter Bar Interface Builder Project Navigator Xcode Workspace Friday, March 29, 13
  • 36. Toolbar Navigation Selector Bar Jump Bars Filter Bar Interface Builder Editor Area Project Navigator Xcode Workspace Friday, March 29, 13
  • 37. Toolbar Navigation Selector Bar Library Selector Bar Filter Bar Inspector Selector Bar Interface Builder Editor Area Inspector Pane Library Pane Project Navigator Jump Bars Xcode Workspace Friday, March 29, 13
  • 38. Toolbar Navigation Selector Bar Library Selector Bar Filter Bar Inspector Selector Bar Debug Bar Interface Builder Editor Area Inspector Pane Library Pane Debug Area Project Navigator Jump Bars Xcode Workspace Friday, March 29, 13
  • 40. Your First iOS App - Hello World Friday, March 29, 13
  • 41. Introduction First iOS App introduces Three Ts of iOS app development: • Tools: How to use Xcode to create and manage a project? • Technologies: How to create an app that responds to user input? • Techniques: How to take advantage fundamental design patterns? Friday, March 29, 13
  • 42. Part 1: Getting Started • Create and Test a New Project • Anatomy of an Application • Find Out How an Application Starts Up • Look at UIApplicationMain Function • Look at Storyboad File • Look at Property List File • Understand View and Window Architecture Friday, March 29, 13
  • 43. Anatomy of an Application • Compiled code • Storyboard files • Resources (images, sounds, strings, etc) • Info.plist file (application configuration) Friday, March 29, 13
  • 44. • Compiled code • Your code • Framework • Storyboard files • Resources (images, sounds, strings, etc) • Info.plist file (application configuration) Anatomy of an Application Friday, March 29, 13
  • 45. • Compiled code • Your code • Framework • Storyboard files • UI elements and other objects • Details about object relationships • Resources (images, sounds, strings, etc) • Info.plist file (application configuration) Anatomy of an Application Friday, March 29, 13
  • 46. Anatomy of an Application Friday, March 29, 13
  • 47. Anatomy of an Application Your Code Friday, March 29, 13
  • 48. Anatomy of an Application Your Code Storyboard Friday, March 29, 13
  • 49. Anatomy of an Application Your Code Storyboard Info.plist File Friday, March 29, 13
  • 50. Anatomy of an Application Your Code Storyboard Info.plist File Framework Friday, March 29, 13
  • 51. Understanding View and Window Architecture Views and windows present your application’s user interface and handle the interactions with that interface. UIKit and other system frameworks provide a number of views that you can use as-is with little or no modification. You can also define custom views for places where you need to present content differently than the standard views allow. Friday, March 29, 13
  • 52. Part 2: Inspecting View Controller and Its View • Use Inspector to Examine View Controller • Open Inspector • Change View’s Background Color • Set Background Color of View Controller’s View • Restore Background Color of View Controller’s View Friday, March 29, 13
  • 53. Change View’s Background Color Friday, March 29, 13
  • 54. Part 3: Configuring View • Understand View Controller Basics • Add User Interface Elements • Create an Action for Button • Create Outlets for Text Field and Label • Make Text Field’s Delegate Connection • Test Application Friday, March 29, 13
  • 55. Understand View Controller Basics View controllers are a vital link between an app’s data and its visual appearance. Whenever an iOS app displays a user interface, the displayed content is managed by a view controller or a group of view controllers coordinating with each other. Therefore, view controllers provide the skeletal framework on which you build your apps. Friday, March 29, 13
  • 56. Understand View Controller Basics A key part of any view controller’s implementation is to manage the views used to display its content. It’s very difficult to manage many connections view controllers. Instead, use Interface Builder to create storyboards. Storyboards make it easier to visualize the relationships in your app and simplify the effort needed to initialize objects at runtime. Interface Builder Friday, March 29, 13
  • 57. Understand View Controller Basics This is “Hello World” window with its target screen and content views. On the left, you can see the objects that make up this interface and understand how they are connected to each other. Friday, March 29, 13
  • 58. Add User Interface Elements You add user interface (UI) elements by dragging them from the object library to a view on the canvas. After adding UI elements, you can move and resize them. Friday, March 29, 13
  • 59. Create an Action for Button Control-drag, press and hold the Control key while you drag from the button to the implementation file in the assistant editor pane. After that, you must input as following: Friday, March 29, 13
  • 60. Create Outlet for Text Field Control-drag, press and hold the Control key while you drag from the text field to the implementation file in the assistant editor pane. After that, you must input as following: Friday, March 29, 13
  • 61. Create Outlet for Label Control-drag, press and hold the Control key while you drag from the label to the implementation file in the assistant editor pane. After that, you must input as following: Friday, March 29, 13
  • 62. Make Text Field’s Delegate Connection Control-drag, press and hold the Control key while you drag from text field to the yellow sphere in the scene dock. After that, you must input as following: Control-drag and select delegate Friday, March 29, 13
  • 64. Part 4: Implementing View Controller • Add a Property for User’s Name Friday, March 29, 13
  • 65. Part 4: Implementing View Controller • Add a Property for User’s Name @property (copy, nonatomic) NSString *userName; In HelloWorldViewController.h, type: Friday, March 29, 13
  • 66. Part 4: Implementing View Controller • Add a Property for User’s Name • Implement changeGreeting: Method Friday, March 29, 13
  • 67. Part 4: Implementing View Controller • Add a Property for User’s Name • Implement changeGreeting: Method - (IBAction)changeGreeting:(id)sender { self.userName = self.textField.text; NSString *nameString = self.userName; if (nameString.length == 0) { nameString = @"World"; } NSString *greeting = [[NSString alloc] initWithFormat: @"Hello, %@!", nameString]; self.label.text = greeting; } In HelloWorldViewController.m, type: - (IBAction)changeGreeting:(id)sender { self.userName = self.textField.text; NSString *nameString = self.userName; if (nameString.length == 0) { nameString = @"World"; } NSString *greeting = [[NSString alloc] initWithFormat: @"Hello, %@!", nameString]; self.label.text = greeting; } In HelloWorldViewController.m, type: Friday, March 29, 13
  • 68. Part 4: Implementing View Controller • Add a Property for User’s Name • Implement changeGreeting: Method • Configure View Controller as Text Field’s Delegate Friday, March 29, 13
  • 69. Part 4: Implementing View Controller • Add a Property for User’s Name • Implement changeGreeting: Method • Configure View Controller as Text Field’s Delegate - (BOOL) textFieldShouldReturn: (UITextField *)theTextField { if (theTextField == self.textField) { [theTextField resignFirstResponder]; } return YES; } @end In HelloWorldViewController.m, type: In HelloWorldViewController.h, add <UITextFieldDelegate>: @interface HelloWorldViewController : UIViewController <UITextFieldDelegate> Friday, March 29, 13
  • 70. Part 4: Implementing View Controller • Add a Property for User’s Name • Implement changeGreeting: Method • Configure View Controller as Text Field’s Delegate • Run Application Friday, March 29, 13
  • 73. many thanks to Thank you lamvt@fpt.com.vn please say Stanford University https://developer.apple.com Developer Center http://www.stanford.edu/class/cs193p xin chào References http://az4you.wordpress.com http://www.slideshare.net/vutlam9083/building-a-completed- iphone-app Friday, March 29, 13