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
130
Desenvolvendo um plugin para o Xcode
marcelofabri
0
150
Desenvolvimento iOS em projetos reais - QCon Rio 2014
marcelofabri
4
420
Objective-Chaos (A Grande Mudança de 2014™)
marcelofabri
1
190
Além do Flat Design: O que mudou no iOS 7
marcelofabri
1
420
E se eu tivesse um DeLorean? - TDC 2012
marcelofabri
0
88
Jogos para iOS usando cocos2d
marcelofabri
0
61
Other Decks in Programming
See All in Programming
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
490
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
甘い香りに誘われてVanilla Extractを1年間運用してみた
miyahkun
1
110
Semantic search with Django and pgvector
pauloxnet
0
240
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
SpringBoot+MyBatisで例外が出たときどこを見るか
syukai
0
110
Ruby GitHub Packages
bkuhlmann
0
620
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
280
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
13
1.5k
A Tale of Four Properties
chriscoyier
150
22k
Visualization
eitanlees
135
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
29
6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
273
13k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Git: the NoSQL Database
bkeepers
PRO
422
63k
For a Future-Friendly Web
brad_frost
171
8.9k
Optimizing for Happiness
mojombo
370
69k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
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]