Sunteți pe pagina 1din 43

Xamarin Fest

Lucas Marques

Developer @ Braspag Tecnologia em Pagamentos


Co-Founder @ MoreCodding

medium.com/@lmarquesmoreira github.com/lmarquesmoreira
linkedin.com/in/lmarquesmoreira morecodding.com.br
Agenda

Cross Platform Apps Microsoft Mobile Center

Introduo ao Xamarin DevOps

Analytics
Azure Mobile Apps
Com Application Insights
Azure Push Notifications

Cognitive Services
Voice Detection
As plataformas mais relevantes
iOS e Android apps
A viso .NET e dispositivos

Uma ferramenta

Habilidades unificadas C# / .NET Libraries

Lgica do cliente compartilhada Portable Libraries

Cdigo customizado para telas (~20%)


O que Xamarin?
Extenso do Visual Studio
iOS, Android apps dentro do
Visual Studio
Compila cdigo de C# em
aplicativos nativos
Todos os recursos do Visual
Studio disponveis

Criar aplicativos mais rpido


Mesmas prticas
Reutiliza cdigo e binrio de
forma flexvel
Interfaces totalmente nativas
Compilao nativa, desempenho nativo

IL
ARM
.NET BINARY .NET +
JIT

C# AOT .APP C#
Compile
and Link .APK
Runs Runs
natively natively
Bindings Bindings

Xamarin.iOS faz uma compilao Ahead Of Xamarin.Android faz uma compilao


Time (AOT) para produzir um binrio ARM Just In Time (JIT) no dispositivo
pronto para Apples App Store Android
Native User Interfaces Native API Access Native Performance
A abordagem exclusiva da Xamarin

iOS C# UI Android C# UI Windows C# UI

Shared C# logic

Shared C# codebase 100% native API access High performance


Native UI

iOS C# Android C# Windows C#

Shared C# Logic

3 Native User Interfaces


Shared App Logic
Xamarin.Forms

Shared UI Code

Shared C# Logic

Shared User Interface


Shared App Logic
Mais reutilizao de cdigo
Windows APIs

Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
iOS 100% API coverage

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
Android 100% API coverage

Text-to-speech ActionBar Printing Framework Renderscript NFC

System.Net System System.IO System.Linq System.Xml

System.Data System.Windows System.Numerics System.Core System.ServiceModel

C#
Xamarin for Visual Studio
Experincias ruins em aplicativos
Erros
Difceis de usar
Caractersticas no anunciadas
Experincia lenta
Sem dados disponveis no incio
Sempre conectado?
Infrastructura
para crescer
100+ datacenters
Top 3 em redes globais
Regies: 2x AWS, 6x Google
G Series As maiores MV do mundo

Operacionales

Anunciadas

* Operadas por 21Vianet


Por que Azure Mobile Apps?
Extremamente poderoso SDK para cada plataforma

Flexvel iOS, Android e Windows

Easy Tables (Node.js)

App Service (ASP.NET) Open source C#


Tudo no GitHub
Azure Mobile Apps
Offline Sync Cdigo de
backend

SQL Tables Mongo O365 API Apps

REST API

Facebook Twitter Microsoft Google Azure Active


Directory

Sincronizao
offline

iOS OSX Android Windows Kindle In-App


Chrome
Criar um servio rpido
MobileService = new MobileServiceClient(
"https://myapp.azurewebsites.net");
Criar tabelas
IMobileServiceSyncTable<TodoItem> syncTable;

public async Task Init()


{
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
db.DefineTable<TodoItem>();

await MobileService.SyncContext.InitializeAsync(db);
syncTable = MobileService.GetSyncTable<TodoItem>();
}
Coletar e enviar dados
private async Task SyncAsync()
{
await MobileService.SyncContext.PushAsync();
var query = syncTable.CreateQuery();
await syncTable.PullAsync("todoItems", query);
}

private async Task InsertTodoItem(TodoItem todoItem)


{
await syncTable.InsertAsync(todoItem);
await MobileService.SyncContext.PushAsync();
}
Consultar uma tabela local

public async Task<IEnumerable<TodoItem>> GetOpenItemsAsync()


{
return await todoTable
.Where(item => item.Complete == false)
.ToEnumerableAsync();
}
Notificaes com Notification Hub
4. Enviar aos dispositivos

1. Obter um PNS

2. Almazenar o PNS 3b. Pedido de notificao


5. Gerenciar dispositivos
Usa conexo de dispositivo

3a. Pedido de notificao

Usa tags lgicos


Notification Hub
Sincronizao de arquivos
Arquivos sincronizados com Azure Storage
Online/Offline
Mobile + Server =

Linux/Mono
iOS C# UI Android C# UI Windows C# UI Azure CoreCLR

Shared C# Mobile C# Server

Shared C# Client/Server

Cdigo compartilhado Acesso a APIs nativas 100% Grande performance


De rostos a sentimentos, permita que seus apps
entendam imagens e vdeos
Microsoft
Cognitive Oua e fale com seus usurios filtrando o rudo,
identificando os falantes e compreendendo a inteno

Services Processe o texto e saiba como reconhecer o que os


usurios querem

Aproveite o rico conhecimento acumulado na web, na


academia ou nos seus prprios dados

Acesse bilhes de pginas da web, imagens, vdeos


e notcias com o poder das APIs Bing
Cognitive Services
microsoft.com/cognitive
Vision Speech Language Knowledge Search
Custom Academic Bing
Computer Vision Bing Spell Check
Recognition Knowledge Web Search
Speaker Bing
Emotion Linguistic Analysis Entity Linking
Recognition Image Search
Language Knowledge Bing
Face Speech
Understanding Exploration Video Search

Bing
Video Translator Text Analytics Recommendations
News Search
Bing
WebLM
Autosuggest
Obrigado ;)

S-ar putea să vă placă și