Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save v-grishechko/dc84949b1f0a5c71c005e74a78742ba6 to your computer and use it in GitHub Desktop.
Save v-grishechko/dc84949b1f0a5c71c005e74a78742ba6 to your computer and use it in GitHub Desktop.

Реализовать прототип приложения для сервиса аренды квартир Onliner. В приложении отображается список квартир с краткой информацией о ней, аналогично мобильной версии r.onliner.by/ak. Элементы подгружаются во время пролистывания списка. При изменении ориентации девайса формат отображения списка изменяется. Исходный код поместить в свой репозиторий на GitHub.

Макеты

Alt Text

Требования к приложению

  • Язык программирования: Java или Kotlin
  • Архитектурный подход: MVP или MVVM
  • По возможности использовать библиотеки: RxJava 1 или 2, Dagger2
  • Поддержка ОС с Android 4.1
  • Будет плюсом покрыть тестами код

Запрос для получения списка

Адрес API – https://ak.api.onliner.by

Объявления возвращаются постранично. Количество элементов на странице - 30

GET /apartments

Параметры поискового запроса:

Параметр Тип Описание
page integer номер возвращаемой страницы(по умолчанию: 1)

Пример запроса

GET /apartments?page=2

Ответ при успешном поиске объявлений

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Link: <https://ak.api.onliner.by/apartments?page=1>; rel="prev",
<https://ak.api.onliner.by/apartments?page=1>; rel="first",
<https://ak.api.onliner.by/apartments?page=3>; rel="next",
<https://ak.api.onliner.by/apartments?page=5>; rel="last"
{
    "apartments": [
        {
            "id": 1,
            "price": {
                "amount": "600.00",
                "currency": "USD",
                "converted": {
                    "BYN": {
                        "amount": "930.00",
                        "currency": "BYN"
                    },
                    "USD": {
                        "amount": "600.00",
                        "currency": "USD"
                    }
                }
            },
            "rent_type": "2_rooms",
            "location": {
                "address": "Беларусь, Минск, ул. Ленина, 5",
                "user_address": "Ленина, 5",
                "latitude": 53.234234,
                "longitude": 27.6754
            },
            "photo": "http://content.onliner.by/news/2014/10/default/135665aea899df8f7a243c2d5e7093cf.jpg",
            "contact": {
                "owner": true
            },
            "created_at": "2014-05-21T19:14:40+03:00",
            "last_time_up": "2015-08-24T11:49:18+0300",
            "up_available_in": 0,
            "url": "https://ak.onliner.by/apartments/1"
        },
        ...
    ],
    "total": 150,
    "page": {
        "last": 5,
        "current": 2,
        "limit": 30,
        "items": 30
    }
}

Ответ в случае, если по запросу ничего не найдено

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
    "apartments": [],
    "total": 0,
    "page": {
        "last": 0,
        "current": 0,
        "limit": 30,
        "items": 0
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment