Статьи

Разработка для Android с Xamarin

В последние несколько месяцев я занимался не только своими личными проектами, но и своей ежедневной работой с 9 до 5. Я работаю над внутренним приложением, которое поможет улучшить качество обслуживания клиентов моего работодателя Telefónica.

На первом этапе проект имеет простую настройку: сбор данных и их отправка по почте. Задача для меня заключалась в том, чтобы получить приложение для Windows Phone (да, Windows Phone был первым!) Для Android.

Я знал, что потребуется некоторое время, чтобы начать разработку под Android, и искал возможные решения, чтобы ускорить процесс. Я уже знал об Xamarin и смог получить годичную лицензию на Android (возможно, iOS последует позже).

Некоторые из моих коллег WinPhans и WinPhanDevs будут очень громко кричать в данный момент. Я это понимаю. Но, честно говоря, я не мог упустить эту огромную возможность для меня, поскольку она затрагивает как мою ежедневную работу, так и мою личную историю разработчиков. Чтобы успокоить вас: я всегда буду любить Windows Phone и Windows и сначала буду разрабатывать для них. Я всегда буду оставаться WinPhanDev. Но мне нужно идти вперед, и это большой шаг.

Давайте вернемся к теме.

С этим сообщением в блоге я начинаю новую серию блогов для разработки под Android с Xamarin. Огромное преимущество использования Xamarin заключается в том, что я могу использовать свои знания C # для разработки приложений для других платформ, что немного облегчает задачу.

Однако, если вы начнете с другой платформы, вам все равно придется изучить структуру платформы. Не зная или не желая изучать это, вы очень быстро потеряетесь. Каждая ОС имеет свои собственные правила пользовательского интерфейса, обработку сохранения и так далее. Об этом я и буду писать в блоге.

В приложении Windows Phone, которое я перенес на Android, есть элемент Pivot, который я перенес на Android. Он немного отличается от внешнего вида, но работает аналогичным образом, нажимая на заголовок или проводя пальцем, чтобы перемещаться между элементами / страницами.

Чтобы попасть туда, мне нужно было многое узнать об Android — и я поделюсь всем этим с вами.

Моя серия будет охватывать следующие темы:

  • установка Xamarin и начало работы (этот пост)
  • Настройка устройства Android для отладки и развертывания
  • Ресурсы (макеты, строки и т. Д.)
  • Деятельность и виды
  • состояния приложения для Android
  • Фрагменты
  • показать и скрыть клавиатуру на Android
  • Фокус управления
  • использование SQLite для временного и постоянного сохранения данных
  • используя Intents для отправки почты или сохранения записи календаря
  • получение контактов из адресной книги
  • Списки и Адаптеры
  • создать SplashScreen
  • и многое другое… (я обновлю этот список ссылками на соответствующие записи в блоге)

Установка Xamarin

Установить Xamarin довольно просто — но это займет некоторое время. Нажмите на эту ссылку, чтобы загрузить Xamarin IDE. IDE спросит вас, для какой платформы вы хотите разработать (на данный момент давайте выберем только Android), а затем загрузит огромное количество дополнительных SDK, таких как Java и Android SDK (приложения Android основаны на Java, если вы этого не сделали). знал).

Снимок экрана (267)

На скриншоте выше вы можете увидеть стартовую страницу Xamarin Studio. С левой стороны у вас есть список последних решений, в середине вы видите новости Xamarin и, наконец, раздел готовых приложений.

Xamarin Studio имеет много общего с Visual Studio, и вы также можете использовать множество настроек, чтобы настроить внешний вид в соответствии с вашими потребностями. Давайте начнем новый проект, нажав на кнопку «Новый»

Снимок экрана (270)

Xamarin создаст файл .sln со всем необходимым на данный момент. После создания проекта вы увидите следующие строки кода:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace gettingstarted
{
	[Activity (Label = "gettingstarted", MainLauncher = true)]
	public class MainActivity : Activity
	{
		int count = 1;

		protected override void OnCreate (Bundle bundle)
		{
			base.OnCreate (bundle);

			// Set our view from the "main" layout resource
			SetContentView (Resource.Layout.Main);

			// Get our button from the layout resource,
			// and attach an event to it
			Button button = FindViewById<Button> (Resource.Id.myButton);

			button.Click += delegate {
				button.Text = string.Format ("{0} clicks!", count++);
			};
		}
	}
}

Эти несколько строк должны помочь начать работу с базовой структурой приложения для Android.

У Android есть Действия. Действия можно рассматривать как код файлов в проекте C #. Здесь начинается все действие приложения для Android. Xamarin автоматически объявляет метку (имя проекта) и в этом случае также свойство MainLauncher, которое будет запускать этот код при запуске приложения.

Чтобы что-то отобразить в нашем приложении, нам нужно загрузить макет или создать представление из кода. В этом и заключается метод SetContentView (). Без этого приложение скомпилируется, но ничего не отображается. В этом демонстрационном приложении создается базовый макет с кнопкой внутри:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/myButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
</LinearLayout>

У нас уже есть первое отличие от других проектов C # здесь. Чтобы сделать кнопку видимой для нашего кода в Деятельности, нам нужно найти наши ресурсы для кнопки. Это делается методом FindViewById <T> (). Как только это становится видимым для нашего кода, мы можем создать делегата для нашего события Click кнопки.

Кнопка подсчитывает количество кликов и изменяет текст в зависимости от количества кликов.

Чтобы лучше понять структуру Android-приложения, я настоятельно рекомендую прочитать документацию. Для меня особенно эти ссылки были полезны:

Есть еще несколько полезных ресурсов, но для начала этих четырех ссылок должно быть достаточно. Я расскажу о некоторых из вышеперечисленных тем также в своих будущих публикациях и также добавлю ссылки на дополнительные ресурсы.

Как и в случае разработки для Windows Phone, StackOverflow также очень полезен, как и форумы Xamarin для Android .

До следующего поста, счастливого кодирования!