Репозиторий с домашними работами финтех-школы Тинькофф,
В данном приложении два экрана. На первом создается объект, реализующий интерфейс 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)