365
Como usar seu para-quedas Caso você caia no mundo de iOS Isso não é um para- quedas, é uma maçã! Fuuu Wednesday, July 10, 13

Como usar seu para-quedas Caso você caia no mundo de iOS

Embed Size (px)

DESCRIPTION

Palestra TDC 2013 - São Paulo - Trilha iOS

Citation preview

Page 1: Como usar seu para-quedas Caso você caia no mundo de iOS

Como usar seu para-quedasCaso você caia no mundo de iOS

Isso não é um para-

quedas, é uma maçã! Fuuu

Wednesday, July 10, 13

Page 2: Como usar seu para-quedas Caso você caia no mundo de iOS

Oi!

Hanneli (a.k.a. @hannelita)

Desenvolvedora

Jogos

Café e Pokémon <3

Wednesday, July 10, 13

Page 3: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Wednesday, July 10, 13

Page 4: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Wednesday, July 10, 13

Page 5: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Wednesday, July 10, 13

Page 6: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Wednesday, July 10, 13

Page 7: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Wednesday, July 10, 13

Page 8: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Algumas receitas de bolo (a.k.a design patterns)

Wednesday, July 10, 13

Page 9: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Algumas receitas de bolo (a.k.a design patterns)

Open Source e ferramentas legais

Wednesday, July 10, 13

Page 10: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Algumas receitas de bolo (a.k.a design patterns)

Open Source e ferramentas legais

Pokémon, história e gifs engraçados <3Wednesday, July 10, 13

Page 11: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Algumas receitas de bolo (a.k.a design patterns)

Open Source e ferramentas legais

Pokémon, história e gifs engraçados <3Wednesday, July 10, 13

Page 12: Como usar seu para-quedas Caso você caia no mundo de iOS

O que vamos ver aqui

Desafios de qualquer desenvolvedor

Por que ir para mobile e iOS?

Básico de Objective C

Truques de memória

Algumas receitas de bolo (a.k.a design patterns)

Open Source e ferramentas legais

Pokémon, história e gifs engraçados <3 E sem graça também

Wednesday, July 10, 13

Page 13: Como usar seu para-quedas Caso você caia no mundo de iOS

Programação

Wednesday, July 10, 13

Page 14: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 15: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 16: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 17: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 18: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 19: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Wednesday, July 10, 13

Page 20: Como usar seu para-quedas Caso você caia no mundo de iOS

1990 -> 2000

Web!

Wednesday, July 10, 13

Page 21: Como usar seu para-quedas Caso você caia no mundo de iOS

Skill set

Wednesday, July 10, 13

Page 22: Como usar seu para-quedas Caso você caia no mundo de iOS

Skill set

PHP

Wednesday, July 10, 13

Page 23: Como usar seu para-quedas Caso você caia no mundo de iOS

Skill set

PHP

Apache

Wednesday, July 10, 13

Page 24: Como usar seu para-quedas Caso você caia no mundo de iOS

Skill set

PHP

Apache

MySQL

Wednesday, July 10, 13

Page 25: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil!

Wednesday, July 10, 13

Page 26: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil!

Wednesday, July 10, 13

Page 27: Como usar seu para-quedas Caso você caia no mundo de iOS

Wednesday, July 10, 13

Page 28: Como usar seu para-quedas Caso você caia no mundo de iOS

Wednesday, July 10, 13

Page 29: Como usar seu para-quedas Caso você caia no mundo de iOS

Wednesday, July 10, 13

Page 30: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBC

Wednesday, July 10, 13

Page 31: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

Wednesday, July 10, 13

Page 32: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XML

Wednesday, July 10, 13

Page 33: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Wednesday, July 10, 13

Page 34: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1

Wednesday, July 10, 13

Page 35: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

Wednesday, July 10, 13

Page 36: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2

Wednesday, July 10, 13

Page 37: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Wednesday, July 10, 13

Page 38: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

Wednesday, July 10, 13

Page 39: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

Wednesday, July 10, 13

Page 40: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

Servlet

Wednesday, July 10, 13

Page 41: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

Wednesday, July 10, 13

Page 42: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

Struts

Wednesday, July 10, 13

Page 43: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2

Wednesday, July 10, 13

Page 44: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

Wednesday, July 10, 13

Page 45: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1

Wednesday, July 10, 13

Page 46: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2

Wednesday, July 10, 13

Page 47: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

Wednesday, July 10, 13

Page 48: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

Primefaces

Wednesday, July 10, 13

Page 49: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

Wednesday, July 10, 13

Page 50: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

Wednesday, July 10, 13

Page 51: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

Tomcat

Wednesday, July 10, 13

Page 52: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

Wednesday, July 10, 13

Page 53: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBoss

Wednesday, July 10, 13

Page 54: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

Wednesday, July 10, 13

Page 55: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

Weblogic

Wednesday, July 10, 13

Page 56: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

Wednesday, July 10, 13

Page 57: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJB

Wednesday, July 10, 13

Page 58: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

Wednesday, July 10, 13

Page 59: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

JMS

Wednesday, July 10, 13

Page 60: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

JMSJAX-RS

Wednesday, July 10, 13

Page 61: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

JMSJAX-RS

Eclipse

Wednesday, July 10, 13

Page 62: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

JMSJAX-RS

Eclipse

IntelliJ IDEAWednesday, July 10, 13

Page 63: Como usar seu para-quedas Caso você caia no mundo de iOS

JDBCHibernate 2

XMLJPA

Hibernate 3.1Annotations

JPA 2EclipseLink

Hibernate 4

ServletJSP

StrutsStruts 2VRaptor

JSF1JSF 2Richfaces

PrimefacesSeam

TomcatJetty

JBossGlassfish

WeblogicWebsphere

EJBWebservices

JMSJAX-RS

Eclipse

IntelliJ IDEANetbeans

Wednesday, July 10, 13

Page 64: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil, né?

Wednesday, July 10, 13

Page 65: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil, né?

Wednesday, July 10, 13

Page 66: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Wednesday, July 10, 13

Page 67: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

Wednesday, July 10, 13

Page 68: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQL

Wednesday, July 10, 13

Page 69: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRuby

Wednesday, July 10, 13

Page 70: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRails

Wednesday, July 10, 13

Page 71: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatra

Wednesday, July 10, 13

Page 72: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

Wednesday, July 10, 13

Page 73: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

Zend

Wednesday, July 10, 13

Page 74: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML

Wednesday, July 10, 13

Page 75: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

Wednesday, July 10, 13

Page 76: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

Wednesday, July 10, 13

Page 77: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

Wednesday, July 10, 13

Page 78: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

Python

Wednesday, July 10, 13

Page 79: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

Wednesday, July 10, 13

Page 80: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD

Wednesday, July 10, 13

Page 81: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vim

Wednesday, July 10, 13

Page 82: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpec

Wednesday, July 10, 13

Page 83: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

Wednesday, July 10, 13

Page 84: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

Cassandra

Wednesday, July 10, 13

Page 85: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.js

Wednesday, July 10, 13

Page 86: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js

Wednesday, July 10, 13

Page 87: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Wednesday, July 10, 13

Page 88: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4j

Wednesday, July 10, 13

Page 89: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

Wednesday, July 10, 13

Page 90: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

Heroku

Wednesday, July 10, 13

Page 91: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

HerokuGit

Wednesday, July 10, 13

Page 92: Como usar seu para-quedas Caso você caia no mundo de iOS

Tem mais!

Oracle

NoSQLRubyRailsSinatraPostgres

ZendHTML CSS

JS

jQuery

PythonDjango

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

HerokuGit

Torquebox

Wednesday, July 10, 13

Page 93: Como usar seu para-quedas Caso você caia no mundo de iOS

Sou F...

Wednesday, July 10, 13

Page 94: Como usar seu para-quedas Caso você caia no mundo de iOS

Sou F...

Wednesday, July 10, 13

Page 95: Como usar seu para-quedas Caso você caia no mundo de iOS

Sou F...

Dig Din

Wednesday, July 10, 13

Page 96: Como usar seu para-quedas Caso você caia no mundo de iOS

Só que não

Wednesday, July 10, 13

Page 97: Como usar seu para-quedas Caso você caia no mundo de iOS

Só que não

Wednesday, July 10, 13

Page 98: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 99: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 100: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 101: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 102: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 103: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 104: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 105: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Wednesday, July 10, 13

Page 106: Como usar seu para-quedas Caso você caia no mundo de iOS

2000 -> hoje

Mobile!

Wednesday, July 10, 13

Page 107: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Wednesday, July 10, 13

Page 108: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Wednesday, July 10, 13

Page 109: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Email

Wednesday, July 10, 13

Page 110: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Email

Personal Trainer

Wednesday, July 10, 13

Page 111: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Email

Personal Trainer

Despertador

Wednesday, July 10, 13

Page 112: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Email

Personal Trainer

Despertador

Álbum de fotos

Wednesday, July 10, 13

Page 113: Como usar seu para-quedas Caso você caia no mundo de iOS

Seu dispositivo móvel

Banco

Email

Personal Trainer

Despertador

Álbum de fotos

Comunicação

Wednesday, July 10, 13

Page 114: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Wednesday, July 10, 13

Page 115: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Wednesday, July 10, 13

Page 116: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Wednesday, July 10, 13

Page 117: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Wednesday, July 10, 13

Page 118: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Wednesday, July 10, 13

Page 119: Como usar seu para-quedas Caso você caia no mundo de iOS

A maçã

Aí, gata, tem WhatsApp?

Wednesday, July 10, 13

Page 120: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhone

Wednesday, July 10, 13

Page 121: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhone

Wednesday, July 10, 13

Page 122: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhone

Wednesday, July 10, 13

Page 123: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhone

Wednesday, July 10, 13

Page 124: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhoneA maçã de

Adão e Eva dá dinheiro?

Wednesday, July 10, 13

Page 125: Como usar seu para-quedas Caso você caia no mundo de iOS

O iPhoneA maçã de

Adão e Eva dá dinheiro?

Faça umas apps então <3

Wednesday, July 10, 13

Page 126: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Wednesday, July 10, 13

Page 127: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

Wednesday, July 10, 13

Page 128: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Wednesday, July 10, 13

Page 129: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

Wednesday, July 10, 13

Page 130: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Wednesday, July 10, 13

Page 131: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

Wednesday, July 10, 13

Page 132: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

Wednesday, July 10, 13

Page 133: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

Wednesday, July 10, 13

Page 134: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit

Wednesday, July 10, 13

Page 135: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

Wednesday, July 10, 13

Page 136: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

Wednesday, July 10, 13

Page 137: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

CoreLocation

Wednesday, July 10, 13

Page 138: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

CoreLocation

ARC

Wednesday, July 10, 13

Page 139: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Wednesday, July 10, 13

Page 140: Como usar seu para-quedas Caso você caia no mundo de iOS

Desenvolvendo

Wednesday, July 10, 13

Page 141: Como usar seu para-quedas Caso você caia no mundo de iOS

Por onde começo?

Wednesday, July 10, 13

Page 142: Como usar seu para-quedas Caso você caia no mundo de iOS

Por onde começo?

Mínimo de programação

procedural

Wednesday, July 10, 13

Page 143: Como usar seu para-quedas Caso você caia no mundo de iOS

Por onde começo?

Criar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa função

Wednesday, July 10, 13

Page 144: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil, vai!

Wednesday, July 10, 13

Page 145: Como usar seu para-quedas Caso você caia no mundo de iOS

Espere aí

Determinar o que preciso para escrever o código!

Wednesday, July 10, 13

Page 146: Como usar seu para-quedas Caso você caia no mundo de iOS

Checklist

MacXcode

Wednesday, July 10, 13

Page 147: Como usar seu para-quedas Caso você caia no mundo de iOS

Checklist

MacXcode

Wednesday, July 10, 13

Page 148: Como usar seu para-quedas Caso você caia no mundo de iOS

Checklist

MacXcode

Wednesday, July 10, 13

Page 149: Como usar seu para-quedas Caso você caia no mundo de iOS

Checklist

MacXcode

Wednesday, July 10, 13

Page 150: Como usar seu para-quedas Caso você caia no mundo de iOS

Checklist

MacXcode

Wednesday, July 10, 13

Page 151: Como usar seu para-quedas Caso você caia no mundo de iOS

Abra o XCode

Wednesday, July 10, 13

Page 152: Como usar seu para-quedas Caso você caia no mundo de iOS

Abra o XCodeBotão pra ca....*

Wednesday, July 10, 13

Page 153: Como usar seu para-quedas Caso você caia no mundo de iOS

Abra o XCode

Wednesday, July 10, 13

Page 154: Como usar seu para-quedas Caso você caia no mundo de iOS

Crie um projeto

File --> New --> Project

Escolha Single View Application

Pouco importam os nomes

Salve num local adequado

Wednesday, July 10, 13

Page 155: Como usar seu para-quedas Caso você caia no mundo de iOS

Crie um projeto

Wednesday, July 10, 13

Page 156: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

Wednesday, July 10, 13

Page 157: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

Mínimo de programação

proceduralWednesday, July 10, 13

Page 158: Como usar seu para-quedas Caso você caia no mundo de iOS

DEMO! 666

Wednesday, July 10, 13

Page 159: Como usar seu para-quedas Caso você caia no mundo de iOS

DEMO! 666Vem, XCODE <3

Wednesday, July 10, 13

Page 160: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

Wednesday, July 10, 13

Page 161: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

Wednesday, July 10, 13

Page 162: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2.

Wednesday, July 10, 13

Page 163: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

Wednesday, July 10, 13

Page 164: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

Wednesday, July 10, 13

Page 165: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

Wednesday, July 10, 13

Page 166: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

Wednesday, July 10, 13

Page 167: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

4.

Wednesday, July 10, 13

Page 168: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

4.

Wednesday, July 10, 13

Page 169: Como usar seu para-quedas Caso você caia no mundo de iOS

Não desista!

1.

2. Simulador

3.

4.

Wednesday, July 10, 13

Page 170: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Wednesday, July 10, 13

Page 171: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Wednesday, July 10, 13

Page 172: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Criar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa funçãoWednesday, July 10, 13

Page 173: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Criar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa funçãoWednesday, July 10, 13

Page 174: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Criar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa funçãoWednesday, July 10, 13

Page 175: Como usar seu para-quedas Caso você caia no mundo de iOS

Procedural

Criar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa funçãoWednesday, July 10, 13

Page 176: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 177: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 178: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 179: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoTipo de retorno

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 180: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoTipo de retorno

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 181: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 182: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 183: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoNome

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 184: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoNome

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 185: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 186: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 187: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoNome do parâmetro

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 188: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoNome do parâmetro

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 189: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 190: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 191: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoTipo do

parâmetro

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 192: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoTipo do

parâmetro

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 193: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 194: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 195: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

Corpo

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 196: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

Corpo

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 197: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma função

[self funcaoTDC:coloqueSuaVariavelAqui];

Chamando sua função

Wednesday, July 10, 13

Page 198: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoCriar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa função

Wednesday, July 10, 13

Page 199: Como usar seu para-quedas Caso você caia no mundo de iOS

Uma funçãoCriar variáveis com um valor

Printar esses valores

Criar uma função

Chamar essa função

Wednesday, July 10, 13

Page 200: Como usar seu para-quedas Caso você caia no mundo de iOS

[[[]]]

*

Wednesday, July 10, 13

Page 201: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 202: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 203: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 204: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 205: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 206: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 207: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 208: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

NSString *tdc

Wednesday, July 10, 13

Page 209: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 210: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Endereço de memória

Wednesday, July 10, 13

Page 211: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 212: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Valor

Wednesday, July 10, 13

Page 213: Como usar seu para-quedas Caso você caia no mundo de iOS

Ponteiro == Controle Remoto

Wednesday, July 10, 13

Page 214: Como usar seu para-quedas Caso você caia no mundo de iOS

Fácil, vai!

Wednesday, July 10, 13

Page 215: Como usar seu para-quedas Caso você caia no mundo de iOS

Próximo passo

Wednesday, July 10, 13

Page 216: Como usar seu para-quedas Caso você caia no mundo de iOS

Próximo passo

Mínimo de Orientação a

Objetos

Wednesday, July 10, 13

Page 217: Como usar seu para-quedas Caso você caia no mundo de iOS

Próximo passo

Criar uma classe

Criar atributos e métodos

Instanciar um objeto

Wednesday, July 10, 13

Page 218: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

Wednesday, July 10, 13

Page 219: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

Wednesday, July 10, 13

Page 220: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

Wednesday, July 10, 13

Page 221: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

Wednesday, July 10, 13

Page 222: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

Wednesday, July 10, 13

Page 223: Como usar seu para-quedas Caso você caia no mundo de iOS

Criando uma classe

CRIE GRUPOS!Criando uma classe

Wednesday, July 10, 13

Page 224: Como usar seu para-quedas Caso você caia no mundo de iOS

Grupos para as classes

Wednesday, July 10, 13

Page 225: Como usar seu para-quedas Caso você caia no mundo de iOS

Grupos para as classes

Wednesday, July 10, 13

Page 226: Como usar seu para-quedas Caso você caia no mundo de iOS

Grupos para as classes

Cuidado!

Wednesday, July 10, 13

Page 227: Como usar seu para-quedas Caso você caia no mundo de iOS

Grupos para as classes

Cuidado!

Não é criado um diretório!

Wednesday, July 10, 13

Page 228: Como usar seu para-quedas Caso você caia no mundo de iOS

DEMO! 666

Wednesday, July 10, 13

Page 229: Como usar seu para-quedas Caso você caia no mundo de iOS

DEMO! 666Vem, XCODE <3

Wednesday, July 10, 13

Page 230: Como usar seu para-quedas Caso você caia no mundo de iOS

.h

Wednesday, July 10, 13

Page 231: Como usar seu para-quedas Caso você caia no mundo de iOS

.h

Atributos

Wednesday, July 10, 13

Page 232: Como usar seu para-quedas Caso você caia no mundo de iOS

.h

Wednesday, July 10, 13

Page 233: Como usar seu para-quedas Caso você caia no mundo de iOS

.h

Métodos

Wednesday, July 10, 13

Page 234: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

Wednesday, July 10, 13

Page 235: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

@property

Wednesday, July 10, 13

Page 236: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

@propertyreadwrite ou readonly

assign, retain ou copy

nonatomic ou atomic

Wednesday, July 10, 13

Page 237: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

@propertyreadwrite ou readonly

assign, retain ou copy

nonatomic ou atomic

Wednesday, July 10, 13

Page 238: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

@propertyreadwrite ou readonly

assign, retain ou copy

nonatomic ou atomic

=

Wednesday, July 10, 13

Page 239: Como usar seu para-quedas Caso você caia no mundo de iOS

.h - destaques

@propertyreadwrite ou readonly

assign, retain ou copy

nonatomic ou atomicgetters e setters

automáticos

=

Wednesday, July 10, 13

Page 240: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

Wednesday, July 10, 13

Page 241: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

Indica a interface

Wednesday, July 10, 13

Page 242: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

Wednesday, July 10, 13

Page 243: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

“Sintetiza” as properties

Wednesday, July 10, 13

Page 244: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

Wednesday, July 10, 13

Page 245: Como usar seu para-quedas Caso você caia no mundo de iOS

.m

Implementa os métodos

Wednesday, July 10, 13

Page 246: Como usar seu para-quedas Caso você caia no mundo de iOS

Visibilidade

Wednesday, July 10, 13

Page 247: Como usar seu para-quedas Caso você caia no mundo de iOS

Visibilidade

Todo método que está no .h é

público

Wednesday, July 10, 13

Page 248: Como usar seu para-quedas Caso você caia no mundo de iOS

Até aqui, fácil!

Wednesday, July 10, 13

Page 249: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

Wednesday, July 10, 13

Page 250: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

Tenho que fazer [alloc[init]]

Wednesday, July 10, 13

Page 251: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

Wednesday, July 10, 13

Page 252: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

E precisa dar release também!

Wednesday, July 10, 13

Page 253: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

Wednesday, July 10, 13

Page 254: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

E se não fizer?

Wednesday, July 10, 13

Page 255: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

Wednesday, July 10, 13

Page 256: Como usar seu para-quedas Caso você caia no mundo de iOS

Em Objective C...

LEAKWednesday, July 10, 13

Page 257: Como usar seu para-quedas Caso você caia no mundo de iOS

Use release quando

Houver um [alloc[init]]

Houver um [copy]

Qualquer método que remeta a um Factory pattern - [xxx create]

Wednesday, July 10, 13

Page 258: Como usar seu para-quedas Caso você caia no mundo de iOS

Use release!

Wednesday, July 10, 13

Page 259: Como usar seu para-quedas Caso você caia no mundo de iOS

Use release!

Nunca chame [pikachu dealloc]

Wednesday, July 10, 13

Page 260: Como usar seu para-quedas Caso você caia no mundo de iOS

dealloc

Wednesday, July 10, 13

Page 261: Como usar seu para-quedas Caso você caia no mundo de iOS

dealloc

Declaração do que deve ser feito ao

desalocar o objeto

Wednesday, July 10, 13

Page 262: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 263: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 264: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

[TreinadorPokemon alloc[init]];

Wednesday, July 10, 13

Page 265: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

dealloc

[TreinadorPokemon alloc[init]];

Wednesday, July 10, 13

Page 266: Como usar seu para-quedas Caso você caia no mundo de iOS

Ajude a implementar!

Wednesday, July 10, 13

Page 267: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 268: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 269: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 270: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 271: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 272: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 273: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 274: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Wednesday, July 10, 13

Page 275: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Wednesday, July 10, 13

Page 276: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Wednesday, July 10, 13

Page 277: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 278: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 279: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 280: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 281: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Treinador *gary

Wednesday, July 10, 13

Page 282: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release]; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Treinador *gary

Wednesday, July 10, 13

Page 283: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Wednesday, July 10, 13

Page 284: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Por alguns instantes, gary apontará para ash!

Wednesday, July 10, 13

Page 285: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em dealloc

Por alguns instantes, gary apontará para ash!

Dangling pointer

Wednesday, July 10, 13

Page 286: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Wednesday, July 10, 13

Page 287: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Wednesday, July 10, 13

Page 288: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Wednesday, July 10, 13

Page 289: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 290: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 291: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 292: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 293: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 294: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Wednesday, July 10, 13

Page 295: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h nil

Wednesday, July 10, 13

Page 296: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Treinador *gary

nil

Wednesday, July 10, 13

Page 297: Como usar seu para-quedas Caso você caia no mundo de iOS

Dangling pointer- (void) teste{ Treinador *ash = [Treinador alloc [init]]; [ash release];

ash = nil; Treinador *gary = [Treinador alloc [init]]; }

Treinador *ash

Memória 1234h

Treinador *gary

nil

Wednesday, July 10, 13

Page 298: Como usar seu para-quedas Caso você caia no mundo de iOS

Suave!

Wednesday, July 10, 13

Page 299: Como usar seu para-quedas Caso você caia no mundo de iOS

Se há dealloc...

Wednesday, July 10, 13

Page 300: Como usar seu para-quedas Caso você caia no mundo de iOS

Se há dealloc...

Deve haver um init!

Wednesday, July 10, 13

Page 301: Como usar seu para-quedas Caso você caia no mundo de iOS

Se há dealloc...

Deve haver um init!

Wednesday, July 10, 13

Page 302: Como usar seu para-quedas Caso você caia no mundo de iOS

Se há dealloc...

Deve haver um init!

Wednesday, July 10, 13

Page 303: Como usar seu para-quedas Caso você caia no mundo de iOS

Se há dealloc...

Deve haver um init!

Wednesday, July 10, 13

Page 304: Como usar seu para-quedas Caso você caia no mundo de iOS

init

Wednesday, July 10, 13

Page 305: Como usar seu para-quedas Caso você caia no mundo de iOS

init

Se ocorreu algum problema na

inicialização do objeto, não inicialize seus

atributos

Wednesday, July 10, 13

Page 306: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - release

Wednesday, July 10, 13

Page 307: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

Wednesday, July 10, 13

Page 308: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

Wednesday, July 10, 13

Page 309: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

release

Wednesday, July 10, 13

Page 310: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 311: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 312: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 313: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 314: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 315: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 316: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 317: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 318: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 319: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 320: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 321: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

releaseWednesday, July 10, 13

Page 322: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

releaseWednesday, July 10, 13

Page 323: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

releaseWednesday, July 10, 13

Page 324: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

releaseWednesday, July 10, 13

Page 325: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

releaseWednesday, July 10, 13

Page 326: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

releaseWednesday, July 10, 13

Page 327: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 328: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

Wednesday, July 10, 13

Page 329: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - releasealloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

release

alloc

init

releasealloc

init

releasealloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

release

alloc

init

releasealloc

init

release

Wednesday, July 10, 13

Page 330: Como usar seu para-quedas Caso você caia no mundo de iOS

alloc - init - release

Wednesday, July 10, 13

Page 331: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease

Wednesday, July 10, 13

Page 332: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease

Wednesday, July 10, 13

Page 333: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease

Wednesday, July 10, 13

Page 334: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease

Wednesday, July 10, 13

Page 335: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease

Wednesday, July 10, 13

Page 336: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

Wednesday, July 10, 13

Page 337: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Wednesday, July 10, 13

Page 338: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Wednesday, July 10, 13

Page 339: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Treinador *ash

Wednesday, July 10, 13

Page 340: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Treinador *ash

Wednesday, July 10, 13

Page 341: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Treinador *ash

Wednesday, July 10, 13

Page 342: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Treinador *ash

Wednesday, July 10, 13

Page 343: Como usar seu para-quedas Caso você caia no mundo de iOS

autorelease pool

[[ ]autorelease];

Treinador *ash

Wednesday, July 10, 13

Page 344: Como usar seu para-quedas Caso você caia no mundo de iOS

Super fácil!

Wednesday, July 10, 13

Page 345: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em alocar

Wednesday, July 10, 13

Page 346: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em alocar

Wednesday, July 10, 13

Page 347: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em alocar

EquipeRocket *rocket =

Wednesday, July 10, 13

Page 348: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em alocar

EquipeRocket *rocket =

Wednesday, July 10, 13

Page 349: Como usar seu para-quedas Caso você caia no mundo de iOS

Por falar em alocar

EquipeRocket *rocket =

Só há uma equipe Rocket

Wednesday, July 10, 13

Page 350: Como usar seu para-quedas Caso você caia no mundo de iOS

Singleton

Wednesday, July 10, 13

Page 351: Como usar seu para-quedas Caso você caia no mundo de iOS

Singleton

CUIDADO

Wednesday, July 10, 13

Page 352: Como usar seu para-quedas Caso você caia no mundo de iOS

Pense na classe

Wednesday, July 10, 13

Page 353: Como usar seu para-quedas Caso você caia no mundo de iOS

Pense na classe

Armazena muita informação

Wednesday, July 10, 13

Page 354: Como usar seu para-quedas Caso você caia no mundo de iOS

Singleton

Wednesday, July 10, 13

Page 355: Como usar seu para-quedas Caso você caia no mundo de iOS

Singleton

Nem toda classe precisa ser um

singleton!

Wednesday, July 10, 13

Page 356: Como usar seu para-quedas Caso você caia no mundo de iOS

Wednesday, July 10, 13

Page 357: Como usar seu para-quedas Caso você caia no mundo de iOS

Open Source

Wednesday, July 10, 13

Page 358: Como usar seu para-quedas Caso você caia no mundo de iOS

Open Source

COCOAPODS

Wednesday, July 10, 13

Page 359: Como usar seu para-quedas Caso você caia no mundo de iOS

Open Source

COCOAPODS

<3

Wednesday, July 10, 13

Page 360: Como usar seu para-quedas Caso você caia no mundo de iOS

AFNetworking

Wednesday, July 10, 13

Page 361: Como usar seu para-quedas Caso você caia no mundo de iOS

AppCode

Wednesday, July 10, 13

Page 362: Como usar seu para-quedas Caso você caia no mundo de iOS

Obigada pelo bate papo!

Wednesday, July 10, 13

Page 363: Como usar seu para-quedas Caso você caia no mundo de iOS

Obigada pelo bate papo!

@hannelita

Wednesday, July 10, 13

Page 364: Como usar seu para-quedas Caso você caia no mundo de iOS

Obigada pelo bate papo!

@[email protected]

Wednesday, July 10, 13