iOS

O que é Xamarin?

Xamarin é uma plataforma open source da Microsoft para a criação de aplicativos mobiles 100% nativos, onde tudo é desenvolvido acessando as APIs nativas de cada uma das plataformas, como iOS e Android, por exemplo.

Xamarin.Forms - Primeiros passos
Curso de Xamarin.Forms - Primeiros passos
CONHEÇA O CURSO

Se você deseja escrever apenas um código para diversas plataformas o Xamarin é uma ótima opção, pois ele tem justamente o intuito de compartilhar a mesma base de código para a criação de apps em várias plataformas. Assim, você consegue ter o aspecto multiplataforma e a performance e eficiência das aplicações nativas. Aqui no blog já falamos sobre as diferenças entre aplicativo nativo ou híbrido.

Os aplicativos gerados com a plataforma são nativos pois contém controle de interface dos usuários padrões, além de ter o mesmo desempenho dos aplicativos nativos já que o Xamarin aproveita a aceleração de hardware específica de cada um deles. O Xamarin fornece a interoperabilidade, onde é possível invocar diretamente o Objective C, Java, C e C++. Assim é possível reutilizar libs escritas para iOS e Android.

O Xamarin tem como IDE padrão o Visual Studio, que apresenta todos os recursos necessários para o desenvolvimento com o Xamarin, incluindo um recurso para o desenvolvimento de apps iOS: o Pair to Mac. Ele conecta o Visual Studio a um host de build do Mac, facilitando o desenvolvimento para essa plataforma.

Arquitetura Geral

Na imagem abaixo, retirada do próprio site da Microsoft, podemos ver a arquitetura geral de um aplicativo Xamarin.

Para compilar os apps de forma nativa no Android é utilizado o Xamarin.Android. Os apps rodam num ambiente de execução mono, este que manipula automaticamente tarefas como alocação de memória e interoperabilidade com plataformas subjacentes, e passa por uma compilação JIT (Just-In-Time).

Para aplicativos iOS é utilizado o Xamarin.iOS onde as apps também são executadas no ambiente de execução mono e usam a compilação ahead-of-time (AOT C#) para compilar o código para a linguagem assembly.

O Xamarin estende da plataforma .NET e traz para ela acesso a recursos nativos, como a XAML para a criação dinâmica de aplicações mobile usando o C#. Ainda é possível utilizar features do C# no desenvolvimento destes aplicativos, além de bibliotecas para trabalhar com padrões, como o MVVM e libs específicas para trabalhar com outras plataformas que incluem a acessos a APIs do Google, Apple e Facebook.

C# (C Sharp) Básico
Curso de C# (C Sharp) Básico
CONHEÇA O CURSO

Um framework bem importante para o desenvolvimento com o Xamarin é o Xamarin.forms. O desenvolvimento de apps na plataforma Xamarin é feito utilizando Xamarin.Forms, Xamarin.iOS ou Xamarin.Android. O Xamarin.forms é um cross-platform UI library, ou seja, uma abstração para a criação de elementos comuns em todas as plataformas, como elementos de design, navegação, animações, etc. Permite que os desenvolvedores criem interfaces do usuário em XAML com code-behind em C#. Essas interfaces do usuário são renderizadas como controles nativos de alto desempenho em cada plataforma.

Considerações finais

Com o Xamarin você tem grande reaproveitamento de sua base de código quando está desenvolvendo com o foco em mais de uma plataforma. O Xamarin é indicado para todos os desenvolvedores, principalmente os que querem escrever apps multiplataforma em C# e compartilhar códigos, testes e lógica de negócios entre plataformas.

Por que estudar Flutter?

Criar um app do zero com muita facilidade e rapidez é o desejo de todo desenvolvedor. Porém, atingir este objetivo pode ser complicado, pois os diferentes ambientes dos sistemas operacionais mobile atuais são completamente heterogêneos…

Para sanar este problema, o Flutter veio como uma nova alternativa para o desenvolvimento mobile multiplataforma. O Flutter foi desenvolvido pelo Google, sendo gratuito, de código aberto e ainda possui uma ótima documentação.

Você consegue fazer aplicativos para iOS e Android usando uma mesma base de código onde, na hora de compilar, ele transforma o código em uma versão nativa de cada plataforma, o que agiliza a abertura e o desempenho do aplicativo.

O Flutter utiliza uma linguagem também criado pelo próprio Google, chamada Dart., sendo essa linguagem compatível com a orientação a objetos e programação funcional (o que diminui a curva de aprendizado). Apesar de ser nova para muitos, o Dart é uma linguagem simples e fácil de se aprender. Mesmo que você tenha somente o mínimo conhecimento de programação, verá que, com pouco tempo de estudo, você já se sentirá confortável com a linguagem.

O Flutter é dividido em duas camadas principais, sendo:

  • Engine: Responsável pela estrutura de execução, composta pela Skia (a biblioteca de renderização do Flutter) e pelo Dart (linguagem utilizada no desenvolvimento);
  • Framework: escrito em Dart e onde estão os widgets.

É importante saber que todos os componentes do Flutter são widgets. Sendo assim, um label, um campo de entrada de texto e até mesmo o processo de detecção de um gesto na interface são tratados como widgets dentro do Flutter. Uma aplicação Flutter, no final, é uma árvore hierárquica e coordenada destes widgets.

No Flutter, você consegue testar seu aplicativo igual fazemos em uma aplicação web. Você pode alterar seu código e ver a modificação em tempo real.

Com o Flutter você poderá ter agilidade, performance e praticidade, fazendo com que o desenvolvimento seja mais rápido e reutilizável com o melhor desempenho possível. Além de tudo, você pode possuir widgets próprios que constituem os componentes da UI do aplicativo, sendo baseados no Material Design do próprio Google, o que deixa o visual de seu aplicativo bem bonito.

Conclusão

O Flutter veio como uma excelente alternativa para o desenvolvimento mobile, pois oferece desempenho, integração de plataformas móveis e desenvolvimento rápido. Se você deseja ter os primeiros contatos com o Flutter, não deixe de conferir nosso curso 😊

Flutter - Fundamentos
Curso de Flutter - Fundamentos
CONHEÇA O CURSO

Até mais!

Carreira de desenvolvedor de aplicativos: como começar

Apesar de não ser uma tecnologia tão recente, os aplicativos móveis ainda estão em alta no mercado de software. Muitos apps surgem todos os dias, seja resolvendo nossos problemas do dia-a-dia, ou nos entretendo de alguma maneira.

Quem deseja começar uma carreira de desenvolvedor de aplicativos do zero deve ter ciência dos desafios. Além da necessidade de aprendizado das tecnologias atuais, trata-se de um mercado muito volátil em que os avanços tecnológicos e novos frameworks surgem a cada dia.

Desde o começo em lógica de programação, vários desafios serão encontrados. Cabe ao desenvolvedor de aplicativos não se intimidar e enfrentar esses obstáculos de cabeça erguida.

Pensando em ajudar quem quer começar essa carreira, vamos apresentar algumas dicas.

Aprendendo lógica de programação

Quando pensamos em resolver problemas do dia a dia com software, precisamos pensar que existem passos lógicos. Assim como fazer uma receita de bolo, no desenvolvimento de software há uma sequência de ações para chegar a um resultado final.

As sequências lógicas bem estruturadas da programação, que chamamos de algoritmos, são aprendidas quando estudamos lógica de programação. Na jornada para se tornar um desenvolvedor de aplicativos, esse é com certeza o primeiro passo, que na verdade acaba valendo para qualquer área e setor quando falamos sobre desenvolvimento de software.

Lógica de Programação Completo
Curso de Lógica de Programação Completo
CONHEÇA O CURSO

Paradigmas de programação

Um paradigma de programação é a maneira como o desenvolvedor pensa e age para resolver um problema quando está programando – é o seu guia para o desenvolvimento. Esses paradigmas são diferentes em relação aos seus conceitos, aplicações e técnicas.

Um problema pode ser resolvido baseado em diversos paradigmas. Assim como quando falamos sobre linguagens de programação ou IDEs, é difícil falar que um é melhor que o outro. Cada um é mais adequado para resolver determinado problema.

Quando falamos de desenvolvimento de aplicativos móveis, os principais paradigmas de programação são:

Orientação a objetos

Se formos considerar os aplicativos para smartphones atuais, grande parte deles utilizam a orientação a objetos. Essa metodologia permite ao programador o encapsulamento de regras de negócio, além da escrita de códigos menores e mais limpos.

Por isso fazer um curso de lógica orientada a objetos, é um passo importante na jornada como desenvolvedor de aplicativos.

Paradigma funcional

O paradigma funcional tem ganhado espaço no desenvolvimento mobile, principalmente com a vinda de linguagens como o Kotlin e o Swift. Ele baseia-se no conceito matemático de função, em que essas funções são utilizadas para resolver problemas.

O paradigma funcional possibilita a escrita de um código menor e mais expressivo algumas vezes. Por isso, linguagens funcionais são uma opção interessante para quem deseja começar a carreira como desenvolvedor de aplicativos.

Trade off: Qual linguagem escolher? Híbrido, nativo ou cross-platform?

Este é o momento em que o caminho dos desenvolvedores de aplicativos tomam rumos diferentes: a hora da escolha da linguagem de programação e frameworks.

Atualmente, existe no mercado a possibilidade de você ser um desenvolvedor de aplicações móveis nativas, híbridas ou cross-platform.

Quando você escolhe ser um desenvolvedor nativo você tem as seguintes opções:

1) Desenvolvedor android

Para ser um desenvolvedor Android, o programador deve ter domínio das linguagens de programação Java e/ou Kotlin. Essa é uma carreira que ainda possui uma alta taxa de empregabilidade, já que o Android é a plataforma que domina o mercado brasileiro de smartphones.

Android - Básico
Curso de Android - Básico
CONHEÇA O CURSO
Java Básico
Curso de Java Básico
CONHEÇA O CURSO
Kotlin com Android - Primeiros Passos
Curso de Kotlin com Android - Primeiros Passos
CONHEÇA O CURSO

2) Desenvolvedor iOS

Os iPhones e outros gadgets mobile da Apple possuem grande aceitação no mercado e são considerados por muitos os melhores aparelhos disponíveis. Caso você opte por essa carreira, há duas opções de linguagem: Objective-c ou Swift.

A linguagem mais recente dentro das apresentadas é a Swift, portanto, tende a ser a única utilizada para desenvolvimento iOS no futuro.

Swift - Criação de aplicações móveis para IOS Básico
Curso de Swift - Criação de aplicações móveis para IOS Básico
CONHEÇA O CURSO

Já quando a escolha é pelo desenvolvimento híbrido ou cross-platform, contamos com vários frameworks no mercado que cada vez mais se mostram como excelentes opções ao desenvolvimento nativo. Os principais frameworks híbridos e cross-platform usados atualmente no mercado são:

1) Ionic (híbrido)

O Ionic é uma opção já com um pouco mais tempo de mercado e que está em sua terceira versão. Esse framework é baseado no Angular, framework JavaScript do Google. Todo o código gerado é executado em cima do Cordova, um “super framework” para desenvolvimento mobile híbrido que serve de base para outros frameworks híbridos, como o próprio Ionic.

Ionic - Criação de aplicações mobile
Curso de Ionic - Criação de aplicações mobile
CONHEÇA O CURSO

2) PhoneGap (híbrido)

PhoneGap também é um framework para o desenvolvimento híbrido de aplicativos, tendo sido uma das primeiras soluções nesse sentido. Assim como o Ionic e outros frameworks híbridos, ele suporta as plataformas Android, iOS e Windows Phone. A biblioteca também utiliza o Cordova, e as linguagens utilizadas são HTML, CSS e JavaScript.

PhoneGap - Apache Cordova Mobile Framework
Curso de PhoneGap - Apache Cordova Mobile Framework
CONHEÇA O CURSO

3) React Native (cross-platform)

Esse framework, que é baseado em Javascript, é uma grande tendência para o mercado de desenvolvimento de apps. Criado como uma derivação do React, uma biblioteca desenvolvida pela equipe de engenheiros do Facebook, o React Native possui várias características de uma aplicação nativa em sua composição. Além disso, ele abandona o uso de web apps, o que não ocorre nos frameworks híbridos.

React Native - Criação de aplicações móveis
Curso de React Native - Criação de aplicações móveis
CONHEÇA O CURSO

4) Xamarin (cross-platform)

O Xamarin é um framework que também gera versões de aplicativos para Android, iOS e Windows. Assim, como o React Native, o código escrito utilizando-se o Xamarin é compilado de maneira nativa, não ficando atrelado às chamadas WebViews – algo que ocorre nos frameworks híbridos. A linguagem padrão de programação utilizada no desenvolvimento com o Xamarin é o C#. Como opção, o F# (linguagem funcional da plataforma .NET) também pode ser utilizado.

Xamarin.Forms - Primeiros passos
Curso de Xamarin.Forms - Primeiros passos
CONHEÇA O CURSO

IDE’s – Ambientes de desenvolvimento para desenvolvedores de aplicativos

Quando desenvolvemos uma aplicação móvel, é muito importante otimizar todos os processos: desde quando tratamos da escrita do código até quando falamos em execução e testes.

Apesar das IDEs não serem obrigatórias, elas podem acelerar – e muito – o processo de desenvolvimento de um aplicativo. Cada plataforma (Android ou iOS) acaba tendo uma IDE que se mostra mais adequada quando falamos de desenvolvimento nativo. No caso do Android, essa IDE é o Android Studio, recomendado pela própria Google.

No caso do iOS, essa IDE é o XCode, IDE da própria Apple. Isso também acaba acontecendo na utilização de ferramentas cross-platform: no caso do Xamarin, por exemplo, é muito comum a opção pelo Visual Studio. Já no caso de ferramentas híbridas, geralmente um editor de código (que pode ser entendido como uma versão mais simplificada de uma IDE) é geralmente a ferramenta utilizada.

Esses ambientes possuem as seguintes características de maneira geral:

  • Editor de código;
  • Compilador, onde se compila o código para a linguagem da máquina (somente no desenvolvimento nativo e/ou cross-platform);
  • Depurador, onde encontramos defeitos no código-fonte;
  • Mecanismos de refatoração que ajudam na melhora e otimização do código-fonte;

Esses são os passos básicos para se tornar um desenvolvedor de aplicativos móveis. Se você pretende se tornar um desenvolvedor, o estudo e atualização profissional nunca podem ser deixados de lado, assim você conseguirá se destacar no mercado e ter uma carreira de sucesso!

Esse texto foi escrito por Daniel Martins, analista de marketing na Vulpi, plataforma de recrutamento e seleção de desenvolvedores de software.

O problema do iPhone X e a Web

Olá, Web Developers!

Estamos cada vez mais próximos do lançamento oficial do iPhone X, e já apareceu um problema que pode ocorrer no layout de muitos sites.

PhoneGap - Apache Cordova Mobile Framework
Curso de PhoneGap - Apache Cordova Mobile Framework
CONHEÇA O CURSO

Há algum tempo, empresas como Samsung, vêm investindo na ideia de fazer com que seus smartphones possuam uma tela mais ampla e, para isso, veio a ideia de remover o botão home físico da parte da frente.

A Apple seguiu a ideia. Porém, ela decidiu ir além, deixando a tela ainda mais expandida, cobrindo quase toda a parte frontal, exceto pelo espaço ocupado pela câmera, como podemos ver na imagem abaixo:


(Jogo sendo executado em um iPhone X)

Isso pode resultar em situações um pouco estranhas ao navegar pela web. Quando o iPhone está na vertical, não há problemas, mas, quando se está com ele na horizontal, para poder acomodar bem as páginas web e evitar que o espaço da câmera cubra algum conteúdo (como o jogo mostrado acima), é criada uma “área de segurança”.

Em muitos sites isso pode resultar em bordas brancas indesejadas, como o exemplo abaixo:

Há pessoas que já reclamaram, dizendo: “Steve Jobs nunca deixaria isso acontecer”. Sendo verdade ou não, é uma realidade.

Temos duas formas de arrumar isso. Veremos abaixo.

Com background-color

Caso a sua página tenha uma única cor como fundo, a solução é a mais simples de todas. Há pessoas que criam um container para a aplicação e inserem a cor de fundo nele. Para resolver o problema, simplesmente coloque a cor de fundo na propriedade background-color da tag <body>.

A sua página vai continuar com as bordas laterais, mas agora ela terá uma cor igual ao do fundo da página, que a tornará imperceptível para o usuário.

Porém, se sua página possui vários fundos, isso não irá resolver. Na home do site do TreinaWeb temos cores diferentes, então, colocar uma só cor no fundo não é uma opção.

Com viewport-fit

Caso você tenha vários fundos, ou uma imagem/vídeo como fundo, ou se ainda quiser ter mais controle do layout, background-color não irá te ajudar.

Neste caso, podemos aproveitar o viewport-fit:

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">  

Isso fará com que sua página ocupe toda a área da tela do dispositivo:

Isso fará com que parte da sua página passe por baixo da área da câmera, mas agora você tem mais controle e pode definir margens para o seu conteúdo ser exibido corretamente.

As constantes safe-area-inset-*

O Safari do iOS 11 também inclui algumas constantes que podem ser usadas quando usamos o viewport-fit=cover.

  • safe-area-inset-top
  • safe-area-inset-right
  • safe-area-inset-bottom
  • safe-area-inset-left

Essas constantes podem ser usadas nas propriedades CSS margin, padding e top, left, right e bottom quando a posição do elemento for position: absolute.

.my-container{
    padding: constant(safe-area-inset-top) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);  
}

Por que devo dar atenção a isso?

Muitos desenvolvedores pensam nesses ajustes como as antigas “gambiarras” que tínhamos que fazer para que um layout moderno funcionasse em versões específicas do Internet Explorer, usando variáveis e funcionalidades específicas de um único navegador.

Porém, também devemos pensar que haverá usuários com esses dispositivos e eles não culparão o aparelho. Eles irão pensar: “há algo errado com esta página”.

Alguns desenvolvedores estão até aproveitando para brincar com o espaço ocupado pela câmera:

MongoDB - Desenvolvedor
Curso de MongoDB - Desenvolvedor
CONHEÇA O CURSO

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200