View
398
Category
Embed Size (px)
Compartilhando dados entre aplicativos
2
twitter: @dchohfi github: @dchohfi facebook: @dchohfi vida: @dchohfi
Diego Chohfi Turini
Miguel Bassila
3
twitter: @miguelbassila github: @miguelbassila facebook: @miguelbassila vida: @miguelbassila
Nubank
4
Maio de 2013 Investidores de peso Fila de espera gigantesca Atendimento++ Tudo pelo aplicativo Cresceu
http://bit.ly/tdc-nubank
http://bit.ly/tdc-nubank
6
Cresceu muito
7
Comunicao entre apps limitada
Integrao com sistema mais limitada ainda
Apps para iOS eram teoricamente simples
8
Briga entre grandes empresas Trocada por: Briga entre fanboys
9
Teclado Controle de armazenamento Home screen customizvel Aplicativos sem integrao
Limitaes da plataforma
10
App Extensions
Soluo da Apple para os problemas
Preencher gaps da plataforma e aumentar as funcionalidades sem comprometer segurana e usabilidade
11
App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
Actions
Share
12
Photo editing
App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
13
Keyboard
App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
14
Today extension
App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
15
Vamos fazer uma extension \o/
E agora? Como fazer
17
Novo target
18
Today Extension
19
Novo target ViewController Storyboard Plist configurao
20
Quem aqui gosta de storyboard? O @diogot adora
Customizando o comportamento padro de uma extension
21
Bundle display name NSExtensionMainStoryboard NSExtensionPrincipalClass
https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/SystemExtensionKeys.html
com.apple.widget-extension
22
Extension apenas uma UIViewController
23
Acabou, vocs j sabem como fazer, flw t+
24
Brinqs rsrs, ainda tem coisa pra faz
25
Como um objeto ganha comportamento?
Sua UIViewController precisa implementar um protocolo para se tornar um widget
26
Sua UIViewController ganha dois mtodos opcionais
27
widgetMarginInsetsForProposedMarginInsets:
widgetPerformUpdateWithCompletionHandler:
Cuidados com o ciclo de vida de um widget
28
parecido com uma UIViewController mas diferente :(
NS_EXTENSION_UNAVAILABLE_IOS
29
30
Montar a tela ok, mas e os dados vem da onde?
Como acessar os dados dentro de uma extension?
32
33
Onde normalmente guardamos os dados importantes do usurio?
Formas de compartilhar dados entre aplicaes
KeychainCompartilhando informaes seguras
35
Pode compartilhar informaes entre diversos targets
No est atrelado a apenas uma aplicao
Keychain
36
Entitlements
Habilitando Keychain Sharing
37
Habilitando Keychain Sharing
Trabalhar com keychain no fcil
38
[UICKeyChainStore keyChainStoreWithService:@"br.com.nubank" accessGroup:@""];
UICKeyChainStore
39
AccessGroup?
UICKeyChainStore
.
>.< que fofo
40
AccessGroup?
UICKeyChainStore
Bundle Identifier: configurado no entitlements
41
Bundle Seed ID
UICKeyChainStore
ABCD12345
42
Agora todos os apps podem compartilhar os dados sensveis do
usurio
Keychain
43
E o que no sensvel? fica onde?
Formas de compartilhar dados entre aplicaes
44
Lembra do bambu? Brincadeira
45
Onde escrevemos dados no app?
Formas de compartilhar dados entre aplicaes
AppGroups
47
Entitlements
Habilitando App Groups
48
Agora podemos compartilhar dados :D
NSUserDefault
NSFileManager
49
NSUserDefaults
[[NSUserDefaults alloc] initWithSuiteName:appGroupName];
50
[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:appGroupName];
NSFileManager
Agora que compartilhamos os dados, como compartilhar o
cdigo?
52
Copiar e colar, que tal?
53
No n z
Frameworks
55
Um novo target
56
Um novo target
57
Um novo target
Tipos de frameworks
58
Dynamic Static
Pode conter assets Apenas aps iOS8 Linkado em tempo de execuo
Mais rpido para compilar e carregar
Assets apenas com bundle Suporta verses anteriores ao iOS8
Precisa recompilar o target principal a cada mudana
https://pewpewthespells.com/blog/static_and_dynamic_libraries.html
59
Criar o frameworks depois foi uma dor de cabea
61
Single Responsibility Principle
62
Trabalhamos com MVC
63
MVC um cancer, por conter apenas 3 letras
64
Seu modelo maior do que voc imagina
65
Independente da arquitetura, sempre v alm das siglas mgicas
Tipos de frameworks
66
O que podemos incluir num Framework?
Modelos Requests Armazenamento Classes utilitrias Categories
O que vimos at agora?
67
Como criar uma extension Como compartilhar keychain App groups Framework para classes compartilhadas Single responsibility principle
68
Widgets so legais, mas ningum usa.
iOS 10
70
Foco enorme em widgets
iOS 10
71
Widgets iOS10
Tamanho nico para compressed
72
Exibido no 3D touch
Notificaes
75
Mais extensions
76
Dois novos frameworks/extensions
Texto grande
UserNotifications.framework
UserNotificationsUI.framework
77
Book a rideMaps
iMessageMap Reservation
VOIP
Notification
