Все материалы лекций лежат в 2020-spring/lectures
Раздел cделать нужно сдавать через pull request в этот репозиторий. Делаешь fork, в папке 2020-spring создаешь папку со своим именем. В нее кладешь папку, названную номером домашнего задания. Коммитишь, пушишь, создаешь pr. Я буду оставлять комментарии (ласковее чем Мартынов) и мерджить, если все ок.
Раздел почитать сдается через устные ответы на лекциях. Каждое занятие я буду случайно спрашивать вопросы с прошлого раза. Особо принуждать к ответу не стану, но героя-одиночки, который будет отдуваться за всех, тоже не будет.
В папке Questions можно отыскать вопросы с реальных собесов джунов и пару тестовых (для собственного развития). Чувствуй себя свободно добавлять туда свои вопросы/ответы через pr. Любая активность помимо домашек приветствуется, я готов помогать, советовать, ревьювить твои тестовые в компании.
По любым вопросам обращайся в личку в телеграмм @M0rtyMerr
Реализовать структуру данных Бинарное дерево. Что должно уметь:
- добавлять элемент
- удалять элемент
- искать элемент
- выполнять балансировку
- работать с разными типами данных
- Protocol Oriented Programming
- Closures
- Automatic Reference Counting (ARC)
- Copy-on-write
- Swift.org/swiftbook.ru - документация по Swift с подробными примерами
- iOS-Developer-Roadmap - что должен знать junior/middle/senior ios разработчик. Вопросы и ссылки на статьи
Проверка домашки Делаем приложение
Создать приложение, выводящее таблицу сущностей, полученных из сети. Это уже реализовано на лекции, не стесняйтесь сверяться с проектом RickAndMorty.
Главное, проделайте все сами, а не просто копируйте.
Можно использовать любое апи отсюда: https://github.com/public-apis/public-apis
Я, например, взял это - https://rickandmortyapi.com/. можете использовать его же.
Проверьте, что в API:
- есть пагинация (вам возвращают ссылку на следующую страницу сущностей или номер следующей страницы)
- есть картинки (сущность содержит ссылку на картинку/аватар сущности)
Приложение должно:
- выводить таблицу, где каждая ядейка содержит информацию об одной сущности (например, имя и картинка)
- при скроле до конца таблицы загружать новую порцию сущностей
- при клике на ячейку открывать детальный экран с информацией о выбранной сущности (UINavigationController в гугле)
- Что такое SOLID?
- Зачем нужны strong, weak, unowned ссылки?
- Чем асинхронность отличается от многопоточности?
- Что такое GCD? Расскажите про виды очередей?
- Стиль кода
- Автоматическая проверка стиля кода - научимся в следующий раз
- Туториалы по iOS
- Что такое POP? Доклад Александра Зимина
- Добавить зависимость через CocoaPods. Как минимум линтер, но можешь использовать что-то интереснее.
- Добавить линтер. Я сделал для тебя конфиг файл с нужными правилами. Его нужно положить в корень своего проекта. Можно спросить, зачем то или иное правило нужно
- Добавить констрейнты (autolayout), приложение должно нормально выглядеть на всех айфонах
- Что такое deadlock/livelock? Приведи пример, как добиться в iOS
- Что такое KISS и DRY?
- Перечислите все способы работы с optional в Swift?
- В чем разница Dependency Injection и Dependency Inversion? Пример?
- Что такое method dispatch? Какиой бывают в свифте?