Мобільна платформа xamarin

Мобільна платформа xamarin
Мобільна платформа Xamarin складається з ряду елементів, які дозволяють розробляти програми для Android і iOS:

  • ЯзикC # - Дозволяє використовувати знайомий синтаксис і складні функції, такі як Generics, Linq і Parallel Task Library.
  • ФреймворкMono.NET - Забезпечує кроссплатформенную реалізацію широких можливостей Microsoft .NET
  • Компілятор - Залежно від платформи, виробляє нативное додаток (наприклад, iOS.) Або інтегроване додаток .NET часу виконання (наприклад, Android.). Компілятор також виконує безліч оптимізацій для мобільного розгортання, таких як видалення невикористаного коду.
  • Інструменти середовища розробки - Xamarin Studio і плагін Xamarin для Visual Studio дозволяють створювати, будувати і розгортати проекти Xamarin.

Крім того, оскільки C # основна мова платформи .NET, проекти можуть бути структуровані, щоб спільно використовувати код, який також може бути розгорнуто на Windows Phone.

Хоча Xamarin і дозволяє писати в C # один і той же код для різних мобільних платформ, фактична реалізація в кожній системі дуже відрізняється.

компіляція

Исходник C # робить свій шлях в нативное додаток абсолютно по-різному на кожній платформі:

  • iOS - C # ahead-of-time (АОТ) компілюється в мову ARM.ассемблера. В .NET framework включено видалення невикористовуваних класів під час компонування для зменшення розміру програми. Apple не дозволяє генерацію коду під час виконання на iOS, тому деякі мовні особливості не доступні (див. Обмеження Xamarin.iOS).
  • Android - C # компілюється в IL і упакований з MonoVM + JIT'ing. Невикористані класи видаляються при лінковке. Додаток працює спільно з Java / ART (Android runtime) і взаємодіє з нативними типами через JNI (див. Обмеження Xamarin.Android).
  • WindowsPhone - C # компілюється в IL і виповнюється вбудованої середовищем і не вимагає інструментів Xamarin. Проектування додатка Windows Phone, слідуючи посібникам Xamarin дозволяє простіше використовувати код повторно на iOS і Android.

Документація компоновщика для Xamarin.iOS і Xamarin.Android надає додаткові відомості про цю частину процесу попередньої компіляції.

Доступність SDK платформ

Xamarin виконує функції, що надаються конкретною платформою SDK легкодоступними, зі знайомим C # синтаксисом:

Прозора інтеграція для розробників

Краса мобільної платформи Xamarin проявляється в тому, що незважаючи на відмінності движків Xamarin.iOS і Xamarin.Android (в поєднанні з Microsoft Windows Phone SDK) пропонується прозору взаємодію для написання коду C #, який може бути повторно використаний для всіх трьох мобільних платформ.

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

Можливості інтегрованого середовища розробки (IDE)

Розробляти в Xamarin можна в Xamarin Studio або Visual Studio. Вибір IDE буде визначатися цільовими платформами.

Вимоги до розробки для кожної платформи, розглядаються нижче більш докладно.

Розробка додатків для iOS вимагає Mac комп'ютер, що працює під управлінням Mac OS X. Також можна використовувати Visual Studio для створення і розгортання додатків iOS з Xamarin в iOS плагін Visual Studio. Однак Mac як і раніше необхідний для побудови і ліцензування.

У Xcode повинен бути встановлений компілятор і симулятор для тестування. Для тестування на реальному пристрої та подання додатків для поширення, ви повинні приєднатися до компанії Apple Developer Program ($ 99 доларів США в рік). Кожен раз, коли ви передаєте або оновлюєте додаток, воно повинно бути розглянуто і затверджено Apple, перш ніж воно стає доступним для завантаження користувачами.

Код написаний в Xamarin Studio або Visual Studio і екрани можуть бути побудовані програмно або відредаговані iOS-конструкторі Xamarin в будь-який IDE.

Зверніться до посібника з установки Xamarin.iOS за докладними інструкціями по встановленню та налагодженню.

Розробка Android-додатки вимагає встановлених Java і Android SDK. Вони забезпечують компілятор, емулятор і інші інструменти, необхідні для створення, розгортання та тестування. Java, Android SDK від Google і інструменти Xamarin все це може бути встановлено і буде працювати на наступних конфігураціях:

Xamarin забезпечує єдиний інсталятор, який налаштує систему за допомогою інструментів Java, Android і Xamarin (в тому числі візуальний конструктор для макетів екрану). Зверніться до посібника з установкеXamarin.Android за докладними інструкціями.

Windows Phone

Створення призначеного для користувача інтерфейсу (UI)

Ключовою перевагою використання Xamarin є те, що призначений для користувача інтерфейс програми використовує власні елементи управління на кожній мобільній платформі, створюючи додатки, які не відрізняються від програми, написаної на Objective-C або Java (для iOS і Android відповідно).

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

Створення елементів управління програмними засобами

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

Програмне створення елементів управління має переваги, особливо на iOS для створення уявлення, зміни розмірів або що б зробити різні розміри екрану для iPhone і iPad.

Візуальний конструктор

Кожна платформа має різні методи для візуалізації шарів екранів:

  • iOS - iOS дизайнер Xamarin Studio і Visual Studio спрощує створення уявлень за допомогою drag-and-drop функціональність і властивості полів. Разом ці уявлення становлять розкадровки та можуть бути доступні в файлі .STORYBOARD, який включається в проект.
  • Android - Xamarin забезпечує Android drag-and-drop дизайнер користувальницького інтерфейсу для обох Xamarin Studio and Visual Studio. При використанні інструментів Xamarin, Android макети екрану зберігаються у вигляді файлів .AXML.
  • WindowsPhone - Microsoft надає drag-and-drop дизайнер користувальницького інтерфейсу в Visual Studio і Blend. Макети екрану зберігаються у вигляді файлів. XAML.

Ці скріншоти показують візуальні конструктори екрану наявні на кожній платформі:

Мобільна платформа xamarin

У всіх випадках, на елементи, які створюються візуально, можна посилатися в коді.

Рекомендації по призначеному для користувача інтерфейсу

Основною перевагою використання Xamarin для створення кроссплатформенних додатків є те, що вони можуть скористатися можливостями власних наборів інструментальних засобів призначеного для користувача інтерфейсу, щоб представити користувачеві знайомий інтерфейс. Інтерфейс також буде виконувати так само швидко, як і будь-яке інше рідне додаток.

Деякі метафори інтерфейсу працюють на різних платформах (наприклад, всі три платформи використовують подібний елемент скролінг-лист), але для того, щоб UI вашого застосування правильно «відчувалося», слід, коли це необхідно, використовувати платформоспеціфічние елементи призначеного для користувача інтерфейсу. Наприклад, метафори платформоспеціфічних елементів UI включають в себе:

  • iOS - Ієрархічна навігація з програмної кнопки повернення, вкладки в нижній частині екрана
  • Android -аппаратноє / системно-програмна кнопка повернення, меню дій, вкладки у верхній частині екрану.
  • WindowsPhone - Апаратна кнопка повернення, «панорама», «живі плитки».

Рекомендується прочитати керівництва по принципам дизайну, стосовно цільових платформ:

Бібліотеки та повторне використання коду

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

Ресурси і бібліотеки C #

Оскільки продукти Xamarin використовують C # і .NET, існує дуже багато ресурсів (як з відкритим вихідним кодом і внутрішніх проектів), які можуть бути повторно використані в Xamarin.iOS або Xamarin.Android проектах. Часто джерело може бути просто доданий в рішення Xamarin і він буде відразу ж працювати. Якщо використовується не підтримувана функція .NET, можуть знадобитися деякі хитрощі.

Приклади вихідного коду C #, який може використовуватися в Xamarin.iOS або Xamarin.Android: SQLite-NET, NewtonSoft.JSON і SharpZipLib.

Objective-C Bindings + Binding Projects

Xamarin надає інструмент під назвою btouch, який допомагає створювати прив'язки на бібліотеки Objective-C, які будуть використовуватися в проектах Xamarin.iOS. Зверніться до документації Binding Objective-C Types для докладної інформації про те, як це робиться.
Приклади бібліотек Objective-C, які можуть бути використані в Xamarin.iOS: RedLaser сканування штрих-кодів, Google Analytics і інтеграції PayPal. Прив'язки з відкритим вихідним кодом Xamarin.iOS доступні на github.

.jar Bindings + Binding Projects

Xamarin підтримує використання існуючих бібліотек Java в Xamarin.Android. Зверніться до документації Binding a Java Library для деталей про те, як використовувати файл .JAR з Xamarin.Android.

Прив'язки з відкритим вихідним кодом Xamarin.Android доступні на github.

C за допомогою PInvoke

Технологія «Платформа Invoke» (PInvoke) дозволяє керованого коду (C #) викликати методи нативних бібліотек, а також підтримує зворотний виклику в керований код.