Sharing data between iOS apps

Embed Size (px)

Text of Sharing data between iOS apps

  • 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