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

TDC 2014 - Como usar seu para-quedas caso você caia no mundo de iOS

Embed Size (px)

DESCRIPTION

Palestra da trilha Mobile - TDC2014

Citation preview

Page 1: TDC 2014 - 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

Page 2: TDC 2014 - 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

Page 3: TDC 2014 - 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

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

Programação

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

1990 -> 2000

Web!

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

Skill set

PHP

Apache

MySQL

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

Fácil!

Page 8: TDC 2014 - 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

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

Fácil, né?

Page 10: TDC 2014 - 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

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

Sou F...

Dig Din

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

Só que não

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

2000 -> hoje

Mobile!

Page 14: TDC 2014 - 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

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

A maçã

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

A maçã

Aí, gata, tem WhatsApp?

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

O iPhone

Page 18: TDC 2014 - 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

Page 19: TDC 2014 - 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

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

Desenvolvendo

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

iOS Development

[[[[ ]]]]

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

Desenvolvendo

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

Por onde começo?

Mínimo de programação

procedural

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

Não desista!

Mínimo de programação

procedural

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

Fácil, vai!

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

Próximo passo

Mínimo de Orientação a

Objetos

Page 27: TDC 2014 - 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

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

Criando uma classe

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

Criando uma classe

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

Criando uma classe

CRIE GRUPOS!Criando uma classe

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

Grupos para as classes

Cuidado!

Não é criado um diretório!

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

.h

Atributos

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

.h

Métodos

Page 34: TDC 2014 - 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

=

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

.m

Indica a interface

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

.m

“Sintetiza” as properties

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

.m

Implementa os métodos

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

Visibilidade

Todo método que está no .h é

público

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

Até aqui, fácil!

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

Em Objective C...

Tenho que fazer [alloc[init]]

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

Em Objective C...

E precisa dar release também!

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

Em Objective C...

E se não fizer?

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

Em Objective C...

LEAK

Page 44: TDC 2014 - 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]

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

Use release!

Nunca chame [pikachu dealloc]

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

dealloc

Declaração do que deve ser feito ao

desalocar o objeto

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

Por falar em dealloc

dealloc

[TreinadorPokemon alloc[init]];

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

Ajude a implementar!

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

Por falar em dealloc

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

Por falar em dealloc

Page 51: TDC 2014 - 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

Page 52: TDC 2014 - 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

Page 53: TDC 2014 - 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

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

Suave!

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

Se há dealloc...

Deve haver um init!

Page 56: TDC 2014 - 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

Page 57: TDC 2014 - 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

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

alloc - init - release

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

autorelease

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

autorelease

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

autorelease pool

[[ ]autorelease];

Treinador *ash

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

Super fácil!

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

Por falar em alocar

EquipeRocket *rocket =

Só há uma equipe Rocket

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

Singleton

CUIDADO

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

Pense na classe

Armazena muita informação

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

Singleton

Nem toda classe precisa ser um

singleton!

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

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

Open Source

COCOAPODS

<3

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

AFNetworking

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

AppCode

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

Obrigada pelo bate papo!

@[email protected]

hannelita.com