TinkoffFintechAndroid

Репозиторий с домашними работами финтех-школы Тинькофф,

Первая домашняя работа

В данном приложении два экрана. На первом создается объект, реализующий интерфейс DataHolder, и передается во воторой экран через посредника - application-класс. Второму экрану необходим именно объект, созданный первым. Чтобы убедиться в том, что это так, на экрнах печатается хэш-код объекта. Но в приложении есть проблема - утечка главной активити. Поэтому необходимо:

  • интегрирвать инструмент leakcanary (https://github.com/square/leakcanary)
  • убедиться в наличии утечки и обнаружить причину (leakcanary должен помочь в диагностике)
  • устранить утечку с наиболее минимальными изменниями в коде

Вторая домашняя работа

Написать кастомную View Group, в которую будут добавляться вьюхи таким образом:

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

Третья домашняя работа

Реализовать приложение, показывающее текущую погоду в городе из предложенного списка. < Реализовать следующий функционал: <

  • С помощью Retrofit, Gson и других удобных для вас инструментов, написать запросы для получения текущей и прогноза погоды в выбранном городе, используя метод API By city name.
  • Реализовать JsonDeserializer, который преобразует json структуру пришедшую с сервера в модель Weather (Также и для прогноза погоды).
  • Во время загрузки данных показывать прогресс бар, в случае ошибки выводить соотвествующее сообщение.
  • Если у пользователя нет доступа в интернет, кнопка выполнить запрос не активна. При его появлении/отсутствии необходимо менять состояние кнопки;
  • Для начала, вывод данных можно делать просто в TextView в более менее читабельном формате. Выводить нужно текущую погоду и информацию из первых 5 элементов в массиве прогноза.
  • Улучшить форматирование вывода данных на свое усмотрение, текущий погоды и прогноза. Оценивается UI интерфейс.

Четвертая домашняя работа

  • Создать модель class Node { long id; int value; List; } и создать схему в которой будет отражаться связь многие ко многим.
  • Сделать экран, на котором будет список всех Node, кнопка добавить Node по нажатию на которую вы должны ввести значение и добавить ее в базу.
  • В списке Node отображается как элемент со значением, background цвет Node зависит от того какие связи у нее есть. Если у нее нет связей, прозрачный, если у нее есть child связи - желтый, если parent связи - синий , если и child и parent связи - красный.
  • По нажатию на Node открывается экран на котором можно удалить существующие связи или добавить новые связи. Это отображается двумя вкладками Родители и Дети.
  • В каждой вкладке сверху элементы с установленными связями и они зеленого цвета. А ниже все остальные - прозрачный цвет. По нажатию на соответсвующий элемент появляется диалог "Удалить/Добавить" связь. (Можно сделать через actionMode)