Що розробники Xamarin повинні знати на початок 2017 року

Представляємо вам п'ятничну добірку корисних гайдів і шпаргалок від Джеймса Монтемагно для розробників різного рівня.



Далі повестовование буде вестися від імені автора.

Мене дуже надихнув недавній посада Скотта Хансельмана в його блозі про те, що розробники .NET повинні знати на початок 2017 року. І я вирішив піти трохи далі і написати невеликий путівник для розробників Xamarin, створюють додатки iOS, Android і macOS .NET. Так що я зв'язався з Крісом Харді, і ми спільно підготували великий список понять і корисних ресурсів, які мають відношення до Xamarin. Перш ніж ми почнемо, вам неодмінно варто відвідати чудовий блог Скотта, оскільки він просто переповнений відмінною інформацією. Крім того, щоб зробити цей пост максимально корисним, я розділив його на спеціальні секції: «неодмінно потрібно знати», «повинні знати» і «непогано б знати», до того ж я підготував спеціальні розділи для iOS і Android.

Коли ви будете готові приступити до роботи з Xamarin, вирушайте на портал, який, безумовно, є ідеальним місцем для початківців розробників. Саме там я почав роботу в області мобільної розробки в далекому 2011 році. Отже, приступаємо!

З чого почати?
Тим, хто бажає багато читати, завантажувати, вивчати і дивитися по темі Xamarin, рекомендуємо відразу взяти на замітку наступні портали:
  • Читайте і качайте матеріали, пов'язані з Xamarin!
  • Безкоштовне самостійне навчання в університеті Xamarin.
  • Xamarin Workbooks дозволяє розробникам протестувати API-інтерфейси в інтерактивному режимі.
  • xamarinshow.com: Щотижневе шоу на CH9, присвячене розробці і організований мною.
  • Тут представлені проекти Xamarin на основі відкритого вихідного коду.
Необхідно знати: Xamarin
Що таке Xamarin? Завдяки платформі Xamarin розробники можуть створювати повністю рідні додатки для iOS, Android і macOS, використовуючи C#, F# або навіть VB.NET. При цьому наявність 100% доступ до нативному API і можливість спільного використання логіки з іншими додатками .NET.

У нас є одна супер-оптимізоване середовище виконання .NET, яка доставляє .NET на iOS, Android, macOS, IoT, Linux, PS4, Xbox і т. д. Вона реалізує .NET API і приводить в дію .NET Standard, тому вам не доведеться турбуватися про реалізацію «під капотом».

Традиційна Xamarin розробка відома також як нативна Xamarin розробка, вона дає розробникам можливість спільного використання бізнес-логіки додатків і створення нативних користувальницьких інтерфейсів для кожної платформи зі 100% доступу до кожного API.

Xamarin.Forms розробка пропонує розробникам крос-платформний користувальницький інтерфейс абстракції для iOS, Android і Windows. Інтерфейси можуть бути створені в коді XAML чи іншому вигляді, і до того ж нативні елементи керування встановлені в середовищі виконання для кожної платформи. Крім того, пропонуються такі функції MVVM (Model-View-ViewModel), як прив'язка даних і управління ними. Отримати доступ до нативним API-інтерфейсів можна через платформу проектів і сервіси залежностей.

Крос-платформенне спільне використання коду



Існує кілька способів використання загального коду в різних додатках:
  • PCL (Portable Class Library). Ця бібліотека, також відома як Pickle, дає розробникам можливість для створення «бібліотеки класів», розрахованої на декілька платформ. Ця бібліотека фактично діє в якості опорного вузла, надає перехресний API, який доступний на кожній платформі. Чим більше платформ ви оберете, тим менша площину API буде доступна.
  • Спільний проект. Найпростіший спосіб спільного використання коду на різних платформах. Він функціонує як «зв'язує файл», розділяючи код з цільовою платформою. Переваги полягають у тому, що тут доступні всі цільові API-інтерфейси, так що ви можете виробляти умовну компіляцію. Однак, такий підхід може обернутися заплутаним кодом, і, крім того, в цьому випадку не створюється складання: файли зв'язуються між собою в проект платформи.
  • .NETStandard або «netstandard». Бібліотека netstandard — це наступний етап еволюції, і вона цілком може прийти на зміну PCL. Розробники отримують по-справжньому крос-платформену бібліотеку, і вона може бути запущена в будь-якому середовищі виконання, яка реалізує такі API-інтерфейси, як Mono, .NET Framework і .NET Core.

Джерела бібліотек

Існує безліч API, доступних в .NET і на кожній платформі, але іноді хочеться більше! І тут їх можна отримати:
  • NuGet — це менеджер пакетів для платформи Microsoft, що включає .NET. Клієнтські інструменти NuGet забезпечують можливість створення і використання пакетів. Галерея NuGet є центральним сховищем пакетів, і використовується всіма авторами і користувачами.
  • Component — «магазин компонентів» є спеціально підібраною галереєю бібліотек і менеджером платформ Xamarin. Він пропонує платні і безкоштовні бібліотеки, які можуть бути встановлені безпосередньо в додатки iOS і Android. Ці бібліотеки створюються як розробниками компонентів Xamarin, так і сторонніми розробниками.
  • Plugin — по правді сказати, плагіни для Xamarin і Windows просто чудові. Вони дозволяють вам отримувати доступ до нативним функцій крос-платформного API прямо із загального коду! У них відкритий вихідний код, і тут доступно чимало класних речей, в тому числі для геолокаціі, можливості підключень і фотографій. Кожен плагін доступний за ліцензією MIT і може бути встановлений в будь-яку бібліотеку iOS, Android, Windows, PCL або .NETStandard Library через NuGet.

Бібліотеки

Давайте познайомимося з деякими по-справжньому класними бібліотеками, створеними або підтримуваними Xamarin:
  • MonoGame є ефективним, гнучким та крос-платформних API для розробки ігор в 2D і 3D. Він забезпечує основу для багатьох крос-платформних ігрових движків. Проте, він може також використовуватися і безпосередньо в іграх, не будучи загорнутим в ігровий движок.
  • UrhoSharp є крос-платформних движком високого рівня (3D і 2D), який може бути використаний для створення анімованих 3D і 2D ігор і сцен в додатках, що використовують геометричні форми, матеріали, світло і камери. UrhoSharp сумісний з мобільними і десктопними додатками, а також з HoloLens і VR.
  • SkiaSharp пропонує багатий і потужний графічний API, який можна використовувати для візуалізації в 2D буферах. Ви можете використовувати їх для реалізації елементів користувальницького інтерфейсу і 2D-графіки, які можуть бути включені в додаток. SkiaSharp є прив'язкою .NET бібліотеки Skia і наслідує функції і силу цієї бібліотеки.
  • CocosSharp є простий бібліотекою для 2D-ігор, використовує C# F#. Це .NET порт популярного движка Cocos2D.
Необхідно знати: iOS
Розширення — це віджети, які надаються iOS в стандартних обставин, як, наприклад, в «Центрі повідомлень», коли користувач надсилає запит на клавіатуру або редагує фотографії. Все розширення встановлюються у поєднанні з додатком Container і активуються з певної точки розширення» у додатку Host.

watchOS — це певна версія iOS, яка призначена для пристроїв Apple Watch.
tvOS — Apple випустила 4-е покоління апаратних засобів Apple TV, відрізняються переробленим пультом з підтримкою сенсорного управління і новою операційною системою (заснованої на iOS9).

Реєстраційні профілі — коли потрібно встановити додаток на пристрій або випустити його в App Store, потрібно отримати обліковий запис розробника і створити реєстраційний профіль. Вони повинні зв'язати разом пристрою, облікові записи і комп'ютери розробника.

Необхідно знати: Android
Чоловічий Wear — це версія Android, яка призначена для таких переносних пристроїв, як розумні годинник.

Keystore — використовується для підпису додатків Android, з тим щоб розміщувати їх в відповідних магазинах.

Розбір APIs & SDKs — компіляції, мінімізація, планування — все, що є важливою й заслуговує на вивчення. Ознайомтеся з коротким відео по темі.

Необхідно знати: Xamarin
Linker використовується для зменшення розміру додатків для iOS і Чоловічий, здійснює статичний аналіз програми, з тим щоб визначити, які в ньому використовуються вузли, типи і члени класів. Завдяки цьому будь-яка невживана річ буде відкинута.

IL — якийсь проміжний мову, який створюється при компіляції. Як написав Скотт: C# — це яблука, з яких IL робить яблучний соус, а JIT/АОТ і середовище виконання — яблучний сік.

AOT — розшифровується як Ahead of Time Compilation («компіляція на випередження») та приймає IL і компілює його в машинний код з метою виконання отриманого двійкового файлу в нативному вигляді. Це те, що використовує Xamarin.iOS.

JIT — Розшифровується як Just in Time Compilation («миттєва компіляція») та приймає IL і компілює його, готуючи для запуску в якості машинного коду. Це те, що використовує Xamarin.Android.

Слід знати: iOS
Storyboard дозволяє розробнику визначати обидва контролери надання та переміщатися між ними на поверхні дизайну, а також пропонує WYSIWYG редагування інтерфейсу програми.

XIB — шаблон iOS View XIB, в який можна додавати автономний файл .xib, який може бути приєднано до певного зворотного класу.

Реєстратори — код, який виставляє керований код на Objective-C. Він досягає цього шляхом створення списку кожного керованого класу, успадкованого від NSObject.

Слід знати: Android
Dalvik & ART. ART — це середовище виконання Android, яка використовується додатками і деякими системними службами на Android. ART і її попередник Dalvik спочатку були створені спеціально для проекту Android.

Multi-Dex — додаток Android (APK) складається з виконуваних байткодовых файлів у вигляді Dalvik Executable (DEX), і вони містять скомпільований код, що використовується для запуску програми. У специфікаціях DalvikExecutable обмежена загальна кількість методів, на які можна посилатися в одному файлі DEX до 65,536. Multi-Dex створює кілька файлів DEX для АПК, і, таким чином, обмеження можна обійти.

ABI (Application Binary Interface) — один APK може містити машинний код для підтримки декількох різних архітектур. Кожна колекція архітектурно-залежного коду пов'язана з бінарним інтерфейсом програми (ABI).

Чоловічий і Managed Callable Wrappers — це те, що дозволяє .NET спілкуватися з Java і навпаки.

Чоловічий Virtual Devices — це емулятор Android, які використовуються для налагодження додатків.

HAXM (Hardware Accelerated Execution Manager) — програмне забезпечення від Intel для Windows і macOS, призначений для віртуалізації, завдяки якому Ви отримуєте приголомшливі AVDs.

Непогано б знати всім
Xamarin.Forms Roadmap — чудовий стратегічний план готуються функцій і виправлень для Xamarin.Forms.

Профайлер Xamarin інтегрується з існуючим інструментарієм для збору інформації про програми Xamarin. Використовуйте його для пошуку витоків пам'яті, усунення вузьких місць у продуктивності, а також для полірування програми перед тим, як пускати їх у вільне плавання.

Model-View-ViewModel (MVVM) — це архітектурний шаблон, який був винайдений з урахуванням XAML. Шаблон встановлює поділ користувальницького інтерфейсу XAML (надання) та вихідних даних (моделі) через клас, який є посередником між наданням і моделлю (ViewModel). View і ViewModel часто з'єднуються через прив'язки даних, визначених у файлі XAML. BindingContext для подання, як правило, є екземпляром ViewModel.

Користувальницький лінкер — якщо набору опцій, доступних за замовчуванням, виявляється недостатньо, тоді можна управляти процесом зв'язування за допомогою XML-файлу, в якому буде описуватися те, що потрібно від лінкера.

Портали, які варто взяти на замітку
  • Releases Blog — будьте в курсі того, що відбувається.
  • Xamarin в Twitter — твіт і ще раз твіт!
  • Події Xamarin — все що відбувається в світі Xamarin.
  • Xamarin Podcast — в той час, коли ви не слухаєте Merge Conflict, я настійно рекомендую слухати Xamarin Podcast.
  • Weekly Xamarin — спеціально підібрані щотижневі матеріали в розсилці «все про Xamarin»!


Дякуємо за переклад
Олександр Алексєєв — Xamarin-розробник, фрілансер. Працює з .NET-платформою з 2012 року. Брав участь у розробці системи автоматизації закупівель в компанії Digamma. C 2015 року пішов у фріланс і перейшов на мобільний розробку з використанням Xamarin. У поточний час працює в компанії StecPoint над iOS додатком.

Веде ресурс XamDev.ru і спільноти «Xamarin Developers» в соціальних мережах: VK, Facebook, Telegram.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.