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
hannelita
May 16, 2014
Technology
39
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
200
Cassandra Meetup
hannelita
0
88
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
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
データ_AIの事業の勝敗をわけるもの
nek0128
0
370
AI時代、データエンジニアが一番おもろい
genshun9
0
600
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
4
1.3k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
210
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
730
Reactの設計論
uhyo
24
13k
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
320
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
190
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.2k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.5k
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
590
Producing Creativity
orderedlist
PRO
348
41k
Balancing Empowerment & Direction
lara
6
1.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
490
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
The agentic SEO stack - context over prompts
schlessera
0
940
Marketing to machines
jonoalderson
1
5.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
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