Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modularizando aplicativos

BrunoDelgado
November 10, 2019

Modularizando aplicativos

Talk realizada na NSBrazil 2019 sobre como modularização de aplicativos iOS.

BrunoDelgado

November 10, 2019
Tweet

More Decks by BrunoDelgado

Other Decks in Programming

Transcript

  1. Compilar e rodar partes do nosso aplicativo de forma separada

    Redução do tempo de build Clareza nas funcionalidades e responsabilidades Ganhos Arquiteturas diferentes em cada módulo Mudanças no projeto principal não recompilam os frameworks Módulos te forçam a pensar mais em partes isoladas Reutilização de código Testes separados e com menos validação
  2. Framework Workspace com mais de um projeto CocoaPods utiliza essa

    forma Projeto principal e um projeto para cada módulo Projeto depende dos módulos Cada módulo pode depender de outros módulos (internos ou externos)
  3. Frameworks funcionam somente na arquitetura que foram compilados Build com

    "Generic iOS Device" funciona em devices e não no simulador Build com "Simulator" funciona no simulador mas não em devices Problema
  4. lipo cria uma binário universal com as arquiteturas que precisamos

    Não coloque arquiteturas que seu projeto não usa
  5. XCFramework Introduzido pela Apple no Xcode 11 Framework binário com

    todas as arquiteturas suportadas iOS, iPadOS, watchOS, tvOS e macOS O processo de criação é o mesmo que de um framework normal
  6. Swift Package Só suporta código Swift, Objective-C/C++, ou C/C++ Suporta

    dependências internas e externas Não pode conter assets nem arquivos do tipo xib ou storyboard Só pode ter dependências de outros packages
  7. Reutilização de código Frameworks binários → CocoaPods ou Carthage XCFrameworks

    → Sem suporte ainda Packages → Swift Package Manager
  8. Para finalizar… Modularização pode ser usada em projetos novos ou

    já existentes Funcionalidades Modelos reutilizáveis (Photos e PhotosUI) Core/Common/Shared UI StyleGuide Networking Storage Componentes
  9. "If you are curious, one of our biggest apps –

    Runtastic – had almost two hundred dynamic frameworks at some point”