Slide 1

Slide 1 text

.xctemplate produtividade e cocoaheads campinas - outubro 2019

Slide 2

Slide 2 text

Fabrício Serralvo dev iOS @ iFood

Slide 3

Slide 3 text

como vai ser • 20 ~ 25 minutos • baixa profundidade • pré requisito: xcode

Slide 4

Slide 4 text

e sobre o que vamos falar • o que é xcode template • exemplos e demonstração • quando usar e quando não usar • perguntas e respostas

Slide 5

Slide 5 text

o que é template - ˈtɛmpleɪt, ˈtɛmplət noun A shaped piece of rigid material used as a pattern for processes such as cutting out, shaping, or drilling. Computing: a preset format for a document or file.

Slide 6

Slide 6 text

// Foo.swift // Created on 26/10/19 extension Foo: Bar { return “foo-bar” }

Slide 7

Slide 7 text

o que é • disponível desde o xcode 3 • se divide em duas categorias • project template • file template

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

/Applications/Xcode.app/Contents/Developer/Library/ Xcode/Templates

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

~/Library/Developer/Xcode/Templates/File Templates/ ⚠ caso a pasta não exista, basta cria-la

Slide 12

Slide 12 text

estrutura • arquivo .plist para configuração: TemplateInfo.plist • ícone e ícone 2x: TemplateIcon.png e [email protected] • arquivos que definem o template, MyFile.swift por exemplo • tudo isso em uma pasta com o sufixo .xctemplate

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

exemplos e demonstração • struct + protocolos • markdown • unit tests • view controller + table view • table view cell + xib

Slide 15

Slide 15 text

exemplos e demonstração ___FILEBASENAME___ nome do arquivo, sem extensão ___FILEBASENAMEASIDENTIFIER___ nome do arquivo normalizado ___PROJECTNAMEASIDENTIFIER___ nome do projeto normalizado ___VARIABLE_customName___ variável customizada, customName é definido no TemplateInfo.plist ___VARIABLE_customName:identifier___ variável customizada usando normalização

Slide 16

Slide 16 text

quando usar • facilita padronização • foco em boas práticas • automatização

Slide 17

Slide 17 text

quando não usar • xcode template não é • gerador de código • Sourcery - github.com/krzysztofzablocki/Sourcery • gerador de dados • Fakery - github.com/vadymmarkov/Fakery • SwiftRandom - github.com/thellimist/SwiftRandom

Slide 18

Slide 18 text

referências

Slide 19

Slide 19 text

perguntas?

Slide 20

Slide 20 text

muito obrigado!