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
Superando barreiras no desenvolvimento iOS
Search
Marcelo
May 11, 2013
Programming
11k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Superando barreiras no desenvolvimento iOS
Palestra apresentada no DevCamp 2013.
Marcelo
May 11, 2013
More Decks by Marcelo
See All by Marcelo
Geração de Código - 👍 ou 👎?
marcelofabri
0
150
Desenvolvendo um plugin para o Xcode
marcelofabri
0
190
Desenvolvimento iOS em projetos reais - QCon Rio 2014
marcelofabri
4
460
Objective-Chaos (A Grande Mudança de 2014™)
marcelofabri
1
200
Além do Flat Design: O que mudou no iOS 7
marcelofabri
1
450
E se eu tivesse um DeLorean? - TDC 2012
marcelofabri
0
100
Jogos para iOS usando cocos2d
marcelofabri
0
74
Other Decks in Programming
See All in Programming
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
130
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
550
The NotImplementedError Problem in Ruby
koic
1
790
3Dシーンの圧縮
fadis
1
770
さぁV100、メモリをお食べ・・・
nilpe
0
140
Vite+ Unified Toolchain for the Web
naokihaba
0
310
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
4
990
AIで効率化できた業務・日常
ochtum
0
130
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
400
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
130
net-httpのHTTP/2対応について
naruse
0
480
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
3
410
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Statistics for Hackers
jakevdp
799
230k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Fireside Chat
paigeccino
42
3.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
Are puppies a ranking factor?
jonoalderson
1
3.5k
WENDY [Excerpt]
tessaabrams
11
38k
ラッコキーワード サービス紹介資料
rakko
1
3.6M
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
Superando Barreiras no Desenvolvimento iOS
•Apresentação •Motivação •Pré-requisitos •Linguagem •IDE •Dependências •DEMO •Últimos detalhes Agenda
Eu sou o Marcelo! marcelofabri.com @marcelofabri_
[email protected]
Quem?!
Quem?
Sobre o que é essa palestra?
Sobre o que NÃO é essa palestra?
None
None
None
Mas sério, sobre o que é essa palestra?
Fácil. Barreiras.
None
Chega de nhenhenhe.
Primeira barreira
Xcode só roda no Mac OSX
Beleza. Arranjei um Mac. E agora? #comofas
Objective-C
Objective-C + (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue*) queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))
handler [NSURLConnection sendAsynchronousRequest:req queue:queue completionHandler:^(NSURLResponse *resp, NSData *data, NSError *err) { NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); }];
Acha isso ruim? Vamos ver algumas melhorias
home.view.frame = self.view.frame; [[home view] setFrame:[[self view] frame]]; Para acessar
propriedades, usa-se dot notation. Métodos são chamados com colchetes. Dot Notation
NSDictionary *palestrante = [NSDictionary dictionaryWithObjectsAndKeys:@"Marcelo", @"nome", @"Palmeiras", @"time", nil]; NSString
*nome = [palestrante objectForKey:@"nome"]; NSArray *numeros = [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil]; NSNumber *um = [numeros objectAtIndex:0]; NSDictionary *palestrante = @{@"nome": @"Marcelo", @"time": @"Palmeiras"}; NSString *nome = palestrante[@"nome"]; NSArray *numeros = @[@1, @2]; NSNumber *um = numeros[0]; Literals http://clang.llvm.org/docs/ObjectiveCLiterals.html
None
Mas e o gerenciamento de memória? Me falaram que não
tem Garbage Collector.
Não tem mesmo. É usado contagem de referências. http://en.wikipedia.org/wiki/Reference_counting
Vou ter que controlar isso na mão?
NÃO!
ARC http://clang.llvm.org/docs/AutomaticReferenceCounting.html
None
There’s a twist!
ARC não é magia •“Objetos” do CoreFoundation (C) devem ser
controlados na mão •Retain cycles
Xcode
Xcode •Ruim, mas já foi pior! •Modinha nova: plugins ✓ColorSense-for-Xcode
✓KSImageNamed-Xcode http://mneorr.github.io/Alcatraz/
None
Sabe o que seria massa? Se eu pudesse usar alguma
coisa igual o maven.
Existe algo assim! Chama CocoaPods http://www.raywenderlich.com/12139/introduction-to-cocoapods
DEMO https://github.com/marcelofabri/devcamp-demo
“Acabei meu app. Vamos colocar na AppStore e ganhar milhões.”
É importante testar em dispostivos reais.
E o que isso significa?
DOR.
None
None
WHY?
Code Sign
Code Sign TestFlight HockeyApp
Relembrando •Só com Mac OSX •Objective-C •ARC •Xcode •CocoaPods •Code
Sign
E agora?
None
Links •https://developer.apple.com/ •http://www.raywenderlich.com/ •https://github.com/github/objective-c-conventions •http://informalprotocol.com/2012/10/declaring-blocks-in-objective-c/ •http://iosdevweekly.com/ •http://nshipster.com/ •http://amattn.com/2011/12/07/arc_best_practices.html •http://dannysu.com/2012/07/30/automatic-reference-counting-on-ios/ •http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-
counting.html •http://conradstoll.com/blog/2013/1/19/blocks-operations-and-retain-cycles.html •https://speakerdeck.com/marcelofabri/e-se-eu-tivesse-um-delorean-tdc-2012 •http://www.raywenderlich.com/21987/top-10-most-useful-ios-libraries-to-know-and- love •http://www.raywenderlich.com/31166/25-ios-app-performance-tips-tricks
None
One more thing...
None
Obrigado! marcelofabri.com @marcelofabri_
[email protected]