Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introdução - iOS - TDC FLN 2014
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hannelita
May 16, 2014
Technology
44
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
240
JVM Internals Demystified
hannelita
0
380
Eletrônica
hannelita
0
210
Cassandra Meetup
hannelita
0
90
Our Daily Graphs written in Ruby and Neo4j
hannelita
1
200
Wildfly em alta disponibilidade
hannelita
0
290
Helios - o backend pra Mobile que você precisava <3
hannelita
0
140
Neo4j - Dia a dia com grafos, Neo4j e Ruby
hannelita
1
180
Swift - uma fama repentina
hannelita
1
170
Other Decks in Technology
See All in Technology
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
1
260
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
0
130
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
390
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
0
260
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
Codex概要
ymiya55
0
430
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
180
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
400
SDDの運用にめげずに向き合った話
sansantech
PRO
1
130
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
190
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
130
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
520
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
Facilitating Awesome Meetings
lara
57
7.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
From π to Pie charts
rasagy
1
390
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
BBQ
matthewcrist
89
10k
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