Пишем кроссплатформенный код на C# + Xamarin

Автор Maksim Inshakov
Пишем кроссплатформенный код на C# + Xamarin

Привет друзья.

Сегодня я покажу вам как просто и эффективно можно писать кроссплатформенные кот с учётом нативных возможности конкретных платформ на экзамен. ГАИ маслят кем хотите получить комплексное обучение за год стать разработчиком поступайте онлайн-университет от mail ru Group с гарантированным трудоустройством обучение веб-разработке мобильной разработки под Android iOS созданию игр, а также множество других курс подробности по ссылке под видео сейчас я создам просто земли информпроект шерсть логикой также я. Прошу обратить внимание на описание там я оставлю таймкоды на основные части видео и.

Давайте посмотрим как устроена базовая после решения состоит она у нас из трех проектов 1 кроссплатформенный проект который содержит логику июль для всех платформ остальные два проекта для конкретных платформ при запуске инициализируется и запускается Camry информации с первого проекта в них доступны все нативные.

И при разработке на экземарин используется поэтом проектирования mvvm которые как и все пацаны разбивают весь проект на три части модели отображения связующее звено в нашем случае — это объём отдал для организации всего этого дела. Я создам три папки viewmodels immortals них будут находиться в соответствующие типы пустом проекте у нас уже есть одно View под названием монтаж поэтому перенесём его из корня проектов папку и откроем его здесь мы видим Them All code для верстки интерфейса из готового набора элементов в заголовке схемы для xml parser, а а также пространство имен по которому доступна на шею его нужно поменять на новое так как мы перенесли его в папку хочу отметить, что по параметру Local мы подключаем пространство для взаимодействия с другими у из этого пространства. А в параметре класс находится полное имя класса. Она из. Лего курсы стоит полностью в таком виде включая namespace каждому файлу также прилагаются файл с расширением Sys — это так называемый код бихайнд в нём мы можем инициализировать viewmodel, а также на немножко кода по взаимодействию. А вообще всё разметку которую мы пишем на зиму можно спокойно писать на си Sharp так как не всегда удобно использовать язык разметки наличиикод бренданом решение этой задачи упрощает и здесь. Нам тоже нужно поправить namespace. О'кей теперь. Обрати внимание на файл об него тоже есть и кот бихайнд файлы данные класс является точкой входа в экзамен приложение можно отследить основные состояния устройства на вокзал файле инициализировать стиле словари и ресурсы доступны для всего приложения также здесь указывается то убью которая будет показано при запуске вернёмся к Main page здесь мы видим, что у нас изображён один элемент лейбл с некоторым текстом и он выровнен по краном все его свойства заданы при помощи атрибутов. Теперь попробуем запустить проект на эмуляторе для того чтобы — это сделать нам нужно выбрать конкретный проект и пометить его как для запуска Visual Studio. Ну, а потом опять и спокойно идти гулять пока эмулятор стартует вот собственно всё то о чём я говорю просто явилось одним лейблом, но а сейчас мы — это исправим и сделаем простенького mvvm паттерн во-первых Drom всё лишнее для того чтобы расположить элементы в разных частях и задавать вам какой-либо соотношение я буду использовать гриль много всяких сеток и каждый из них подходит под разными задачки на сегодня нам хватит ли самые обычные сетки при помощи элемента Row Definition мы определим количество строк в сетке в данном случае у нас будет две строки а. Супер ещё интересует поломался при помощи пара мы можем задавать высоту строки. Как в пикселях. Так и относительно других элементов в зависимости от размера экрана, но второй способ как бы предпочтительнее для создания адаптивного. А делается это. Всё путём добавление звёздочки в этом случае 2 строка будет в 5 раз больше чем первое соотношение опять же высчитываются автоматически далее добавим лейбл котором мы будем отображать текст я не указываю. В какой стране находится элемент по умолчанию они всегда будут закидывать в первую строку далее мы встречаем первые приколы в mp3 для связи данных между View и видимо мы используем привязки пока просто. Этот кот и разберёмся с ним позже потом добавим кнопку и здесь уже явно укажем, что она будет находиться во второй строке номера если, что тоже с нуля добавим кнопочки простой текст и тут же встречаем второе приколом Vim Python IDE опять же служат для оповещения в. Юматово совершение какого-то мокшино. О'кей теперь наконец-то создадим для этого View новую моду назовём её Main page View Model, но здесь пока ничего не трогаем потому, что для начала нужно создать модом этого есть свой резон все viewmodel должны реализовывать интерфейс notify Property Changed которая содержит событие Property change. Дело в том, что на шею подписывается на него и ждёт оповещение о том какие именно свойства изменили и какие нужны перерисовать для наших, что мы создадим метод notify Property Changed который будет принимать строку хранящуюся название свойства для передачи в события ну и соответственно будет передавать его путем вызова Property Change вернемся к нашей основной в модели и наследуемые от базовой собственно. Всё мы — это сделали для того чтобы каждый раз не реализовывать интерфейс и не переписывать нотифай против течения. А уже готова плюс ко всему вас может появиться новая логика которая может быть необходимого всех в моделях в этом случае просто добавляем в базовый класс новые методы или свойства так теперь нам необходимо создать два свойства первый будет служит для хранения команды все команды должны реализовать интерфейс и команд находится он вы namespace System Windows Input второе свойство будет служить для количества кликов в лейбл тип будет строковый.

0 комментариев
0

Читайте также