MENU

| BR

Campus

Programação

Marketing

UX

Dados

Negócios

Paises

2 benefícios mais comuns entre as arquiteturas iOS

2 benefícios mais comuns entre as arquiteturas iOS
tech
12 de abril de 2019
  -  
-min de leitura


O desenvolvimento de aplicativos iOS está cada vez mais popular. Os aplicativos estão mais robustos, as interações mais complexas, as funcionalidades mais desafiadoras e os times cada vez maiores. É fundamental que um novo membro de um time seja capaz de compreender e alterar a base de código de um app de forma fácil e rápida. Para garantir a sincronia desses times e a manutenibilidade do projeto, assuntos como arquitetura foram introduzidos nas empresas e têm sido altamente fomentados na comunidade desenvolvedora. Essas arquiteturas possuem algumas características que podem beneficiar muito os times de desenvolvimento e os projetos como um todo. A arquitetura de software define a estrutura de um sistema, a comunicação entre os componentes que o compõe e visa garantir a integridade dos requisitos técnicos e operacionais. A arquitetura adotada pela Apple para o desenvolvimento de aplicativos iOS é o MVC (Model - View - Controller), representada no diagrama abaixo: Onde:
  • View é responsável pelos componentes visuais e por receber ações do usuário
  • Model representa os objetos de uma aplicação
  • Controller é responsável pela interação entre Views e Models
 Na prática View e Controller são representados em uma única classe, chamada UIViewController, que possui outlets para os componentes visuais, recebe as ações do usuário, além de prover dados e garantir a atualização dos modelos. Visto que o objetivo da empresa é apenas expor suas APIs e exemplificar seus usos, esse arranjo cumpre com seu dever. No entanto, os aplicativos tomaram novas proporções e muitas vezes são altamente complexos, gerando a necessidade de uma nova maneira de organizar o código, para garantir a reusabilidade e manutenibilidade do mesmo. Nesse âmbito, o MVC foi apelidado de Massive View Controller, já que todas as lógicas ficam nessa única classe, e novas propostas surgiram para tentar resolver esse problema. Algumas das propostas mais conhecidas são MVP, MVVM, MVVM-C, VIPER e VIP (também conhecida como CleanSwift). Apesar de suas particularidades e por algumas abrangerem também a forma de lidar com a manipulação de dados e fluxo de navegação, todas as arquiteturas têm como objetivo principal garantir alguns benefícios. São eles: single responsibility e testabilidade.  Single responsibility É muito pertinente que ao desenvolver uma aplicação exista a garantia da single responsibility, isso é, cada classe deve ser responsável por apenas uma atividade, logo View não será responsável por chamadas HTTP e Model não saberá da interação do usuário com a aplicação, por exemplo. Algumas arquiteturas, como VIPER e CleanSwift possuem camadas específicas para lidar com as requisições à APIs ou gerenciamento de banco de dados. Essas camadas podem ser encontradas pelos nomes middleware, interactor, service, entre outros. A ideia é que essas classes possam ser reutilizadas por diferentes fluxos ao invés de haver a repetição de código em múltiplas partes do código. A maioria das aplicações são contidas de diferentes telas e fluxos de navegação, por isso as novas arquiteturas procuram maneiras mais eficientes de realizar a orquestração dessas telas. É daí que surgiram termos como coordinator e router, classes que sabem a ordenação das telas e fluxos e quais os dados necessários para a inicialização de cada um deles.  Testabilidade A popularidade dos testes vêm aumentando e os desenvolvedores estão cada vez mais preocupados com a garantia da qualidade de seus códigos. Através da separação de responsabilidades e isolamento de side effects, que devem ser garantidos pelas arquiteturas, é possível testar cada unidade de código e cada um dos módulos. Isso dá liberdade para que o desenvolvedor possa realizar alterações sem que bugs sejam introduzidos na aplicação. Existem diferentes tipos de testes. Teste unitário, teste de integração e teste de interface. O primeiro visa garantir que uma unidade de código funciona em isolamento. O segundo, como seu próprio nome diz, visa garantir a integração entre módulos e que essa integração não crie side effects na aplicação. Já o teste de interface costuma ser mais manual e, apesar de sua popularidade no mundo de desenvolvimento, deve ser usado com certa cautela, pois são voláteis e bastante custosos. Independente da quantidade e quais tipos de testes são aplicados a um projeto, a arquitetura escolhida deve sempre visar o aumento da cobertura de testes do código, possibilitando que alterações sejam feitas sem a necessidade de regressões e garantindo ao desenvolvedor a segurança de que o app continua operando com sucesso. Não necessariamente o seu projeto vai se encaixar em uma dessas opções. Você pode criar a sua própria arquitetura ou adaptar uma existente para atender as características do seu projeto. Toda essa sopa de letrinhas deve servir como inspiração e o fundamental é manter a clareza, organização e separação do código de forma que a responsabilidade única de cada classe e sua testabilidade sejam garantidas.
Yasmin Benatti do Grupo Movile

Outras notícias

Digital House e Talenses lançam pesquisa inédita sobre organização digital img
carreira

Digital House e Talenses lançam pesquisa inédita sobre organização digital

No dia 06 de agosto, pela manhã, o auditório da Digital House serviu de palco para o evento de lançamento da pesquisa “Paradigma Digital: a demanda por habilidades e profissionais digitais”, desenvolvida pela Talenses em parceria com a Digital House Brasil.O evento contou com mais de 100 profissionais da área de Recursos Humanos, entre gerentes e diretores que compareceram para entender os resultados do estudo e também para debater soluções para os desafios que as empresas encontram ao fazer sua transformação digital.Além da apresentação dos principais resultados do estudo, o lançamento contou com um painel de discussões com especialistas, moderado pelo jornalista Marc Tawil. Participaram: Patrícia Araújo (Head de RH do Mercado Livre e professora da Digital House), Bruno Pina (CDO da Astrazeneca), Luciano Bittioli (senior recruiter da Talenses) e o Edney Souza, diretor acadêmico aqui da escola.Sobre o estudoO estudo veio de um levantamento com profissionais das áreas de Recursos Humanos de mais de 100 empresas de diferentes portes e dos mais diversos setores: serviços, comércio e indústria. A coleta de dados ocorreu durante o segundo trimestre de 2019, entendendo as demandas por profissionais digitais no mercado.O CEO da Digital House Brasil, Carlos Alberto Júlio, contou que essa foi a primeira edição da pesquisa, que procurou identificar onde estão as dificuldades do RH e das empresas em encontrar profissionais para a nova economia. Os resultados foram surpreendentes, e foi possível enxergar quem tem mais ou menos dificuldade em fazer a transformação digital: “A intenção é dar continuidade nesse trabalho e que consigamos aprofundá-lo com outros aspectos do mundo digital”.O estudo responde a algumas questões como:Quais setores estão mais maduros no processo de transformação digital? Quem está mais avançado nesse processo: pequenas, médias ou grandes empresas?Quais são os profissionais digitais mais difíceis de encontrar para contratar?Quais as habilidades digitais mais valorizadas por quem contrata?Quais são áreas de uma empresa que mais demandam profissionais digitais?Que impacto as empresas sentem pela falta de profissionais digitais para contratar?Dentre os resultados apresentados, foi possível observar que, quando comparado com setor de comércio e serviços, a indústria se mostra atrás nessa corrida de transformação digital. Para Carlos Alberto, “fica claro que o setor de serviços foi mais impactado pela questão digital, dada a sua conexão direta com o seu cliente final. Nem sempre uma indústria tem essa relação direta com o consumidor e com a sua cadeia de distribuição.”Já para Luiz Valente, diretor geral da Talenses, comenta que um dado preocupante apresentado pela pesquisa é o baixo investimento em treinamentos para conceitos de digital: “Há uma necessidade urgente de que as companhias passem a investir e direcionar recursos para o treinamento em ferramentas e metodologias digitais.”Ele também menciona que há um desafio muito claro para as áreas de Recursos Humanos no que diz respeito à conscientização sobre a transformação digital: “as empresas precisam começar a compreender quais são as alternativas de modelo de negócios, de processos internos, que vantagens o ecossistema digital pode trazer para as organizações. O RH, junto com a liderança da companhia, precisa estar engajado e estimulando para que todas as áreas entrem nessa jornada”.Especialistas discutem cenário do mercado de digital e perspectivas de futuroBruno Pina, da Astrazeneca, comentou que uma das grandes dificuldades do corpo executivo é entender a necessidade de dar um passo à frente para a transformação. “O primeiro passo pra gente começar a se transformar é sair do ‘não sei que não sei’ para o ‘sei que não sei’. Ou seja, reconhecer o problema e fazer uma autoavaliação”.De acordo com Patrícia Araújo, um evento como esse é importante para preparar as áreas de RH e empresas, para que elas sejam melhores e mais preparadas para a digital. “A gente não está contribuindo só para as empresas que estamos atuando, mas sim para a economia deste país”.Além disso, ela acredita que ao atuar como parceiro de negócios, o setor de RH contribui para transformar a cultura das organizações. “Para isso, precisamos estar dois a três passos à frente, o que significa treinar e desenvolver a nós mesmos. Precisamos continuar desaprendendo e aprendendo para contribuir. Todas as empresas serão transformadas de alguma maneira. Algumas, talvez, em escala exponencial, muito maior, enquanto outras em escala menor, mas em todas o RH tem a oportunidade de ser parceiro nessa mudança.Já Edney Souza reforça que todas as áreas precisam ser digitais: “Você precisa de profissionais de TI no Marketing, na área de finanças, no jurídico. Quando você tem uma única área que entende de TI, isso se torna um grande gargalo que atrapalha o desenvolvimento da sua companhia”.Quer saber mais? Baixe agora o relatório completo e tenha acesso a todos os resultados dessa pesquisa inédita no mercado!

Co-marketing: conceito, benefícios e estratégias img
mkt

Co-marketing: conceito, benefícios e estratégias

Quando o país dá sinais de recessão econômica, é comum empresas voltarem seus cortes e contingências para a área de Marketing. Esse cenário exige das equipes soluções criativas que podem, inclusive, acarretar na ressurreição de práticas já conhecidas, como é o caso do co-marketing.O nome pode ser novo, mas o princípio já vem sendo aplicado há alguns anos. Co-marketing é quando você unifica sua estratégia de marketing com a de uma empresa que tenha público-alvo e objetivos semelhantes. Alguns são exemplos podem ser encontrados nas campanhas conjuntas feitas por companhias aéreas e locadoras de carros, ou lojas de artigos esportivos e academias.Não são necessariamente empresas que competem diretamente entre si, mas que atuam em mercados semelhantes. Nos casos citados acima, nos nichos de turismo e esportes.Talvez seja o momento certo para olhar para a área de atuação de sua empresa e buscar possíveis parceiros que queiram criar uma parceria frutífera em prol de um bem comum. Afinal, o co-marketing é a síntese da expressão "a união faz a força".BenefíciosQuando duas empresas optam pelo co-marketing, elas compartilham os dois lados da moeda: trabalho e resultados. A não ser que uma empresa tenha mais interesse na parceria que a outra, sendo possível então negociar quem contribuirá com o quê.Força de uma aliançaO co-marketing permite que as duas empresas envolvidas consigam aumentar seu alcance, cruzando base de dados e leads. Apesar de atuarem no mesmo segmento, os clientes de uma empresa podem não conhecer a outra. Assim, ambas aumentam suas oportunidades de vendas.Confira ainda 4 empresas que estão usando o Big Data para aumentar receitas e diminuir custos.A melhor maneira de fazer isso acontecer é cada empresa disparar e-mails para as respectivas bases apresentando a parceira e incluindo sua assinatura na mensagem. Não cadastre em sua base e-mails de pessoas que não se inscreveram em sua newsletter, as duas empresas podem ser classificadas como spam e ter este importante recurso bloqueado.OrçamentoAo unir duas estratégias de marketing para um bem comum, com foco no mesmo público-alvo e ações similares, você consegue economizar mão de obra, melhorar a produtividade da equipe e reduzir o investimento em ferramentas. Tudo isso sem comprometer a taxa de sucesso de sua campanha.Ande com os experts da áreaAo optar pelo co-marketing, é importante ter em mente com qual tipo de empresa você quer se associar. Andar com os experts da área irá, automaticamente, conferir autoridade e respeito à sua marca.Além do mais, quando sua empresa é indicada por uma marca “de confiança” dos clientes, eles tendem a transferir parte dessa confiança a você, que é recomendado por alguém que já conquistou respeito.Lembre-se que é sempre uma via de mão dupla, esses benefícios devem existir tanto para você quanto para seu aliado.EstratégiasSeja exigente na escolhaJá falamos alguns parágrafos acima como é importante escolher o parceiro certo para sua estratégia de co-marketing. Não é só a posição da outra empresa no mercado que precisa ser levada em consideração nessa decisão.Pense em alguém que possa complementar seu produto e que agregue valor ao projeto. Evite empresas que não possuem conhecimento em marketing digital ou não têm conceitos básicos definidos como público-alvo, persona, jornada do consumidor, entre outros.Palavra-chave: PlanejamentoJá percebeu como quase todos os artigos que falam sobre estratégia têm a palavra “planejamento” como um item importante? Pois bem, se planejar é importante quando você está definindo caminhos para sua própria empresa, é algo indispensável quando você está desenhando um projeto com um parceiro.O planejamento precisa ser meticuloso e envolver seu aliado em cada etapa. Não se apresse e não tente fazer as coisas acontecerem antes do tempo. É preciso de paciência extra quando se trata de co-marketing, pois é o futuro de duas marcas em jogo.Todo mundo ganhaEstabeleça uma relação em que todo mundo ganhe, não tente ser esperto e tirar vantagem do co-marketing para alavancar sua empresa. Seu parceiro precisa sair desse projeto com tantos benefícios e ganhos quanto você.Em alguns casos, como já falamos acima, as duas empresas podem não compartilhar a mesma posição e status dentro do mercado. Ou talvez uma companhia seja maior que a outra. Em casos em que a parceria já começa com um certo de nível de desigualdade, é importante criar uma compensação.A empresa com mais recursos pode realizar a maior parte do investimento, enquanto a outra entra com mão de obra, por exemplo.Divida bem as tarefasA partir do momento em que foi definida qual será a relação entre as empresas parceiras, divida as tarefas e deixe bem claro para cada lado qual seu papel a cumprir. A troca pode ser um post no blog, webinar, eBook, vídeos, eventos e o que mais as empresas identificarem como troca positiva no que abrange o marketing compartilhado.Durante o planejamento, aproveitem para mapear as forças e fraquezas das respectivas áreas de marketing de cada empresa. Esse exercício pode ser valioso no momento de decidir quem vai controlar o investimento em redes sociais e quem vai acompanhar KPI’s e medir resultados, por exemplo.Hora de medir resultadosFalando em medir resultados, é preciso acompanhar as métricas das ações realizadas no co-marketing para ter certeza de que a parceria foi, de fato, um sucesso. Esses dados são valiosos durante a parceria, para realizar eventuais ajustes nas campanhas, e depois que o acordo foi finalizado, para saber quais foram os erros e acertos.Aproveite para ler 5 métricas essenciais de marketing digital para ficar de olho.Bons números também servirão de base para um próximo projeto com um novo parceiro de co-marketing no futuro. Você poderá apresentar os resultados positivos de uma estratégia compartilhada.

Desenvolvedor front end: o que preciso saber pra ser um? img
tech

Desenvolvedor front end: o que preciso saber pra ser um?

Você decidiu que pode ser uma boa atuar como desenvolvedor front end, mas não sabe exatamente como começar? Ou já começou a programar, mas quer mergulhar ainda mais a fundo nessa área? Ok, esse universo pode parecer bastante confuso à primeira vista, pois existem vários caminhos a serem trilhados nessa carreira.Um ótimo conselho é pesquisar todas as possibilidades para decidir qual direção tomar. Neste texto, vamos falar um pouquinho com quem tem interesse em desenvolvimento de interfaces que conversam diretamente com os usuários, ou seja, o famoso front end!Quer entender como funciona, quais os primeiros passos e se o mercado está favorável? Chamamos a professora do curso de Desenvolvimento Web Full Stack, Hendy Almeida, para esclarecer todas as dúvidas!O que é o front end e back endQue tal começar diferenciando dois dos conceitos mais conhecidos do desenvolvimento web? Se, dentro de uma aplicação, você souber separar o front end do back end, já será um ótimo começo!Hendy explica que, quando falamos no back end, nos referimos à parte que está por trás das interfaces, se comunicando com os servidores, guardando informações no banco de dados e definindo as regras de negócio.Já o front end é a parte responsável pela interação com o usuário. Isso significa que estamos falando de todo o conteúdo que fica visível, como por exemplo: o layout da página, os efeitos visuais e até mesmo a validação de formulários. O desenvolvedor front end precisa ter um olhar voltado para experiência do usuário para que o trabalho aconteça da melhor maneira possível.Deu para entender que, apesar de diferentes, os desenvolvedores das duas áreas acabam se complementando, certo?O que faz um desenvolvedor front-endFocando especificamente na turma dos front-end developers, Hendy mostra que, nessa área, é possível criar páginas web utilizando HTML, CSS e Javascript, normalmente com base em um layout pré-definido por um designer ou pela equipe de design. Isso significa que trabalhar em equipe é fundamental para pensar na melhor experiência possível para o usuário.Esse trabalho requer muita atenção aos detalhes, pois é importante garantir que o design da página esteja de acordo com o que foi pré-definido, ou que a usabilidade esteja fluida. O usuário final está em primeiro lugar, e a experiência dele vai ser sempre considerada para fazer as devidas otimizações, quando necessário.Por que o front end é tão importante?Bem, depois de tanta explicação, fica até fácil entender a importância do front end, né? Só de saber que o principal objetivo desse profissional é oferecer uma boa experiência para o usuário, já se percebe quem é que descomplica e cuida da aparência do desenvolvimento web.Hendy alerta: “Você pode ter um sistema super funcional no back end, mas se ele não for atraente e de fácil acesso, não adianta nada”. É no front que consegue-se facilitar a usabilidade de um sistema web e mudar a experiência do usuário.Mercado de trabalho em altaBoas notícias para os entusiastas e futuros desenvolvedores: o mercado para front end só tem crescido e está em alta! Para Hendy, hoje em dia, há muitas possibilidades de vagas na área, para atuar desde os níveis de conhecimento mais básicos, como HTML, CSS e Javascript, até o modo avançado, como ReactJS, Angular e Service Worker. Segundo o site Glassdoor, o salário médio para um desenvolvedor front é de R$ 3.995 por mês, podendo variar até chegar a mais de R$ 13.000. Nada mal, hein!Vem ser front end você também!Gostou da ideia de entrar nessa profissão desafiadora? Hendy conta o que é preciso aprender no começo da carreira “De início é preciso estudar as bases: HTML para estruturar o conteúdo, CSS que é nossa folha de estilo, e Javascript que permite adicionar lógica e interagir com eventos do usuário como click ou scroll na página. Depois disso, nós podemos ir para parte mais divertida, como Bootstrap e jQuey, ou seja, as bibliotecas/frameworks que facilitam nosso trabalho”.Com esse tanto de palavra e expressões, fica mais uma dica: o inglês é um diferencial que te ajudará muito no dia a dia! Até mesmo para buscar referências e leituras que, grande parte das vezes, não estão disponíveis em português.E também é importante lembrar que, mesmo que você escolha se especializar no front end, será preciso ter noções de como o todo se comunica com o back end, ou como funciona o banco de dados, por exemplo. A profissão é apaixonante e divertida! Com certeza, você vai adorar!