Разработка мобильного приложения
В данной главе представлено описание библиотек, инструментов и технологий, использованных при разработке и особенности реализации.
Инструменты разработки
Для разработки проекта используется среда Android Studio. Эта среда рекомендована Google для разработки приложений под Android и предоставляет все необходимые технологии и языки.
В качестве языков разработки использовались Java, как основной язык для разработки под Android, а также Kotlin, представляющий такие важные свойства, как null-safety. Кроме того Kotlin позволяет существенно сократить количество кода в некоторых местах программы (например, при написании моделей).
Для работы над дизайном использовался Sketch. Это инструмент позволяющий разрабатывать дизайн приложения, использовать элементы управления, встроенные в операционных системах, а также легко экспортировать дизайн для использования в коде и ресурсы, использованные при разработке дизайна.
Для контроля версий использовался Git и GitHub.
При разработке приложения также использовались разные библиотеки, упрощающие работу с системой Android. В частности использовалась библиотека Picasso для работы с изображениями. Она позволяет, используя несколько строк кода, загрузить изображение в ImageView, предоставляет инструменты для кэширования изображений, а также для их преобразования. Для работы с push уведомлениями использовалась библиотека Airship, гарантирующая (в отличие от стандартного решения от Google) доставку уведомлений пользователям. Помимо этого для разработки дизайна экранов использовалась Google Android support library.
Для работы с http запросами используется библиотека Retrofit. Для работы с сокетами AndroidAsync.
Для разработки приложения использовался api сервера, созданного специально для этого проекта. Все методы, предоставляемые сервером, описаны в следующей таблице:
Таблица 3 - Api сервера
PATCH users/{id} |
Метод для обновления данных о текущем пользователе |
|
POST events |
Метод для создания события |
|
PATCH events/{id} |
Метод для обновления события |
|
POST users |
Метод для создания пользователя |
|
POST searches |
Метод для поиска событий |
|
POST reports |
Метод для отправки жалобы |
|
GET users/search |
Метод для поиска людей |
|
GET offers |
Метод для получения предложений |
|
GET offers/number_of_incoming |
Метод для получения количества непрочитанных предложений |
|
GET friend_requests/number_of_incoming |
Метод для получения количества непрочитанных заявок в друзья |
|
GET events/{id}/available_friends |
Метод для получения пользователей, которых возможно пригласить на событие |
|
GET feed/recommended |
Метод для получения событий, рекомендованных пользователю |
|
GET feed/friends |
Метод для получения событий, в которых учавствуют друзья |
|
GET activity |
Метод для получения истории действий пользователя |
|
GET users/{id} |
Метод для получения информации о пользователе |
|
GET events/{id} |
Метод для получения информации о событии |
|
GET users/{id}/friends |
Метод для получения списка друзей пользователя |
|
GET users/{id}/memberships |
Метод для получения списка событий, в которых учавствует пользователь |
|
GET events/{id}/comments |
Метод для получения комментариев события |
|
GET events/{id}/memberships |
Метод для получения участников события |
|
GET friend_requests |
Метод для получения заявок в друзья |
|
POST events/default_photo |
Метод для получения стандартной фотографии при создании события (в случае если пользователь не выбрал фотографию) |
|
DELETE invites/{id} |
Метод для удаления приглашения |
|
DELETE submissions/{id} |
Метод для удаления заявки на событие |
|
PATCH invites/{id}/decline |
Метод для отклонения приглашения |
|
PATCH friend_requests/{id}/decline |
Метод для отклонения заявки в друзья |
|
PATCH submissions/{id}/decline |
Метод для отклонения заявки на событие |
|
PATCH friend_requests/{id} |
Метод для принятия заявки в друзья |
|
DELETE friend_requests/{id} |
Метод для удаления заявки в друзья |
|
DELETE events/{id} |
Метод для удаления события |
|
DELETE comments/{id} |
Метод для удаления комментария |
|
DELETE memberships/{id} |
Метод для удаления участника события |
|
DELETE friends/{id} |
Метод для удаления друга |
|
POST friend_requests |
Метод для создания заявки в друзья |
|
POST events/{id}/comments |
Метод для создания комментария |
|
PATCH invites/{id} |
Метод для принятия приглашения |
|
PATCH submissions/{id} |
Метод для принятия заявки на событие |
|
POST events/{id}/submissions |
Метод для создания заявки на событие |
|
POST events/{id}/invites |
Метод для создания приглашения |
|
POST social_tokens |
Метод для автозирации через социльную сеть |
Все эти методы описаны в специальном интерфейсе в приложении, используя библиотеку Retrofit.