Додавання соціальних можливостей

Питання, що розглядаються в цій годині:

• додавання підтримки функції запрошення друзів;

• відображення очок, набраних друзями;

ПОЛІПШЕННЯ ВАШОГО ДОДАТКИ ЗА ДОПОМОГОЮ МОЖЛИВОСТЕЙ

За останні кілька годин додаток «Been There, Done That!» Придбало цілком завершений вигляд. Проте постійно грати в поодинці досить нудно. В ідеальному випадку користувачі хочуть ділитися своїми результатами і враженнями від гри з іншими людьми. Додатки, що надають певні можливості для взаємодії між користувачами, з більшою часткою ймовірності придбають популярність і будуть дуже швидко поширюватися, тим самим гарантуючи успіх їх творцям.

• Як моє додаток буде захищати конфіденційні дані користувачів (і їх друзів)? Яких рекомендацій я буду дотримуватися для визначення того, що може і чого не може робити додаток (і моя компанія) з конфіденційними даними користувачів?

Підтримка основних відносин між гравцями

ДОДАВАННЯ ПІДТРИМКИ КОЛА ДРУЗІВ У ВАШЕ Додаток

3. Кожен з гравців тепер може бачити очки, набрані іншим гравцем,

на вкладці Scores of Friends (Результати друзів) екрана з результатами гри.

Повна версія коду, що розглядається в цій годині, доступна на диску, що додається до цієї книги.

Додавання можливості запрошення друзів на екран з настройками

• Додати кнопку на екран з настройками, при натисканні на яку буде відкриватися нове діалогове вікно.

• Додати реалізацію деяких мережевих операцій, пов'язаних з передачею на сервер додатки запиту на додавання користувача в коло друзів.

ОНОВЛЕННЯ МАКЕТА ЕКРАНУ з настройками

Відкрити діалогове вікно, призначених для ДОДАВАННЯ КОРИСТУВАЧА В КОЛО ДРУЗІВ

Button addFriend = (Button) findViewById (R.id.Button Friend Email); addFriend.setOnClickListener (new View.OnClickListener () Вам потрібно оновити метод o n C r e a t e D i a l o g () класу

QuizSettingsActivity, щоб додати інструкцію case для цього нового діалогового вікна:

final View friendDialogLayout = layoutInflater.inflate (R.layout.friend_entry, (ViewGroup) findViewById (R.id.root));

new AlertDialog.Builder (this); friendDialogBuilder.setView (friendDialogLayout); final TextView emailText = (TextView)

android.R.string.ok, new DialogInterface.OnClickListener ()

public void onClick (DialogInterface dialog, int which)

String friendEmail = emailText.getText (). ToString (); if (friendEmail! = null friendEmail.length ()> 0)

Додавання соціальних можливостей

Мал. 17.3. Діалогове вікно, призначене для додавання користувача в коло друзів

СТВОРЕННЯ КЛАСУ ASYNCTASK, призначених

ДЛЯ ВІДПРАВЛЕННЯ ЗАПИТІВ НА ДОДАНУ КОРИСТУВАЧІВ В КОЛО

Реалізація похідного класу FriendRequestTask багато в чому схожа на інші похідні класи, успадковані від класу AsyncTask, над якими ви працювали протягом останніх кількох годин. (В наступному прикладі для простоти розуміння і стислості був видалений код. Обробляє виключення.) Єдиний дійсно цікавий момент в цій новій завданню - код методу doInBackground (). формує запит на додавання користувача в коло друзів:

protected Boolean doInBackground (String ... params)

getSharedPreferences (GAME_PREFERENCES, Context. MODE_PRIVATE); Integer playerId = prefs.getInt (GAME_PREFERENCES_PLAYER_ID, -1);

Vector vars = new Vector();

vars.add (new BasicNameValuePair ( "command", "add"));

vars.add (new BasicNameValuePair ( "playerId", playerId.toString ())); vars.add (new BasicNameValuePair ( "friend", friendEmail)); HttpClient client = new DefaultHttpClient ();

HttpPost request = new HttpPost (TRIVIA_SERVER_FRIEND_EDIT); request.setEntity (new UrlEncodedFormEntity (vars)); ResponseHandler responseHandler = new BasicResponseHandler ();

String responseBody = client.execute (request, responseHandler); if (responseBody! = null)

Відображення результатів гри друзів

Тепер, коли гравці можуть формувати коло своїх друзів, вам потрібно оновити клас QuizScoresActivity для заповнення вкладки Scores of Friends (Результати друзів) оперативними даними, одержуваними з сервера додатки. На щастя, в реалізації цієї функціональності немає нічого складного, оскільки підтримку зв'язків між друзями в основному здійснює сервер додатки. Для отримання результатів гри друзів потрібно просто трохи змінений запит до бази даних сервера додатки

З точки зору реалізації, ви можете просто створити ще один екземпляр класу ScoreDownloaderTask для отримання цих результатів і їх відображення на вкладці Scores of Friends (Результати друзів) (рис. 17.4). Коли екран з результатами гри буде використовувати оперативні дані, одержувані з сервера додатки, ви можете видалити з проекту тестові XML-файли ресурсів і весь пов'язаний з ними код.

Додавання соціальних можливостей

Ріс.17.4. Вкладка Scores of Friends

Розширення відносин між гравцями

• Сервер програми міг би відправляти запрошення по електронній пошті будь-якому одному, який поки відсутній в базі даних.

• Гравці не обов'язково повинні бути прив'язані до платформи Android. Можна легко додати інші платформи (веб-сайт, iPhone, BlackBertv і т. Д.). Це означає, що друзі могли б взаємодіяти з одним і тим же сервером додатка і грати один з одним на різних платформах.

• Дружні стосунки можна було б зробити як односторонніми, так і двосторонніми (це означає, що результати мот відображатися в списку у одного гравця або у кожного з двох гравців відповідно). Можна було б встановлювати різні довірчі відносини, дозволяючи гравцям отримувати доступ до різноманітної інформації про інших гравців, включаючи відповіді друзів на питання і їх обрані місця в світі.

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

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

• розробка програми, яка дозволить користувачеві переглядати і оновлювати свій персональний блог, стрічку на сайті Twitter і статус на сайті Facebook;

• розробка повнофункціонального Twitter-клієнта.

Додавання підтримки мережі Facebook

Додавання підтримки мережі Twitter

Робота з платформою OpenSocial

• friendster (як і раніше популярний сервіс в Південно-Східній Азії);

• hi5 (популярний сервіс в Європі і Центральній і Південній Америці);

• Hyves (популярний сервіс в Нідерландах);

• Mail.ru (популярний сервіс в Росії);

• mixi (популярний сервіс в Японії);

• MySpace (популярний сервіс в Сполучених Штатах і по всьому світу);

• NetLog (популярний сервіс в Європі і на Близькому Сході);

• orkut (популярний сервіс в Південній Америці та Індії);

• RenRen (колишня назва - Xiaonei, популярний сервіс серед студентів Китаю);

• Yahoo! (Популярний сервіс в Сполучених Штатах і по всьому світу);

ПИТАННЯ ТА ВІДПОВІДІ

Питання: Як вибрати найкращий унікальний ідентифікатор для проведення відмінностей між користувачами?

ПРАКТИКУМ Контрольні питання

2. Яким чином додаток «Been There, Done That!» Створює друже недержавні відносини?

A. Надаючи гравцеві можливість пошуку друзів у списку на сервері додатка.

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

Схожі статті