По договоренности
Требования к разработчику 1:
Java, разработка приложений под Android, iOS, Windows Mobile (пока хотя бы под Android), мобильный клиент сервер.
Мобильное приложение должно иметь:
1. Окно и функцию ввода email и пароля с их сохранением на сервере и локально (для автологина), на уровне глобальных настроек.
2. Одну основную активность (в терминах Android), с сохранением состояния активности. Пока пустую. Можно туда пока поставить объект браузера, на весь экран. Локально переменная, содержащая Web-адрес открываемой в этом браузере страницы.
3. Один сервис (фоновый процесс), который по времени (2 5 минут) и по изменению местоположения (15 50 метров) обновляет геолокационные данные в БД на стороне сервера, с автовыбором метода определения координат. Приоритет энергопотребление. Можно грубо. Сервер может изменять период запуска этого фонового процесса, в ответ на переданные фоновым процессом координаты.
4. Сервер может отправлять приложению PUSH-сообщения. Они фильтруются на два типа: передаваемые главной активности (пока для изменения строки автологина объекту-браузеру в основной активности), и отображаемые в виде уведомлений (не toast) в течение 15 30 секунд, с кнопкой подтверждения, вызывающей основную активность и передающую ей строку-Веб-адрес и сообщение для отображения, полученные в PUSH-сообщении, и кнопку cancel, передающий серверу сигнал отбоя. При отсутствии реакции пользователя, серверу также передаётся сигнал отбоя, но с другим кодом. На стороне сервера пока только зарезервировать соответствующий столбец в базе данных пользователей для хранения ответа и времени последней связи. Т.е. таблица пользователей в БД сервера (кроме внутренних для сервера столбцов):
1. id записи (ключ)
2. id клиента (Email)
3. login
4. password
5, 6. местоположение (x,y)
7. время последнего обновления координат (выхода приложения на связь с сервером)
8. строка, передаваемая приложению при выходе на связь фонового процесса (адрес браузеру)
9. новая задержка для следующего выхода приложения на связь с сервером. Может быть пустой, тогда прежняя задержка сохраняется.
Для PUSH:
10. строка, передаваемая клиенту
11. последний ответ приложения (0-cancel, 1-confirmed, 2-ignored)
Для отправки сообщений приложению, сервер должен слушать какой-либо порт. Сообщение будет толкать другой процесс, передавая строку 10 на всплывающее окно приложения. По событию выходу клиента на связь с сервером тоже должен выставляться флажок на внутренний порт.
Пока разработать хотя бы под Android, в Eclipse . Но сервер писать с учётом, что к нему должны цепляться и другие приложения, iOS и WinMobile.