Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introdução - iOS - TDC FLN 2014
Search
hannelita
May 16, 2014
Technology
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introdução - iOS - TDC FLN 2014
TDC Florianopolis 2014
hannelita
May 16, 2014
More Decks by hannelita
See All by hannelita
Java EE 8 - Future, Wishes and Predictions
hannelita
1
230
JVM Internals Demystified
hannelita
0
380
Eletrônica
hannelita
0
200
Cassandra Meetup
hannelita
0
85
Our Daily Graphs written in Ruby and Neo4j
hannelita
1
190
Wildfly em alta disponibilidade
hannelita
0
280
Helios - o backend pra Mobile que você precisava <3
hannelita
0
130
Neo4j - Dia a dia com grafos, Neo4j e Ruby
hannelita
1
170
Swift - uma fama repentina
hannelita
1
160
Other Decks in Technology
See All in Technology
モバイルアプリ開発概論2026
recruitengineers
PRO
3
450
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
10
8k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.3k
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Flutterをカメラで動かしたかった話
sony
1
130
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.1k
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
470
Pavlokで始める電撃駆動開発
sgrsn
0
170
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
120
【Google Cloud Next Tokyo'26】Gemini Enterprise と Oracle AI Database で実現する、業務データ活用を実現する AI エージェント実装
shisyu_gaku
0
220
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
240
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
5
1.3k
Featured
See All Featured
Paper Plane
katiecoart
PRO
2
52k
BBQ
matthewcrist
89
10k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
880
How to make the Groovebox
asonas
2
2.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
460
Transcript
Como usar seu para-quedas Caso você caia no mundo de
iOS Isso não é um para-quedas, é uma maçã! Fuuu
Oi! Hanneli (a.k.a. @hannelita)! Desenvolvedora! Jogos! Café e Pokémon <3
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
Programação
1990 -> 2000 Web!
Skill set PHP Apache MySQL
Fácil!
JDBC Hibernate 2 XML JPA Hibernate 3.1 Annotations JPA 2
EclipseLink Hibernate 4 Servlet JSP Struts Struts 2 VRaptor JSF1 JSF 2 Richfaces Primefaces Seam Tomcat Jetty JBoss Glassfish Weblogic Websphere EJB Webservices JMS JAX-RS Eclipse IntelliJ IDEA Netbeans
Fácil, né?
Tem mais! Oracle NoSQL Ruby Rails Sinatra Postgres Zend HTML
CSS JS jQuery Python Django TDD vim RSpec Mongo Cassandra Node.js Meteor.js Backbone.js Neo4j Redis Heroku Git Torquebox
Sou F... Dig Din
Só que não
2000 -> hoje Mobile!
Seu dispositivo móvel Banco Email Personal Trainer Despertador Álbum de
fotos Comunicação
A maçã
A maçã Aí, gata, tem WhatsApp?
O iPhone
O iPhone A maçã de Adão e Eva dá dinheiro?
Faça umas apps então <3
Desenvolvendo Objective C iOS Xcode SQLite Foundation C C++ UIKit
CoreGraphics CoreServices CoreLocation ARC
Desenvolvendo
iOS Development [[[[ ]]]]
Desenvolvendo
Por onde começo? Mínimo de programação procedural
Não desista! Mínimo de programação procedural
Fácil, vai!
Próximo passo Mínimo de Orientação a Objetos
Próximo passo Criar uma classe! Criar atributos e métodos! Instanciar
um objeto
Criando uma classe
Criando uma classe
Criando uma classe CRIE GRUPOS!
Grupos para as classes Cuidado! Não é criado um diretório!
.h Atributos
.h Métodos
.h - destaques @property readwrite ou readonly! assign, retain ou
copy! nonatomic ou atomic getters e setters automáticos =
.m Indica a interface
.m “Sintetiza” as properties
.m Implementa os métodos
Visibilidade Todo método que está no .h é público
Até aqui, fácil!
Em Objective C... Tenho que fazer [alloc[init]]
Em Objective C... E precisa dar release também!
Em Objective C... E se não fizer?
Em Objective C... LEAK
Use release quando Houver um [alloc[init]]! Houver um [copy]! Qualquer
método que remeta a um Factory pattern - [xxx create]
Use release! Nunca chame [pikachu dealloc]
dealloc Declaração do que deve ser feito ao desalocar o
objeto
Por falar em dealloc dealloc [TreinadorPokemon alloc[init]];
Ajude a implementar!
Por falar em dealloc
Por falar em dealloc
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
Por falar em dealloc Por alguns instantes, gary apontará para
ash! Dangling pointer
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
Suave!
Se há dealloc... Deve haver um init!
init Se ocorreu algum problema na inicialização do objeto, não
inicialize seus atributos
alloc - init - release alloc init release alloc init
release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release alloc init release
alloc - init - release
autorelease
autorelease
autorelease pool [[ ]autorelease]; Treinador *ash
Super fácil!
Por falar em alocar EquipeRocket *rocket = Só há uma
equipe Rocket
Singleton CUIDADO
Pense na classe Armazena muita informação
Singleton Nem toda classe precisa ser um singleton!
Rá
Open Source COCOAPODS <3
AFNetworking
AppCode
Obrigada pelo bate papo! @hannelita
[email protected]
hannelita.com