Giter VIP home page Giter VIP logo

film_expert's Introduction

Hey! Nice to see you.

I am 46 years old and a student... again :-)
As the great Lenin bequeathed, learn, learn, and learn again!
So I took up this difficult task-learning Java and Kotlin for Android development.
And you know what? I'm loving it. Which means I can do it. :-)

Мои проекты

Edited_20210519_101727.mp4
20210519_221613.mp4
20210519_221412.mp4
Подборки видео Заметки и задачи Простой калькулятор
в разработке в разработке в разработке
GitHub API -- Проект "Папа одобряет" -- My_PDF_Viewer_App_On_Kotlin
в разработке в разработке готов

Статистика аккаунта

StDimensiy GitHub stats
StDimensiy GitHub toplang

film_expert's People

Contributors

darthverteliy avatar stdimensiy avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

darthverteliy

film_expert's Issues

Общие задачи (оформление проекта) README

  • наделать скриншотов
  • поставить дату начала и окончания проекта
  • поставить информацию о лицензии и прочие атрибуты
  • снять небольшое видео и разместить в описании

Retrofit

Внедрить в проект Retrofit
Создать базовый интерфейс для работы с TMDB

Старт проекта

Проект создать из шаблона новый fullscreen
Зачистить убрать все лишнее

Glide

Внедрить в проект Glide

Фрагмент отображения информации по актерам

Добавить новый фрагмент детализации информации по актерам
Внедрить его в навигационный граф
Реализовать переход на него по щелчку на аватаре актера
во фрагмент реализовать отображение информации по выбранному актеру и список фильмов с его участием

Экран настроек

Создать экран настроек
добавить в него параметр переключатель "контент для взрослых" поставить по умолчанию "выкл"
Организовать чтение значения параметра при передаче запроса

Main Fragment

Создать пространство и внедрить в проект фрагмент подборки фильмов (он должен быть домашним главным)
Разметка
VM
Класс фрагмента
Обеспечить переход на фрагмент, никаких пока украшательств
в разметке реализовать RV фильмов и наименование группы (вне RV)

Entities

Создать базовые сущности, закинуть из в domain
callback
Посмотреть и создать сущности для ответов с TMDB с учетом паджинации

Фрагмент детализации информации о фильме / Разметка

Создать разметку (постараться максимально приблизиться к макету)
Подобрать шрифты
Назначить место и установить RV для списка актеров
Перенести разметку и логику работы с прогрессбаром из главного фрагмента
Настроить подгрузку и отображения фона фильма
настроить отображение постера
добиться отображения показа описания.
Переделать разметку на растягиваемый шаблон, ибо описание может быть длиннее чем на макете.

Просмотре постера

Реализовать возможность по щелчку на постер посмотреть его крупным планом

Главный фрагмент / Элемент / ПЕРЕХОД к детальной информации

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

Изменяемый размер шрифта на фрагменте детализации

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

Fragment Movie Details

Создать пространство и внедрить в проект фрагмент детализации информации о фильме
Разметка
VM
Класс фрагмента
Обеспечить переход на фрагмент, возврат обратно по штатной кнопке android никаких пока украшательств
в разметке реализовать RV актеров

Навигация по свайпу (влево / вправо)

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

Главный фрагмент / Элемент / Прогресс бар

Реализовать прогресс бар в разметке в виде отдельного блока, на полупрозрачном фоне,
Прогресс бар как на макете круговой, толщина самого индикатора ориентировочно 2 dp
внутри должен быть двухзначный цифровой параметр.

Главный фрагмент / Элемент / Прогресс бар

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

Разметка для ландшафтной ориентации главного экрана

Добавить разметку для ландшафтного расположения главного экрана
Заголовок разместить чуть левее, добавить информацию об общем количестве фильмов в подборке
Реализовать логику добавления данной информации только в экран с ландшафтной ориентацией

Общие задачи (загрузки списка фильмов) Паджинация

Реализовать скрытую пагинацию, подгружать список постепенно, делать это по возможности незаметно для пользователя, но всё-таки сигнализировать о том, что приложение в сеть полезло.
Для этого путь будет прикручен скрытый прогресс бар шириной в 1 dp в районе разделителя, как только загрузка пошла, прогресс должен немного покрутиться, как только закончится, исчезнуть.

Улучшение / Прогрессбар сигнализирующий о процессе загрузки

Добавить на главный экран под разделителем линейный прогрессбар который будет сигнализировать периодически о факте подгрузки данных в список (стартует при подаче команды на загрузку очередной страницы, останавливается когда данные загружены и переданы в адаптер)

API KEY Получение, сохранение, использование

Для выполнения задания получить собственный ключ (для тестирования)
Ключ который указан в задании сохранить в local.properties в переменную TMDB_KEY
Обеспечить подстановку значения переменной из local.properties в проект при помощи secrets-gradle-plugin от google
внести соответствующие изменения в манифест и в build.gradle
Обеспечить прием ключа в apikey в классе фрагмента, дальше перебрасываться значение должно только в составе аргументов функций.

Repository (create)

Создать базовый интерфейс репозитория
Создать реализацию репозитория с двумя методами один для списка фильмов, второй для списка актеров, и две соответственно заглушки к ним.

Организация пространства разработки

Создать в репозитории постоянные ветки
mastr (основная ветка релизов)
develop (промежуточное сохранение результатов)
decoration (оформление проекта, не относящееся к основному коду)
создать проект, настроить
добавить лейблы

Главный фрагмент / Элемент / постер фильма и текстовка

Вынести постер в отдельный слой разметки, закруглить ему и только ему края как на макете
Текстовку наименования фильма разместить ниже прогресс бара.
Дату выхода фильма разместить ниже всех, сделать 0,8 по прозрачности и формат 2022-02-10 (выполнить заглушкой пока)
Подобрать шрифты и размер на предмет максимального сходства с макетом.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.