Пишем Android приложение для киноманов — Часть 1 (Прототипирование)

  • Tutorial


Доброго времени суток, Хабр!

Не секрет, что недавно компания Google утвердила в качестве приоритетного языка программирования ОС Android — Kotlin. В этой и последующих статьях будет рассказываться о создании приложения на этом языке.

Тематика приложения


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

Прототип


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

Диаграмма вариантов использования


Определим требуемые функционал приложения. В первую очередь пользователь должен будет найти новинки, а для этого потребуются фильтры. После этого потребуется сохранить фильмы, о которых будут приходить уведомления, а значит нужно отобразить этот список. Теперь нарисуем Use Case диаграммму.



UX/UI Дизайн


Набросаем макеты экранов с помощью ПО для прототипирования UX/UI, опираясь на созданную диаграмму. Для этого используем Mockplus, базовый функционал программы предоставляется бесплатно. Лучшие практики по дизайну компонентов собраны здесь.

1 2 3







Рассмотрим поподробнее разработанные макеты. Все изображения кликабельны.
  1. На начальной странице пользователь может увидеть все новинки, о которых он получит уведомления. Если пользователь не захочет получать, он сможет нажать на колокольчик.
  2. На вкладке можно найти все подходящие под пожелания новинки, указанные во вкладке Settings, и добавить их в список для уведомления.
  3. Вкладка Settings позволяет настроить фильтры для поиска новинок, а именно рейтинг IMDb и жанры.


Выбор архитектуры


Используем архитектуру MVP, то есть Model-View-Presenter (модель-представление-презентер).
В качестве представления выступают Activity и Fragment'ы. Модель обеспечивает работу с сервером, а презентер обеспечивает взаимодействие между представлением и моделью.



Подробнее об этой архитектуре можно прочитать здесь.

ER-модель базы данных


Локальная база данных будет кэшировать полученные ответы от сервера, чтобы уменьшить частоту запросов и тем самым снизить нагрузку. Рассмотрим ER-диаграмму.



Сущность Movie отвечает за хранение общей информации о новинках, сущность Genre за жанры, а Movie genres содержит жанры для каждой новинки.

Заключение


В следующей статье будет рассказано о дизайне приложения и основной логике.

Часть 2 (Дизайн)
Поделиться публикацией

Похожие публикации

Комментарии 6

    0
    Что с серверной частью? Она будет рассмартиваться в туториале и на чем она будет написана?

    Идея — добавлять фильмы в библиотеку и присылать уведомления когда они будут выходить на торрентах в HD(у многих сайтов есть API для этого). Правда, уже написан такой бот для Телеграма, называется Eve.
      0
      Что с серверной частью?

      Anton23 Да, серверная часть будет рассматриваться. Не нашел API, где можно было бы узнать и рейтинг IMDb, и список новинок, поэтому будут использоваться themoviedb и OMDb вместе. С первого будем получать список, а со второго детальную информацию по каждому фильму.

      Идея — добавлять фильмы в библиотеку и присылать уведомления когда они будут выходить на торрентах в HD

      Не знаю как Play Market относится к торрентам, нужно почитать. Спасибо, подумаю над этим.
      0
      если где-то существует, просьба написать в комментариях.

      Мобильные приложения Кинопоиска умеют добавлять в календарь дату выхода кино и дату цифрового релиза, из календаря потом придёт уведомление.
      Да, уведомляет не само приложение, но проблему решает при этом не создаёт необходимость иметь ещё один профиль, где надо помечать фильмы, и ещё одно приложение, которое надо держать в телефоне.
        0
        Miha_xXx
        У Кинопоеска же есть платная подписка, эта функция доступна только с ней?

        не создаёт необходимость иметь ещё один профиль, где надо помечать фильмы

        В приложении будет автоматически создаваться список с уведомлениями, опираясь на фильтр. Если определенный фильм пользователь не захочет смотреть, уведомление можно отключить. Если нужного фильма нет в списке, его можно найти и добавить ручками.
          0
          эта функция доступна только с ней?

          Нет, функция доступна и без подписки.
          В приложении будет автоматически создаваться список с уведомлениями, опираясь на фильтр.

          Насколько это интересная функция, зависит от точности фильтра: если этого только жанр и рейтинг, то толку мало — просто драм много, а если у неё рейтинг 8+, то про неё и так напишут профильные СМИ, а вот если можно указывать интересующие ключевые слова (у фильмов на КП они есть, мб на IMDb тоже, я не знаю), то это уже интереснее, можно будет выбрать медицину, sci-fi и поезда, скажем, но тут вопрос в том, что не у всех фильмов эти ключевые слова указаны, на IMDb с этим лучше?
            0
            Miha_xXx

            Ключевые слова, скорее всего, пишутся редакторами Кинопоиска для каждого нового фильма. Для IMDb из интересного можно узнать только жанр и актеров. Хотя не исключаю, что где-то есть API с ключевыми словами для фильмов, но пока я его не нашел.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое