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
2
11k
Superando barreiras no desenvolvimento iOS
Palestra apresentada no DevCamp 2013.
Marcelo
May 11, 2013
Tweet
Share
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
450
Objective-Chaos (A Grande Mudança de 2014™)
marcelofabri
1
200
Além do Flat Design: O que mudou no iOS 7
marcelofabri
1
440
E se eu tivesse um DeLorean? - TDC 2012
marcelofabri
0
100
Jogos para iOS usando cocos2d
marcelofabri
0
72
Other Decks in Programming
See All in Programming
SourceGeneratorのマーカー属性問題について
htkym
0
180
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
120
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
320
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
510
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
140
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
1.9k
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
470
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
140
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
490
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
160
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
750
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
350
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
The Invisible Side of Design
smashingmag
302
51k
Leo the Paperboy
mayatellez
4
1.5k
Bash Introduction
62gerente
615
210k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
230
Crafting Experiences
bethany
1
81
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Visualization
eitanlees
150
17k
BBQ
matthewcrist
89
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
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]