- PVSM.RU - https://www.pvsm.ru -
Представляем вам пятничную подборку полезных гайдов и шпаргалок от Джеймса Монтемагно для разработчиков разного уровня.
Далее повестовование будет вестись от имени автора.
Меня очень вдохновил недавний пост [1] Скотта Хансельмана в его блоге о том, что разработчики .NET должны знать на начало 2017 года. И я решил пойти немного дальше этого и написать небольшой путеводитель для разработчиков Xamarin, создающих приложения iOS, Android и macOS в .NET. Так что я связался с Крисом Харди [2], и мы совместно подготовили обширный список понятий и полезных ресурсов, имеющих отношение к Xamarin. Прежде чем мы начнем, вам непременно стоит посетить замечательный блог Скотта, поскольку он просто переполнен отличной информацией. Кроме того, чтобы сделать этот пост максимально полезным, я разделил его на специальные секции: «непременно нужно знать», «следует знать» и «неплохо бы знать», к тому же я подготовил специальные разделы для iOS и Android.
Когда вы будете готовы приступить к работе с Xamarin, отправляйтесь на портал [3], который, безусловно, является идеальным местом для начинающих разработчиков. Именно там я начал работу в области мобильной разработки в далеком 2011 году. Итак, приступаем!
Тем, кто желает много читать, скачивать, изучать и смотреть по теме Xamarin, рекомендуем сразу взять на заметку следующие порталы:
Что такое Xamarin? [9] Благодаря платформе Xamarin разработчики могут создавать полностью нативные приложения для iOS, Android и macOS, используя C#, F# или даже VB.NET. При этом в наличие 100% доступ к нативному API и возможность совместного использования логики с другими приложениями .NET.
У нас есть одна супер-оптимизированная среда выполнения .NET [10], которая доставляет .NET на iOS, Android, macOS, IoT, Linux, PS4, Xbox и т. д. Она реализует .NET API и приводит в действие .NET Standard, поэтому вам не придется беспокоиться о реализации «под капотом».
Традиционная Xamarin разработка [11] известная также как нативная Xamarin разработка, она дает разработчикам возможность совместного использования бизнес-логики приложений и создания нативных пользовательских интерфейсов для каждой платформы со 100% доступа к каждому API.
Xamarin.Forms разработка [12] предлагает разработчикам кросс-платформенный пользовательский интерфейс абстракции для iOS, Android и Windows. Пользовательские интерфейсы могут быть созданы в коде XAML или ином виде, и к тому же нативные элементы управления установлены в среде выполнения для каждой платформы. Кроме того, предлагаются такие функции MVVM (Model-View-ViewModel), как привязка данных и управление ими. Получить доступ к нативным API-интерфейсам можно через платформу проектов и сервисы зависимостей.
Существует несколько способов использования общего кода в разных приложениях:
Существует множество API, доступных в .NET и на каждой платформе, но иногда хочется больше! И здесь их можно получить:
Давайте познакомимся с некоторыми по-настоящему классными библиотеками, созданными или поддерживаемыми Xamarin:
Расширения [23] — это виджеты, которые предоставляются iOS в стандартных обстоятельствах, как, например, в «Центре уведомлений», когда пользователь запрашивает клавиатуру или редактирует фотографии. Все расширения устанавливаются в сочетании с приложением Container и активируются с определенной «точки расширения» в приложении Host.
watchOS [24] — это определенная версия iOS, которая предназначена для устройств Apple Watch.
tvOS — Apple выпустила 4-е поколение аппаратных средств Apple TV, отличающихся переработанным пультом с поддержкой сенсорного управления и новой операционной системой (основанной на iOS9).
Регистрационные профили [25] — когда нужно установить приложение на устройство или выпустить его в App Store, требуется получить учетную запись разработчика и создать регистрационный профиль. Они должны связать вместе устройства, учетные записи и компьютеры разработчика.
Android Wear [26] — это версия Android, которая предназначена для таких носимых устройств, как умные часы.
Keystore [27] — используется для подписи приложений Android, с тем чтобы размещать их в соответствующих магазинах.
Разбор APIs & SDKs [28] — компиляции, минимизация, планирование — всё, что является важным и заслуживает изучения. Ознакомьтесь с коротким видео по теме.
Linker используется для уменьшения размера приложений для iOS [29] и Android [30], осуществляет статический анализ приложения, с тем чтобы определить, какие в нем используются узлы, типы и члены классов. Благодаря этому любая неиспользуемая вещь будет отброшена.
IL — некий промежуточный язык, который создается при компиляции. Как написал Скотт: C# — это яблоки, из которых IL делает яблочный соус, а JIT/АОТ и среда выполнения — яблочный сок.
AOT [31] — расшифровывается как Ahead of Time Compilation («компиляция на опережение») и принимает IL и компилирует его в машинный код с целью выполнения полученного двоичного файла в нативном виде. Это то, что использует Xamarin.iOS.
JIT — Расшифровывается как Just in Time Compilation («мгновенная компиляция») и принимает IL и компилирует его, подготавливая для запуска в качестве машинного кода. Это то, что использует Xamarin.Android.
Storyboard [32] позволяет разработчику определять оба контроллера предоставлений и перемещаться между ними на поверхности дизайна, а также предлагает WYSIWYG редактирование пользовательского интерфейса приложения.
XIB [33] — шаблон iOS View XIB, в который можно добавлять автономный файл .xib, который может быть присоединен к определенному обратному классу.
Регистраторы [34] — код, который выставляет управляемый код на Objective-C. Он достигает этого путем создания списка каждого управляемого класса, унаследованного от NSObject.
Dalvik & ART [35]. ART — это среда выполнения Android, которая используется приложениями и некоторыми системными службами на Android. ART и ее предшественник Dalvik изначально были созданы специально для проекта Android.
Multi-Dex [36] — приложение Android (APK) состоит из исполняемых байткодовых файлов в виде Dalvik Executable (DEX), и они содержат скомпилированный код, используемый для запуска приложения. В спецификациях DalvikExecutable ограничено общее количество методов, на которые можно ссылаться в одном файле DEX до 65,536. Multi-Dex создает несколько файлов DEX для APK, и, таким образом, ограничения можно обойти.
ABI (Application Binary Interface) [37] — один APK может содержать машинный код для поддержки нескольких различных архитектур. Каждая коллекция архитектурно-зависимого кода связана с бинарным интерфейсом приложения (ABI).
Android и Managed Callable Wrappers [38] — это то, что позволяет .NET общаться с Java и наоборот.
Android Virtual Devices [39] — это эмуляторы Android, которые используются для отладки приложений.
HAXM (Hardware Accelerated Execution Manager) [40] — программное обеспечение от Intel для Windows и macOS, предназначенное для виртуализации, благодаря которому Вы получаете потрясающие AVDs.
Xamarin.Forms Roadmap [41] — замечательный стратегический план готовящихся функций и исправлений для Xamarin.Forms.
Профайлер [42] Xamarin интегрируется с существующим инструментарием для сбора информации о приложениях Xamarin. Используйте его для поиска утечек памяти, устранения узких мест в производительности, а также для полировки приложения перед тем, как пускать их в свободное плавание.
Model-View-ViewModel (MVVM) [43] — это архитектурный шаблон, который был изобретен с учетом XAML. Шаблон устанавливает разделение пользовательского интерфейса XAML (предоставления) и исходных данных (модели) через класс, который служит посредником между предоставлением и моделью (ViewModel). View и ViewModel часто соединяются через привязки данных, определенных в файле XAML. BindingContext для представления, как правило, является экземпляром ViewModel.
Пользовательский линкер [44] — если набора опций, доступных по умолчанию, оказывается недостаточно, тогда можно управлять процессом связывания с помощью файла XML, в котором будет описываться то, что нужно от линкера.
Александр Алексеев [51] — Xamarin-разработчик, фрилансер. Работает с .NET-платформой с 2012 года. Участвовал в разработке системы автоматизации закупок в компании Digamma. C 2015 года ушел во фриланс и перешел на мобильную разработку с использованием Xamarin. В текущее время работает в компании StecPoint над iOS приложением.
Ведет ресурс XamDev.ru [51] и сообщества «Xamarin Developers» в социальных сетях: VK [52], Facebook [53], Telegram [54].
Автор: Microsoft
Источник [55]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/239887
Ссылки в тексте:
[1] пост: https://aka.ms/habr_321092_1
[2] Крисом Харди: https://aka.ms/habr_321092_2
[3] портал: https://aka.ms/habr_321092_3
[4] качайте: https://aka.ms/habr_321092_5
[5] Бесплатное самостоятельное обучение: https://aka.ms/habr_321092_6
[6] Xamarin Workbooks: https://aka.ms/habr_321092_7
[7] xamarinshow.com: http://xamarinshow.com
[8] Здесь: https://aka.ms/habr_321092_8
[9] Что такое Xamarin?: https://aka.ms/habr_321092_9
[10] У нас есть одна супер-оптимизированная среда выполнения .NET: https://aka.ms/habr_321092_10
[11] Традиционная Xamarin разработка: https://aka.ms/habr_321092_11
[12] Xamarin.Forms разработка: https://aka.ms/habr_321092_12
[13] PCL (Portable Class Library): https://aka.ms/habr_321092_13
[14] Общий проект: https://aka.ms/habr_321092_14
[15] .NETStandard или «netstandard»: https://aka.ms/habr_321092_15
[16] NuGet: https://aka.ms/habr_321092_16
[17] Component: https://aka.ms/habr_321092_17
[18] Plugin: https://aka.ms/habr_321092_18
[19] MonoGame : https://aka.ms/habr_321092_19
[20] UrhoSharp: https://aka.ms/habr_321092_20
[21] SkiaSharp: https://aka.ms/habr_321092_21
[22] CocosSharp: https://aka.ms/habr_321092_22
[23] Расширения: https://aka.ms/habr_321092_23
[24] watchOS: https://aka.ms/habr_321092_24
[25] Регистрационные профили: https://aka.ms/habr_321092_25
[26] Android Wear: https://aka.ms/habr_321092_26
[27] Keystore: https://aka.ms/habr_321092_27
[28] Разбор APIs & SDKs: https://aka.ms/habr_321092_28
[29] iOS: https://aka.ms/habr_321092_29
[30] Android: https://aka.ms/habr_321092_30
[31] AOT: https://aka.ms/habr_321092_31
[32] Storyboard: https://aka.ms/habr_321092_32
[33] XIB: https://aka.ms/habr_321092_33
[34] Регистраторы: https://aka.ms/habr_321092_34
[35] Dalvik & ART: https://aka.ms/habr_321092_35
[36] Multi-Dex: https://aka.ms/habr_321092_36
[37] ABI (Application Binary Interface): https://aka.ms/habr_37
[38] Android и Managed Callable Wrappers: https://aka.ms/habr_321092_37
[39] Android Virtual Devices: https://aka.ms/habr_321092_38
[40] HAXM (Hardware Accelerated Execution Manager): https://aka.ms/habr_321092_39
[41] Xamarin.Forms Roadmap: https://aka.ms/habr_321092_40
[42] Профайлер: https://aka.ms/habr_321092_41
[43] Model-View-ViewModel (MVVM): https://aka.ms/habr_321092_42
[44] Пользовательский линкер: https://aka.ms/habr_321092_43
[45] Releases Blog: https://aka.ms/habr_321092_44
[46] Xamarin в Twitter: https://aka.ms/habr_321092_45
[47] События Xamarin: https://aka.ms/habr_321092_46
[48] Xamarin Podcast: https://aka.ms/habr_321092_47
[49] Merge Conflict: https://aka.ms/habr_321092_48
[50] Weekly Xamarin: https://aka.ms/habr_321092_49
[51] Александр Алексеев: https://aka.ms/habr_321092_50/
[52] VK: https://aka.ms/vk_xamarin_developers
[53] Facebook: https://aka.ms/fb_xamdev
[54] Telegram: https://aka.ms/telegram_xamarin_russia
[55] Источник: https://habrahabr.ru/post/321092/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.