28

Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

  • Upload
    binwell

  • View
    49

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)
Page 2: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Отзывы��Помогите нам стать лучше!На вашу почту отправлена индивидуальная ссылка на электронную анкету. 2 ноября в 23:30 незаполненная анкета превратится в тыкву.

Заполните анкету и подходите к стойке регистрации за приятным сюрпризом!

#msdevconОставляйте отзывы в социальных сетях. Мы все читаем. Спасибо вам!

Page 3: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Программа интенсива11:30 – 12:30 Часть 1: Готовим Xamarin.Forms (Теоретическая часть)12:30 – 13:30 Практика13:30 – 14:30 Обед

14:30 – 15:30 Часть 2: Удобный REST (Теоретическая часть)15:30 – 16:30 Практика16:30 – 17:00 Перерыв

17:00 – 18:00 Часть 3: Архитектура приложения (Теоретическая часть)18:00 – 19:00 Практика19:30 – 20:30 Круглые столы с экспертами

Page 4: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Правильный Xamarin для мобильных приложений Черников ВячеславBinwell

Page 5: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Цели

#msdevcon

Что такое Xamarin.For

msРаботаем с

REST

Архитектура

приложенияПодключаемся к

внешнему REST-сервису, знакомимся с Mock-

данными

Отделяем бизнес-логику от UI, упрощаем

описание ViewModel, знакомимся с архитектурой

Знакомимся с Xamarin и cоздаем первое приложение на Xamarin.Forms

Page 6: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

#msdevcon

Что такое Xamarin.Forms

Page 7: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Классический Xamarin

Полное покрытие iOS/Android API, нативные приложения

C# для разработки, возможность шарить код

Page 8: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Xamarin.Forms

Унификация и абстрагирование UI

Xaml, MVVM

PCL-библиотека

Page 9: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Xamarin.Forms

Приложения для работы с данными

Прототипы

Бизнес-приложения

Page 10: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Xaml Page<?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamlSamples.HelloXamlPage" Title=“Page Title goes here"> <Label Text="{Binding Model.Text}" x:Name=“MainLabel" FontAttributes="Bold" TextColor="Aqua" /></ContentPage>

Page 11: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Основные элементыLabel – отображение текста Image – отображение изображенийButton – кнопкаListView – список элементовStackLayout – компоновка элементовContentPage – простая страницаMasterDetailPage – страница с боковым меню

Page 12: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Практика

#msdevcon

Приложениe v0.1Хардкодим и осваиваем UI

Page 13: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Практика

#msdevcon

https://aka.ms/xamintensive

Page 14: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Полезные ресурсы

#msdevcon

Улучшения-- FFImageLoading <ffimageloading:CachedImage DownsampleToViewSize="true"

Source = "http://loremflickr.com/600/600/nature?filename=simple.jpg"> </ffimageloading:CachedImage>

-- ListView caching<ListView CachingStrategy="RecycleElement">

-- XamlC, AssemblyInfo.cs[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

Page 15: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

#msdevcon

Работаем с REST API

Page 16: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Json.Net и DTO

public class Session {

[JsonProperty("title")]public string Title;

}

Page 17: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Refitpublic interface IRemoteApi{ [Get("/sessions")] Task<List<Session>> GetSessions();}

var service = RestService.For<IRemoteApi>("https://demo3143189.mockable.io");var sessions = await service.GetSessions();

Page 18: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Mock

Ускоряет верстку

Дает возможность проверить различные сценарии и наборы данных

Сохраняем готовые JSON в качестве ресурсов

Page 19: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

DAL

Data Interfaces (ISessionDataService, etc), Data Objects

Mock RemoteРеализация Data Interface и чтение

данных из локальных ресурсов

Реализация Data Interface и

чтение данных с внешнего сервера с

помощью Refit

Refit Interfac

eКешер

Локальные JSON REST Service

Page 20: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

DAL DataServicespublic static void Init(bool isMock = false) {

if (isMock) DependencyService.Register<ISessionDataService,

Mock.SessionDataService>();else

DependencyService.Register<ISessionDataService, Remote.SessionDataService>();}public static ISessionDataService Session => DependencyService.Get<ISessionDataService>();

Page 21: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Практика

#msdevcon

Приложениe v0.2Подключаем сервер и моки

Page 22: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

#msdevcon

Архитектура XF-приложения

Page 23: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

СлоиApp, App Services, Pages, Controls, Views, Converters, Layouts

ViewModels, Models

Data Services, Data ObjectsDAL

BL

UI

Settings,

Helpers

Platform Service

Interfaces

Platform ServicesNative RenderersiOS/Android/Windows application, styles, resources

Page 24: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

MVVM Business Logic (BL)ViewModel – управление состоянием View, контекст для биндинга (свойства и команды), логика переходов между экранами.

Model – получение доп. информации из базового объекта, часто объединяется с ViewModel

Page 25: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Структура PCL-проектаDAL\

Data Objects\Data Services\

BL\ViewModels\Models\

UI\Pages\Controls\Converters\

PlatformServices\App.csSettings.csConsts.cs

Page 26: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Практика

#msdevcon

Приложениe v0.3Приводим структуру проекта в порядок, подбиваем хвосты

Page 27: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

Правильный Xamarin для мобильных приложений 1. Знакомство с XF2. Осваиваем REST3. Архитектура XF-приложения

Черников Вячеслав[email protected]

Page 28: Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016)

© 2016 Microsoft Corporation. All rights reserved.