суббота, 10 октября 2009 г.

Как написать программу для смартфона?

Для этого нам потребуется Visual Studio, Windows Mobile SDK и образы эмуляторов устройств (я использую Visual Studio 2008, Windows Mobile 5.0 SDK for Pocket PC и Localized Windows Mobile 5.0 Pocket PC Emulator Images). Писать мы будем приложение, обновляющее статус в Twitter с помощью Twitterizer.

Создаем новый проект для смарт-устройств:

image

В следующем окне выбираем «Приложение для устройства», задаем конечную платформу (у меня Windows Mobile 5.0 Pocket PC SDK) и версию .NET Compact Framework:

image

Переходим во вкладку «Form1.cs [Конструктор]» и перетаскиваем элементы управления, которые нам понадобятся:

  • TextBox для ввода логина с именем login;

  • TextBox для ввода пароля с именем password и свойством PasswordChar = “*”, чтобы пароль не был виден при вводе;
  • TextBox для ввода текста сообщения с именем textField и свойствами Mutiline = “true”, maxLength = 140, так как дина твита не может превышать 140 символов;
  • 3 элемента label для того, чтобы подписать что есть что;
  • 2 кнопки меню для обновления статуса в Twitter и выхода из программы. Также было бы неплохо знать сколько символов еще можно ввести до окончания лимита в 140 единиц. Для этого поместим на форму еще один элемент TextBox с именем characterNumber и значением 140 в свойстве текст.

Наш графический интерфейс готов. В итоге должно получиться что-то похожее на это:


image

Для того, чтобы использовать библиотеку Twitterizer нужно сделать следующие шаги:

  1. Добавить сылку на библиотеку:

    image image

  2. Добавить соответствующую директиву using в файл Form1.cs:

    image

Теперь перейдем в обработчик события menuItem1_Click (клик по кнопке Twit) и напишем вот такой код:

if ((login.Text == "") || (password.Text == "")) //проверка на заполнение полей
{
MessageBox.Show("Empty login or password", "Login/Password Entry Error");
}
else
{
if (textField.Text == "") //проверка на заполнение текста твита
{
MessageBox.Show("Empty Text field", "Empty Text field"); //обновляем статус
}
else
{
try
{
Twitter twit = new Twitter(login.Text, password.Text);
twit.Status.Update(textField.Text);

}
catch (TwitterizerException ex) //ловим исключения при обновлении статуса
{
string message = string.Format("Exception: {0}", ex.Message.ToString());
MessageBox.Show(message, "Exception");
}

}
}


* This source code was highlighted with Source Code Highlighter.

В menuItem2_Click (клик по кнопке Exit):

private void menuItem2_Click(object sender, EventArgs e)

{

Close();

}


* This source code was highlighted with Source Code Highlighter.

Для того, чтобы отслеживать количество оставшихся символов в «реальном времени», в событии KeyUp напишем следующее:

characterNumber.Text = (140 - textField.Text.Length).ToString();

* This source code was highlighted with Source Code Highlighter.

Запустим наш проект с отладкой: пункт меню Отладка → Начать отладку. Если никаких ошибок мы не сделали, то получим предложение развернуть приложение:

image

Я использовал реальный коммуникатор на Windows Mobile 5.0 и он должен быть соединен с КПК через программу ActiveSync.

Комментариев нет:

Отправить комментарий