O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Sharing data between iOS apps

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 78 Anúncio

Sharing data between iOS apps

Baixar para ler offline

Talk at TDC 2016 about approaches to share data between multiple targets and applications on Apple's platform. Including techniques to create extensions as: Today Extensions, Keyboard Extensions and new extensions added to iOS10.

Talk at TDC 2016 about approaches to share data between multiple targets and applications on Apple's platform. Including techniques to create extensions as: Today Extensions, Keyboard Extensions and new extensions added to iOS10.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Quem viu também gostou (20)

Semelhante a Sharing data between iOS apps (20)

Anúncio

Mais recentes (20)

Sharing data between iOS apps

  1. 1. Compartilhando dados entre aplicativos
  2. 2. 2 twitter: @dchohfi github: @dchohfi facebook: @dchohfi vida: @dchohfi Diego Chohfi Turini
  3. 3. Miguel Bassila 3 twitter: @miguelbassila github: @miguelbassila facebook: @miguelbassila vida: @miguelbassila
  4. 4. Nubank 4 • Maio de 2013 • Investidores de peso • Fila de espera gigantesca • Atendimento++ • Tudo pelo aplicativo • Cresceu
  5. 5. http://bit.ly/tdc-nubank
  6. 6. 6 Cresceu muito
  7. 7. 7 • Comunicação entre apps limitada • Integração com sistema mais limitada ainda Apps para iOS eram teoricamente simples
  8. 8. 8 Briga entre grandes empresas Trocada por: Briga entre fanboys
  9. 9. 9 • Teclado • Controle de armazenamento • Home screen customizável • Aplicativos sem integração Limitações da plataforma
  10. 10. 10 App Extensions Solução da Apple para os problemas Preencher gaps da plataforma e aumentar as funcionalidades sem comprometer segurança e usabilidade
  11. 11. 11 App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma Actions Share
  12. 12. 12 Photo editing App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
  13. 13. 13 Keyboard App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
  14. 14. 14 Today extension App Extensions: a partir do iOS8 diversas funcionalidades adicionadas para a plataforma
  15. 15. 15 Vamos fazer uma extension o/
  16. 16. E agora? Como fazer
  17. 17. 17 Novo target
  18. 18. 18 Today Extension
  19. 19. 19 • Novo target • ViewController • Storyboard • Plist configuração
  20. 20. 20 Quem aqui gosta de storyboard? O @diogot adora
  21. 21. Customizando o comportamento padrão 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. 22. 22 Extension é apenas uma UIViewController
  23. 23. 23 Acabou, vocês já sabem como fazer, flw t+
  24. 24. 24 Brinqs rsrs, ainda tem coisa pra fazê
  25. 25. 25 Como um objeto ganha comportamento?
  26. 26. Sua UIViewController precisa implementar um protocolo para se tornar um widget 26 <NCWidgetProviding>
  27. 27. Sua UIViewController ganha dois métodos opcionais 27 widgetMarginInsetsForProposedMarginInsets: widgetPerformUpdateWithCompletionHandler:
  28. 28. Cuidados com o ciclo de vida de um widget 28 É parecido com uma UIViewController mas é diferente :( NS_EXTENSION_UNAVAILABLE_IOS
  29. 29. 29
  30. 30. 30 Montar a tela é ok, mas e os dados vem da onde?
  31. 31. Como acessar os dados dentro de uma extension?
  32. 32. 32
  33. 33. 33 Onde normalmente guardamos os dados importantes do usuário? Formas de compartilhar dados entre aplicações
  34. 34. Keychain Compartilhando informações seguras
  35. 35. 35 • Pode compartilhar informações entre diversos targets • Não está atrelado a apenas uma aplicação Keychain
  36. 36. 36 Entitlements Habilitando Keychain Sharing
  37. 37. 37 Habilitando Keychain Sharing Trabalhar com keychain não é fácil
  38. 38. 38 [UICKeyChainStore keyChainStoreWithService:@"br.com.nubank" accessGroup:@""]; UICKeyChainStore
  39. 39. 39 AccessGroup? UICKeyChainStore <Bundle Seed ID>.<Bundle Identifier> >.< que fofo
  40. 40. 40 AccessGroup? UICKeyChainStore Bundle Identifier: configurado no entitlements
  41. 41. 41 Bundle Seed ID UICKeyChainStore ABCD12345
  42. 42. 42 Agora todos os apps podem compartilhar os dados sensíveis do usuário Keychain
  43. 43. 43 E o que não é sensível? fica onde? Formas de compartilhar dados entre aplicações
  44. 44. 44 Lembra do bambu? Brincadeira
  45. 45. 45 Onde escrevemos dados no app? Formas de compartilhar dados entre aplicações
  46. 46. AppGroups
  47. 47. 47 Entitlements Habilitando App Groups
  48. 48. 48 Agora podemos compartilhar dados :D NSUserDefault NSFileManager
  49. 49. 49 NSUserDefaults [[NSUserDefaults alloc] initWithSuiteName:appGroupName];
  50. 50. 50 [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier: appGroupName]; NSFileManager
  51. 51. Agora que compartilhamos os dados, como compartilhar o código?
  52. 52. 52 Copiar e colar, que tal?
  53. 53. 53 Não né zé
  54. 54. Frameworks
  55. 55. 55 Um novo target
  56. 56. 56 Um novo target
  57. 57. 57 Um novo target
  58. 58. Tipos de frameworks 58 Dynamic Static • Pode conter assets • Apenas após iOS8 • Linkado em tempo de execução • Mais rápido para compilar e carregar • Assets apenas com bundle • Suporta versões anteriores ao iOS8 • Precisa recompilar o target principal a cada mudança https://pewpewthespells.com/blog/static_and_dynamic_libraries.html
  59. 59. 59 Criar o frameworks depois foi uma dor de cabeça
  60. 60. 61 Single Responsibility Principle
  61. 61. 62 Trabalhamos com MVC
  62. 62. 63 MVC é um cancer, por conter apenas 3 letras
  63. 63. 64 Seu modelo é maior do que você imagina
  64. 64. 65 Independente da arquitetura, sempre vá além das siglas mágicas
  65. 65. Tipos de frameworks 66 O que podemos incluir num Framework? • Modelos • Requests • Armazenamento • Classes utilitárias • Categories
  66. 66. O que vimos até agora? 67 Como criar uma extension Como compartilhar keychain App groups Framework para classes compartilhadas Single responsibility principle
  67. 67. 68 Widgets são legais, mas ninguém usa.
  68. 68. iOS 10
  69. 69. 70 Foco enorme em widgets iOS 10
  70. 70. 71 Widgets iOS10 Tamanho único para compressed
  71. 71. 72 Exibido no 3D touch
  72. 72. Notificações
  73. 73. 75 Mais extensions
  74. 74. 76 Dois novos frameworks/extensions Texto grande UserNotifications.framework UserNotificationsUI.framework
  75. 75. 77 Book a ride Maps iMessage Map Reservation VOIP Notification

×