Раздел cделать нужно сдавать через pull request в этот репозиторий.
Делаешь fork, в папке 2020-spring создаешь папку со своим именем. В нее кладешь папку, названную номером домашнего задания.
Коммитишь, пушишь, создаешь pr. Я буду оставлять комментарии (ласковее чем Мартынов) и мерджить, если все ок.
Раздел почитать сдается через устные ответы на лекциях. Каждое занятие я буду случайно спрашивать вопросы с прошлого раза.
Особо принуждать к ответу не стану, но героя-одиночки, который будет отдуваться за всех, тоже не будет.
В папке Questions можно отыскать вопросы с реальных собесов джунов и пару тестовых (для собственного развития).
Чувствуй себя свободно добавлять туда свои вопросы/ответы через pr.
Любая активность помимо домашек приветствуется, я готов помогать, советовать, ревьювить твои тестовые в компании.
По любым вопросам обращайся в личку в телеграмм @M0rtyMerr
29 февраля, ДЗ №1
Сделать:
Реализовать структуру данных Бинарное дерево. Что должно уметь:
Создать приложение, выводящее таблицу сущностей, полученных из сети. Это уже реализовано на лекции, не стесняйтесь сверяться с проектом RickAndMorty.
Главное, проделайте все сами, а не просто копируйте.
Можно использовать любое апи отсюда: https://github.com/public-apis/public-apis
Я, например, взял это - https://rickandmortyapi.com/. можете использовать его же.
Проверьте, что в API:
есть пагинация (вам возвращают ссылку на следующую страницу сущностей или номер следующей страницы)
есть картинки (сущность содержит ссылку на картинку/аватар сущности)
Приложение должно:
выводить таблицу, где каждая ядейка содержит информацию об одной сущности (например, имя и картинка)
при скроле до конца таблицы загружать новую порцию сущностей
при клике на ячейку открывать детальный экран с информацией о выбранной сущности (UINavigationController в гугле)
Добавить зависимость через CocoaPods. Как минимум линтер, но можешь использовать что-то интереснее.
Добавить линтер. Я сделал для тебя конфиг файл с нужными правилами. Его нужно положить в корень своего проекта. Можно спросить, зачем то или иное правило нужно
Добавить поддержку оффлайн режима в приложение. Сохранить в базу загружаемые с API сущности и показывать их, если нет подключения. Можно использовать Realm/CoreData/SQLite
(опционально) добавить в приложение индикатор загрузки следующей страницы данных с API. Долистали до низу таблицы -> показали индикатор активности -> отправили запрос -> дождались ответа -> спрятали индикатор активности
Придумать и реализовать анимацию. Если идей нет, то сделай квадрат с тенью, бесконечно двигающийся по треугольной траектории
Реализовать поиск по таблице сущностей (по имени/тэгам). Обновление таблицы должно быть анимировано. Нужно считать поисковый запрос, получить отфильтрованный массив сущностей и найти его diff с изначальным. Затем к diff применить анимацию insert/delete/reload. Для поиска diff лучше использовать фреймворк
Прочитать
(неправильно в прошлый раз) Что такое method dispatch? Какие виды есть в Swift? Назвать отличия
(неправильно в прошлый раз) Frame vs bounds? Когда bounds.origin не (0,0)?
Что такое CALayer? Зачем нужен? Отличие от UIView?
Что такое Explicit/implicit анимация?
Что такое layer model/presentation? В каких ситуациях у layer model/presentation разные значения?
Кто получает событие первым UIView или GestureRecognizer на нем?
请发表评论