Giter VIP home page Giter VIP logo

geekbrains_course_androidonkotlin_hw_my_movie'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

geekbrains_course_androidonkotlin_hw_my_movie's People

Contributors

stdimensiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

geekbrains_course_androidonkotlin_hw_my_movie's Issues

Работа над ошибками Урок №4 -2

Перебросить объекты работающие только в UI в пакет UI
Проверить наименования переменных и функций, обратить внимание на код стайл.

Fused Location Provider

Было бы неплохо изучить и реализовать в рамках проекта Fused Location Provider

переименовать фрагмент MoreDetailed

Вне очередного ДЗ к уроку выполнить рефакторинг и переименовать полностью фрагмент и все его компоненты с MoreDetailed на более информативное.
Допустим пакет пока пусть станет details
фрагмент и все его компоненты DetailMovie (я предполагаю, что в рамках развития проекта появятся еще фрагменты детализирующие информацию для чегонить еще)

Работа над ошибками Урок №4 -3

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

Фрагмент About в Web

  • Создать небольшую страницу в сети исключительно для about этого приложения.
    Никаких внешних ссылок, только внутренние.
  • Переделать фрагмент about под webView

Занятие №8 Задача №5*

  • Добавьте возможность сохранять фильмы в список понравившихся. Это будет отдельный экран, в котором можно будет загружать список понравившихся фильмов

Занятие №8 Задача №1

  • Поиск по фильмам возвращает в том числе и «взрослый контент». Это параметр adult в ответе сервера. Создайте экран с настройками или чекбокс в меню приложения и добавьте туда настройку включения/выключения взрослого контента. Запоминайте эту настройку в SharedPreferences

Занятие №8 Задача №2

  • Добавьте возможность оставлять заметку о просмотренном фильме, чтобы хранить её в дальнейшем в базе данных

Занятие №4 Задача №2

Написать дополнительные extension-функции для Snackbar без action, а также такие, которые принимают строковые ресурсы (R.string...) в качестве текста

Занятие №10 Задача №2

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

Занятие №10 Задача №3*

  • Добавьте кинотеатры вашего города в геозоны и отображайте диалоговое окно при вхождении в геозону. На следующем уроке уведомление можно переделать в push-нотификацию

Занятие №9 Задача №3*

  • Добавьте возможность позвонить по номеру из списка контактов
  • (опять-же, что за ерунда, какое отношение к приложению имеет либо в каком приложении это задание выполнить?)

Занятие №6 Задача №1

  • Подписаться на событие изменения связи (CONNECTIVITY_ACTION) и уведомлять об этом пользователя

Занятие №2 Задача №2

  • Добавить в приложение рандомизатор, который будет возвращать разный результат загрузки данных: успех или ошибку.
  • Обрабатывайте ошибки загрузки

Перенести все setOnClickListener

Согласно рекомендаций полученных на занятии, документации RecyclerView нужно попробовать убрать все ClickListener(ы) из ViewHolder(a) и поместить их у симметричный метод адаптера (симметричный в смысле что у данного метода есть обратный метода как например onStart - onStop) в котором и отключать ненужные белее ClickListener(ы)
Конкретно в рамках RecyclerView принято решение обкатать методы onViewAttachedToWindow (который отлично себя показывает при работе с динамически программно добавляемыми фрагментами в качестве элементов RV) и его отражение (:-) onViewDetachedFromWindow в котором будем обнулять ClickListener(ы)

  • из всех фрагментов у всех ViewHolder следует перенести подключение ClickListener(ов) в адаптеры в метод onViewAttachedToWindow
  • соответственно в методах onViewDetachedFromWindow все ClickListener(ы) обнулить

Занятие №7 Задача №3*

  • Передача данных не идеальна. WeatherDTO переводится в список из Weather, хотя список нам не нужен, достаточно одного объекта Weather. Подумайте, как можно оптимизировать данный код

Занятие №4 Задача №3*

  • изучить тему делегатов и делегирования более подробно.
  • применить эти знания в приложении

Занятие №5 Задача №2

  • Обрабатывайте ошибки запроса и парсинга данных: отображайте экран с ошибкой, или диалоговое окно, или Snackbar

Занятие №10 Задача №1

  • Добавьте в своё приложение экран с картой, поиском по адресу и отображением адреса по координатам по аналогии с тем, что было показано на уроке

Занятие №8 Задача №3

  • Создайте БД для вашего приложения и храните там историю запросов: сведения о фильмах, время просмотра, заметку о фильме

Фрагмент HOME переделать на использование вложенных фрагментов

Согласно рекомендаций полученных на лекции №5 и наблюдения за потреблением ресурсов необходимо переделать общую концепцию решения вложенных RV

  • реализовать вложенный RV отдельным универсальным фрагментом
  • внедрить созданный универсальный фрагмент в элементы внешнего RV

Занятие №6 Задача №3*

  • создать два разных приложения и передавайте между ними данные или создайте привязанный сервис, как это описывается в факультативе.

Занятие №4 Задача №1

Провести рефакторинг своего приложения в соответствии с полученными знаниями о возможностях языка и хорошими практиками программирования на Kotlin

Работа над ошибками Урок №4 - 5

Проверить и исправить наименования пакетов в соответствии с Kotlin style guide

  • дополнительно считаю разумным в слое создавать отдельные пакеты, для начала для интерфейсов, ибо если выделил я интерфейс API отдельно пусть отдельно и лежат и нейминг будет соблюден.
    в итоге планируется создать пакет interfaces в UI и в domain пусть в нем все интерфейсы и собираются. (провести рефакторинг)

Занятие №9 Задача №1

  • Добавьте экран со списком контактов в ваше приложение
    (этот вопрос требует разъяснения, в части какое отношение он имеет к данному приложению и какие контакты интересуют)

Оптимизация производительности RVPool

Во внешнем адаптере прикрутить RVPool

  • замерить параметры производительности до прикручивания
  • внедрить RVPool
  • замерить параметры производительности после прикручивания

Занятие №5 Задача №1

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

Занятие №9 Задача №2*

  • Добавьте фильтры для главного экрана или истории просмотра, по которым можно будет фильтровать содержимое списков

Занятие №3 Задача №1

  • Добавьте экран с описанием конкретного фильма по аналогии с погодным приложением
    les3_Q1

Занятие №7 Задача №5*

  • Добавить в своём приложении возможность загружать SVG, если в этом есть потребность

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.