SlideShare una empresa de Scribd logo
1 de 41
iOS Development:
Everything you need to know
Fábio Bernardo
iOS Developer @ SAPO
Who am I?
• iOS Developer
• SAPO
• @fbbernardo on Twitter
• iPhoneModem, It’s Playing, SAPO Desporto...
Who am I?
• iOS Developer
• SAPO
• @fbbernardo on Twitter
• iPhoneModem, It’s Playing, SAPO Desporto...
Who am I?
• iOS Developer
• SAPO
• @fbbernardo on Twitter
• iPhoneModem, It’s Playing, SAPO Desporto...
Who am I?
• iOS Developer
• SAPO
• @fbbernardo on Twitter
• iPhoneModem, It’s Playing, SAPO Desporto...
Why am I here?
Talk overview
• A little bit of history
• What you need to know about the  App Store
• The first steps of iOS Development
• Cocoa Touch
• What are my expectations for The Future™
• Q&A
The first iPhone
June, 2007
• No App Store
• Do web apps!
▪ Adventurous developers start using something called the “toolchain”
• The jailbreak community is born
• Installous and Cydia
The iPhone OS SDK
July, 2008
• Developers everywhere rejoice
• Cocoa Touch and Objective-C
• Protected by NDA until October, 2008
• 70% – 30% revenue model
• Introduced the Review Process
• No video or audio recording, no notifications, no copy paste, no share, no core data, no maps...
• Later renamed to iOS SDK
Rags to riches
Some examples
Rags to riches
Some examples
Trism
Rags to riches
Some examples
Trism
$250k in two months
Rags to riches
Some examples
iSteam
Rags to riches
Some examples
$100k in two weeks
iSteam
Rags to riches
Some examples
Tap Tap Revenge
Rags to riches
Some examples
1,000,000 downloads in two
weeks
Tap Tap Revenge
Rags to riches
Some examples
Flipboard
Rags to riches
Some examples
52M users and only two
apps
Flipboard
iOS App Store
Downloads and number of apps
0
200
400
600
800
2008 2009 2010 2011 2012 2013
0
11,250
22,500
33,750
45,000
10 1,500
5,000
15,000
25,000
45,000
0.8
65
250
425
550
800
Apps Available (Thousands) Downloads (Millions)
iOS App Store
Interesting data
• The top category by revenue ($) is Games
• “iOS App Store generated 2.6x the app revenue of Google Play in Q1 2013”
• Education is the fourth largest category in revenue ($)
• Flipboard has 56M users and only two apps
• Instagram has 100M users and only two apps
• $10,000 prize for the App Store’s 50 billionth download
What you will need
To become an iOS Developer
• OS X
• Objective-C
• Cocoa Touch
• An iPad/iPhone/iPod Touch for testing (unless you’re doing a fart app)
• Register on Dev Center
• $99 per year
Popular alternatives
To OS X or Objective-C
• RubyMotion — $199.99 (OS X)
• Xamarin.iOS – formely MonoTouch — Free to $1899 (OS X & Windows)
• Titanium — Free (OS X)
• Adobe AIR — $249.00 (OS X & Windows)
• Unity — $400 Free (OS X & Windows)
Objective-C
Introduction
• Unusual syntax
• C based
• Weak and dynamic typing
• ARC
• Categories
• Swizzling
Objective-C
The usual rants
• Syntax
• Crash logs & exceptions
• Header files
• Memory management
• No packages
Objective-C
An example – brackets
object.performAction();
Object Method name
[object performAction];[object performAction];
Objective-C
An example – brackets
object.performAction();
Object Method name
[object performAction];[object performAction];
Objective-C
An example – arguments
object.performAction(arg1);
Object Method name
[object performAction:arg1];
A parameter
Objective-C
An example – arguments & message names
object.performAction(arg1, arg2);
Object Method name
[object performAction:arg1 withArg:arg2];
1st parameter 2nd parameter
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Title" forState:UIControlStateNormal];
[button sizeToFit];
[self.view addSubview:button];
}
Objective-C
An example
Cocoa Touch
What it is
• An umbrella term for a lot of API’s
• Follows MVC
• Lot’s of delegates, datasources, observers, notifications...
• UIKit – buttons, sliders, navigation bars, toolbars, spinning wheels, bar buttons, storyboards...
• GameKit, PassKit, CoreAnimation, Accounts, etc...
UIKit
Storyboards
Demo
iOS Development
Some notes
• An iPhone & iPad application is an universal binary
• 99% is reusable between iPhone and iPad
• Easily ported to OSX
• Game Center is your friend if you’re planning to make a game
Learn more
The best resources out there
• Stanford’s iPhone Application Development
• Big Nerd Ranch’s iOS Programming
• WWDC Sessions
Bingo!
There’s this thing called WWDC Bingo...
Retina
Display
Macbook Air
iOS 7.0
Redesigned
Passbooks
via
Bluetooth
LE
Interactive
Push
Notifications
Retina iPad
Mini
Remote
View
Controllers
One More
Thing™
“Deliver
Once”
Notifications
“magical” Siri API
iCloud done
right
Apple TV
SDK
Siri for OSX
Maps for
OSX
iCloud
Sharing
?
Q&A

Más contenido relacionado

Destacado

Introduction to Progamming Applications for the iPhone
Introduction to Progamming Applications for the iPhoneIntroduction to Progamming Applications for the iPhone
Introduction to Progamming Applications for the iPhonerohitnayak
 
How & where to start iOS development?
How & where to start iOS development?How & where to start iOS development?
How & where to start iOS development?Kazi Mohammad Ekram
 
iOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomeriOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomerAndri Yadi
 
AppDevKit for iOS Development
AppDevKit for iOS DevelopmentAppDevKit for iOS Development
AppDevKit for iOS Developmentanistar sung
 
Introduction to iOS Apps Development
Introduction to iOS Apps DevelopmentIntroduction to iOS Apps Development
Introduction to iOS Apps DevelopmentProf. Erwin Globio
 
iOS Development - A Beginner Guide
iOS Development - A Beginner GuideiOS Development - A Beginner Guide
iOS Development - A Beginner GuideAndri Yadi
 

Destacado (9)

Introduction to Progamming Applications for the iPhone
Introduction to Progamming Applications for the iPhoneIntroduction to Progamming Applications for the iPhone
Introduction to Progamming Applications for the iPhone
 
How & where to start iOS development?
How & where to start iOS development?How & where to start iOS development?
How & where to start iOS development?
 
Intro to iOS Development
Intro to iOS DevelopmentIntro to iOS Development
Intro to iOS Development
 
iOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for JasakomeriOS Development - Offline Class for Jasakomer
iOS Development - Offline Class for Jasakomer
 
AppDevKit for iOS Development
AppDevKit for iOS DevelopmentAppDevKit for iOS Development
AppDevKit for iOS Development
 
Introduction to iOS Apps Development
Introduction to iOS Apps DevelopmentIntroduction to iOS Apps Development
Introduction to iOS Apps Development
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
 
iOS Introduction For Very Beginners
iOS Introduction For Very BeginnersiOS Introduction For Very Beginners
iOS Introduction For Very Beginners
 
iOS Development - A Beginner Guide
iOS Development - A Beginner GuideiOS Development - A Beginner Guide
iOS Development - A Beginner Guide
 

Similar a iOS Development: Everything you need to know

打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP彼得潘 Pan
 
Sg android dev meetup 2013
Sg android dev meetup 2013Sg android dev meetup 2013
Sg android dev meetup 2013khangtoh
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
如何變成iOS App開發魔法師
如何變成iOS App開發魔法師如何變成iOS App開發魔法師
如何變成iOS App開發魔法師彼得潘 Pan
 
IOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxIOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxJiminJimin16
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxNgLQun
 
Mobile & Wearables Games for Health 2014 Tutorial
Mobile & Wearables Games for Health 2014 TutorialMobile & Wearables Games for Health 2014 Tutorial
Mobile & Wearables Games for Health 2014 TutorialGames for Health Project
 
Xcodeを用いた iPhone/iPadアプリ開発
Xcodeを用いた iPhone/iPadアプリ開発Xcodeを用いた iPhone/iPadアプリ開発
Xcodeを用いた iPhone/iPadアプリ開発一樹 濱崎
 
Xcodeを用いたiPhone/iPadアプリ開発
Xcodeを用いたiPhone/iPadアプリ開発Xcodeを用いたiPhone/iPadアプリ開発
Xcodeを用いたiPhone/iPadアプリ開発ashphy
 
iPhone Camp Birmingham (Bham) - Intro To iPhone Development
iPhone Camp Birmingham (Bham) - Intro To iPhone DevelopmentiPhone Camp Birmingham (Bham) - Intro To iPhone Development
iPhone Camp Birmingham (Bham) - Intro To iPhone Developmentandriajensen
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Danny Preussler
 
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsI/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsKenichi Kambara
 
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPIntroduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPKeyLimeTie
 
Life cycle of iPhone application
Life cycle of iPhone applicationLife cycle of iPhone application
Life cycle of iPhone applicationSiva Prasad K V
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyNick Landry
 
Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhonePiTechnologies
 

Similar a iOS Development: Everything you need to know (20)

打造你的第一個iPhone APP
打造你的第一個iPhone APP打造你的第一個iPhone APP
打造你的第一個iPhone APP
 
Sg android dev meetup 2013
Sg android dev meetup 2013Sg android dev meetup 2013
Sg android dev meetup 2013
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
如何變成iOS App開發魔法師
如何變成iOS App開發魔法師如何變成iOS App開發魔法師
如何變成iOS App開發魔法師
 
Onsg11 iphone
Onsg11 iphoneOnsg11 iphone
Onsg11 iphone
 
IOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxIOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptx
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
 
Mobile & Wearables Games for Health 2014 Tutorial
Mobile & Wearables Games for Health 2014 TutorialMobile & Wearables Games for Health 2014 Tutorial
Mobile & Wearables Games for Health 2014 Tutorial
 
Xcodeを用いた iPhone/iPadアプリ開発
Xcodeを用いた iPhone/iPadアプリ開発Xcodeを用いた iPhone/iPadアプリ開発
Xcodeを用いた iPhone/iPadアプリ開発
 
Applebu
ApplebuApplebu
Applebu
 
Applebu
ApplebuApplebu
Applebu
 
Xcodeを用いたiPhone/iPadアプリ開発
Xcodeを用いたiPhone/iPadアプリ開発Xcodeを用いたiPhone/iPadアプリ開発
Xcodeを用いたiPhone/iPadアプリ開発
 
iPhone Camp Birmingham (Bham) - Intro To iPhone Development
iPhone Camp Birmingham (Bham) - Intro To iPhone DevelopmentiPhone Camp Birmingham (Bham) - Intro To iPhone Development
iPhone Camp Birmingham (Bham) - Intro To iPhone Development
 
Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)Rockstar Android Testing (Mobile TechCon Munich 2014)
Rockstar Android Testing (Mobile TechCon Munich 2014)
 
I/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物TipsI/Oへの期待+海外渡航持ち物Tips
I/Oへの期待+海外渡航持ち物Tips
 
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPIntroduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
 
Life cycle of iPhone application
Life cycle of iPhone applicationLife cycle of iPhone application
Life cycle of iPhone application
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 
Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhone
 

Último

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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"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
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
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
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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)
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"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
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"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...
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
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
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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!
 
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?
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

iOS Development: Everything you need to know

  • 1. iOS Development: Everything you need to know Fábio Bernardo iOS Developer @ SAPO
  • 2. Who am I? • iOS Developer • SAPO • @fbbernardo on Twitter • iPhoneModem, It’s Playing, SAPO Desporto...
  • 3. Who am I? • iOS Developer • SAPO • @fbbernardo on Twitter • iPhoneModem, It’s Playing, SAPO Desporto...
  • 4. Who am I? • iOS Developer • SAPO • @fbbernardo on Twitter • iPhoneModem, It’s Playing, SAPO Desporto...
  • 5. Who am I? • iOS Developer • SAPO • @fbbernardo on Twitter • iPhoneModem, It’s Playing, SAPO Desporto...
  • 6. Why am I here? Talk overview • A little bit of history • What you need to know about the  App Store • The first steps of iOS Development • Cocoa Touch • What are my expectations for The Future™ • Q&A
  • 7. The first iPhone June, 2007 • No App Store • Do web apps! ▪ Adventurous developers start using something called the “toolchain” • The jailbreak community is born • Installous and Cydia
  • 8. The iPhone OS SDK July, 2008 • Developers everywhere rejoice • Cocoa Touch and Objective-C • Protected by NDA until October, 2008 • 70% – 30% revenue model • Introduced the Review Process • No video or audio recording, no notifications, no copy paste, no share, no core data, no maps... • Later renamed to iOS SDK
  • 10. Rags to riches Some examples Trism
  • 11. Rags to riches Some examples Trism $250k in two months
  • 12. Rags to riches Some examples iSteam
  • 13. Rags to riches Some examples $100k in two weeks iSteam
  • 14. Rags to riches Some examples Tap Tap Revenge
  • 15. Rags to riches Some examples 1,000,000 downloads in two weeks Tap Tap Revenge
  • 16. Rags to riches Some examples Flipboard
  • 17. Rags to riches Some examples 52M users and only two apps Flipboard
  • 18. iOS App Store Downloads and number of apps 0 200 400 600 800 2008 2009 2010 2011 2012 2013 0 11,250 22,500 33,750 45,000 10 1,500 5,000 15,000 25,000 45,000 0.8 65 250 425 550 800 Apps Available (Thousands) Downloads (Millions)
  • 19. iOS App Store Interesting data • The top category by revenue ($) is Games • “iOS App Store generated 2.6x the app revenue of Google Play in Q1 2013” • Education is the fourth largest category in revenue ($) • Flipboard has 56M users and only two apps • Instagram has 100M users and only two apps • $10,000 prize for the App Store’s 50 billionth download
  • 20. What you will need To become an iOS Developer • OS X • Objective-C • Cocoa Touch • An iPad/iPhone/iPod Touch for testing (unless you’re doing a fart app) • Register on Dev Center • $99 per year
  • 21. Popular alternatives To OS X or Objective-C • RubyMotion — $199.99 (OS X) • Xamarin.iOS – formely MonoTouch — Free to $1899 (OS X & Windows) • Titanium — Free (OS X) • Adobe AIR — $249.00 (OS X & Windows) • Unity — $400 Free (OS X & Windows)
  • 22. Objective-C Introduction • Unusual syntax • C based • Weak and dynamic typing • ARC • Categories • Swizzling
  • 23. Objective-C The usual rants • Syntax • Crash logs & exceptions • Header files • Memory management • No packages
  • 24. Objective-C An example – brackets object.performAction(); Object Method name [object performAction];[object performAction];
  • 25. Objective-C An example – brackets object.performAction(); Object Method name [object performAction];[object performAction];
  • 26. Objective-C An example – arguments object.performAction(arg1); Object Method name [object performAction:arg1]; A parameter
  • 27. Objective-C An example – arguments & message names object.performAction(arg1, arg2); Object Method name [object performAction:arg1 withArg:arg2]; 1st parameter 2nd parameter
  • 28. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 29. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 30. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 31. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 32. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 33. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 34. - (void)viewDidLoad { [super viewDidLoad]; UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Title" forState:UIControlStateNormal]; [button sizeToFit]; [self.view addSubview:button]; } Objective-C An example
  • 35. Cocoa Touch What it is • An umbrella term for a lot of API’s • Follows MVC • Lot’s of delegates, datasources, observers, notifications... • UIKit – buttons, sliders, navigation bars, toolbars, spinning wheels, bar buttons, storyboards... • GameKit, PassKit, CoreAnimation, Accounts, etc...
  • 37. Demo
  • 38. iOS Development Some notes • An iPhone & iPad application is an universal binary • 99% is reusable between iPhone and iPad • Easily ported to OSX • Game Center is your friend if you’re planning to make a game
  • 39. Learn more The best resources out there • Stanford’s iPhone Application Development • Big Nerd Ranch’s iOS Programming • WWDC Sessions
  • 40. Bingo! There’s this thing called WWDC Bingo... Retina Display Macbook Air iOS 7.0 Redesigned Passbooks via Bluetooth LE Interactive Push Notifications Retina iPad Mini Remote View Controllers One More Thing™ “Deliver Once” Notifications “magical” Siri API iCloud done right Apple TV SDK Siri for OSX Maps for OSX iCloud Sharing ?
  • 41. Q&A