Material para a apresentação da palestra "Implementando Interesses Transversais - um papo sobre arquitetura, DI e Design Patterns em Swift/iOS" no TDC Future 2021

Overview
---
title: Implementando Interesses Transversais - um papo sobre
arquitetura, DI e Design Patterns em Swift/iOS
author: Cícero Camargo
date: Nov 30th 2021
---




Vamos começar pelo código

Commit: a94f08404a026cc83107d9b7fd793d923b867417.

O que são Interesses Transversais?

Interesses Transversais (ou Cross-cutting Concerns) são, basicamente, trechos de código que não implementam Interesses de Negócio.

Exemplos:

  • Tracking
  • Caching
  • Threading
  • Logging
  • Medição de Performance, etc.

Aspect Oriented Programming

Um conjunto de técnicas e ferramentas para implementar Aspectos (wrappers de Interesses Transversais).

A ideia é:

  1. Extrair os Interesses Transversais para módulos separados
  2. Integrá-los aos Interesses de Negócio por meio de Interceptação de chamadas;

É muito popular em Java, mas dá para fazer em Swift? Sim! Como?

  • Method Swizzling 😅 (Hello Firebase, Facebook, etc.)
  • Código bem fatorado 😎 (principalmente com o uso do Decorator Pattern)

Bora codar de novo?

You might also like...
Simple Weather app to display future weather of 3 cities

WeatherApp Simple Weather app to display future weather of 3 cities Test project for a small weather application Overview For the test project a small

Fearless Wallet - a mobile wallet designed for the decentralized future on the Kusama and Polkadot networks
Fearless Wallet - a mobile wallet designed for the decentralized future on the Kusama and Polkadot networks

Fearless Wallet is a mobile wallet designed for the decentralized future on the Kusama and Polkadot network, with support on iOS and Android platforms. The best user experience, fast performance, and secure storage for your accounts. Development of Fearless Wallet is supported by Kusama Treasury grant.

Swift µframework providing FutureT, Error

Future [] (https://github.com/Carthage/Carthage) Swift µframework providing FutureT, Error. This library is inspired by the talk of Javier Soto at S

Simple IOS App About KSA Leaders and Future Projects.
Simple IOS App About KSA Leaders and Future Projects.

KSA-App Simple IOS App About KSA Leaders and Future Projects. This project made by Swift and SwiftUI. The Project Applies the following: Reusable comp

Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21
Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21

Pile Up Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21 Descrição Pile Up é um quebra cabeça cujo objetivo é empilhar os bloc

Uma lista de conteúdos para você aprender Swift

Aprenda Swift Esta lista contém diversos links com conteúdos para aprender a desenvolver utilizando a linguagem Swift. Pela escassez de conteúdo em Po

Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo.
Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo.

MVVM Challenge - Delivery App 🍕 Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo. Desenvolver

Projeto utilizando Flutter para desenvolver uma aplicação com o objetivo de gerenciar uma lista de livros, como se fosse uma biblioteca, sendo possível adicionar, editar e excluir livros.

todo_list_flutter A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you st

Repositório com app exemplo para o uso do gráfico de Heatmap
Repositório com app exemplo para o uso do gráfico de Heatmap

HeatmapExample Repositório com app exemplo para o uso do gráfico de Heatmap O gráfico Heatmap retrata os dados entre duas variaveis diferentes como um

Diseño para prueba técnica de MayaSoft
Diseño para prueba técnica de MayaSoft

FrontPet Prueba de diseño para MayaSoft Desarrollado en Swift Instalación Clonar este repositorio y entrar a la carpeta FrontPet cd FrontPet pod insta

Repositório com o app exemplo para o uso do gráfico radar.
Repositório com o app exemplo para o uso do gráfico radar.

RadarExample Repositório com o app exemplo para o uso do gráfico radar. É um método gráfico de apresentar dados multivariáveis, na forma de um gráfico

Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift
Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift

Onde_estou_iOS Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift, onde ele pede autorização para usar GPS e localização do

Estrutura Simples para Navegacao Web e Download PDF

Download-PDF-WebView Projeto desenvolvido em Swift com a função de criar uma estrutura simples para navegação Web em seu Aplicativo, permitindo a visu

Projeto final do curso de Swift do programa Maria vai com as Devs realizado pela Serasa e Gama Academy para capacitar Desenvolvedoras iOS.
Projeto final do curso de Swift do programa Maria vai com as Devs realizado pela Serasa e Gama Academy para capacitar Desenvolvedoras iOS.

📱 ProjetoFinal - Pokedex App Projeto final do curso de Swift do programa Maria vai com as Devs realizado pela Serasa e Gama Academy para capacitar De

TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI
TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI

TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI Screenshots Vídeos Vídeo on YouTube Requisitos iOS 14 SwiftUI Xcode 12 Meta Github: ht

Liste é um app para anotar suas tarefas de forma a respeitar sua rotina e suas necessidades
Liste é um app para anotar suas tarefas de forma a respeitar sua rotina e suas necessidades

Liste Liste é um app para anotar suas tarefas de forma a respeitar sua rotina e suas necessidades Explore a documentação » TestFlight · Reporte Bug Ta

Repositório para estudos dos 5 princípios conhecidos como SOLID.

SOLID 🗒 Repositório para estudos dos 5 princípios conhecidos como SOLID. O que é SOLID? SOLID é um acrônimo dos cinco primeiros princípios da program

Retos semanales de la comunidad MoureDev para practicar Swift & iOS
Retos semanales de la comunidad MoureDev para practicar Swift & iOS

Code Weekly Challenge Swift/iOS 2022 Proyecto de retos semanales de la comunidad MoureDev para practicar Swift e iOS. Existen repositorios de código t

Cliente de iOS escrito en Swift para el módulo de Concurrencia y Red del bootcamp Fullstack Mobile Developer de KeepCoding
Cliente de iOS escrito en Swift para el módulo de Concurrencia y Red del bootcamp Fullstack Mobile Developer de KeepCoding

DiscourseClient Descripción Práctica del módulo de "Concurrencia & Red" para el KeepCoding Fullstack Mobile Developer Bootcamp, en su 13ª edición. Cli

Owner
Cícero Camargo
Cícero Camargo
The easiest Future and Promises framework in Swift. No magic. No boilerplate.

Promis The easiest Future and Promises framework in Swift. No magic. No boilerplate. Overview While starting from the Objective-C implementation of Ju

Alberto De Bortoli 111 Dec 27, 2022
Swift µframework providing Future

Future [] (https://github.com/Carthage/Carthage) Swift µframework providing Future<T, Error>. This library is inspired by the talk of Javier Soto at S

Le Van Nghia 122 Jun 3, 2021
Função para calcular despesas da viagem para a formação iOS na Stone

Calcular despesas da viagem Desafio: Desenvolva uma função (ou método) que irá receber uma lista de despesas (como a detalhada acima) e uma lista de n

Gabriela Rodrigues 0 Jan 8, 2022
Projeto exemplo apresentado no TDC.

Swift-Pokemon-TCG Motivos de Atualizar para o iOS 13 Principais vantagens da atualização: 1 - Habilitamos a documentação mais eficiente diretamente no

Lucas Maciel 2 Dec 13, 2021
A Swift based Future/Promises Library for IOS and OS X.

FutureKit for Swift A Swift based Future/Promises Library for IOS and OS X. Note - The latest FutureKit is works 3.0 For Swift 2.x compatibility use v

null 759 Dec 2, 2022
A Swift based Future/Promises Library for IOS and OS X.

FutureKit for Swift A Swift based Future/Promises Library for IOS and OS X. Note - The latest FutureKit is works 3.0 For Swift 2.x compatibility use v

null 759 Dec 2, 2022
The easiest Future and Promises framework in Swift. No magic. No boilerplate.

Promis The easiest Future and Promises framework in Swift. No magic. No boilerplate. Overview While starting from the Objective-C implementation of Ju

Alberto De Bortoli 111 Dec 27, 2022
🎈 Curated collection of advanced animations that I have developed using (Swift UI for iOS) and (React Native for iOS/Android). Source code is intended to be reused by myself for future projects.

?? Curated collection of advanced animations that I have developed using (Swift UI for iOS) and (React Native for iOS/Android). Source code is intended to be reused by myself for future projects.

Artem Moshnin 5 Apr 3, 2022
SIP calculator calculates the future value of SIP (Systematic Investment Plan) payments.

SIP calculator calculates the future value of SIP (Systematic Investment Plan) payments. This app is available in the AppStore. Learn more here. #Desc

Tirupati Balan 26 Dec 7, 2022
Artificial intelligence/machine learning data structures and Swift algorithms for future iOS development. bayes theorem, neural networks, and more AI.

Swift Brain The first neural network / machine learning library written in Swift. This is a project for AI algorithms in Swift for iOS and OS X develo

Vishal 331 Oct 14, 2022