Правильный xamarin для мобильных приложений (microsoft devcon school...
TRANSCRIPT
Отзывы��Помогите нам стать лучше!На вашу почту отправлена индивидуальная ссылка на электронную анкету. 2 ноября в 23:30 незаполненная анкета превратится в тыкву.
Заполните анкету и подходите к стойке регистрации за приятным сюрпризом!
#msdevconОставляйте отзывы в социальных сетях. Мы все читаем. Спасибо вам!
Программа интенсива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 Круглые столы с экспертами
Правильный Xamarin для мобильных приложений Черников ВячеславBinwell
Цели
#msdevcon
Что такое Xamarin.For
msРаботаем с
REST
Архитектура
приложенияПодключаемся к
внешнему REST-сервису, знакомимся с Mock-
данными
Отделяем бизнес-логику от UI, упрощаем
описание ViewModel, знакомимся с архитектурой
Знакомимся с Xamarin и cоздаем первое приложение на Xamarin.Forms
#msdevcon
Что такое Xamarin.Forms
Классический Xamarin
Полное покрытие iOS/Android API, нативные приложения
C# для разработки, возможность шарить код
Xamarin.Forms
Унификация и абстрагирование UI
Xaml, MVVM
PCL-библиотека
Xamarin.Forms
Приложения для работы с данными
Прототипы
Бизнес-приложения
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>
Основные элементыLabel – отображение текста Image – отображение изображенийButton – кнопкаListView – список элементовStackLayout – компоновка элементовContentPage – простая страницаMasterDetailPage – страница с боковым меню
Практика
#msdevcon
Приложениe v0.1Хардкодим и осваиваем UI
Практика
#msdevcon
https://aka.ms/xamintensive
Полезные ресурсы
#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)]
#msdevcon
Работаем с REST API
Json.Net и DTO
public class Session {
[JsonProperty("title")]public string Title;
}
Refitpublic interface IRemoteApi{ [Get("/sessions")] Task<List<Session>> GetSessions();}
var service = RestService.For<IRemoteApi>("https://demo3143189.mockable.io");var sessions = await service.GetSessions();
Mock
Ускоряет верстку
Дает возможность проверить различные сценарии и наборы данных
Сохраняем готовые JSON в качестве ресурсов
DAL
Data Interfaces (ISessionDataService, etc), Data Objects
Mock RemoteРеализация Data Interface и чтение
данных из локальных ресурсов
Реализация Data Interface и
чтение данных с внешнего сервера с
помощью Refit
Refit Interfac
eКешер
Локальные JSON REST Service
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>();
Практика
#msdevcon
Приложениe v0.2Подключаем сервер и моки
#msdevcon
Архитектура XF-приложения
Слои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
MVVM Business Logic (BL)ViewModel – управление состоянием View, контекст для биндинга (свойства и команды), логика переходов между экранами.
Model – получение доп. информации из базового объекта, часто объединяется с ViewModel
Структура PCL-проектаDAL\
Data Objects\Data Services\
BL\ViewModels\Models\
UI\Pages\Controls\Converters\
PlatformServices\App.csSettings.csConsts.cs
Практика
#msdevcon
Приложениe v0.3Приводим структуру проекта в порядок, подбиваем хвосты
Правильный Xamarin для мобильных приложений 1. Знакомство с XF2. Осваиваем REST3. Архитектура XF-приложения
Черников Вячеслав[email protected]
© 2016 Microsoft Corporation. All rights reserved.