Привет!
Мы очень рады, что вы успешно справились с тестом и решили выполнить вступительную лабораторную работу. Ее цель — выяснить, насколько хорошо вы сможете написать небольшое приложение по заданным условиям.
Авторы наиболее качественных и полных работ будут зачислены на курс.
Важно! Предупреждаем, что публикация материалов финтех-школы — этого документа, инструкций к домашним заданиям, исходного кода работ, скриншотов и т.д. — грозит отчислением из школы. Мы хотим, чтобы и в будущем места на курсе доставались самым мотивированным и талантливым кандидатам — а не тем, кто смог нагуглить материалы прошлого потока.
В курсе финтех-школы — как и в реальной работе разработчика — мы будем постоянно работать с системой контроля версий Git. С ней удобно отслеживать изменения в коде и отменять неудачные, а также синхронизировать общую кодовую базу между всеми участниками команды.
Домашние работы нужно загружать на GitHub. Обратите внимание, что это обязательное требование курса: мы не принимаем материалы на других сайтах (GitLab, Bitbucket), в виде ZIP-архивов, на Google Drive и т.д. Впрочем, если вы читаете этот текст, значит аккаунт у вас уже есть.
В программе курса есть много важных тем, поэтому мы не будем отдельно разбирать работу с Git и GitHub. Если вы чувствуете себя неуверенно в этих вопросах, рекомендуем почитать статьи в интернете или пройти обучающий курс и выполнить предложенные в нем задания (оценка за них не ставится).
В этой лабораторной работе вам предлагается создать приложение, которое будет, используя API, загружать заголовки новостей и показывать их в виде списка. По тапу на новость из списка переходить к просмотру полной информации по выбранной новости.
Когда вы перешли по ссылке на учебном портале, специально для вас создался репозиторий с названием вида intro-lab-annapetrova
. Внутри репозитория есть файл с текстом задания (сейчас вы как раз читаете его). В ходе работы вы будете создавать новые файлы, и их нужно добавлять в этот же репозиторий.
Пока ваш репозиторий существует только на серверах GitHub. Чтобы с ним было возможно работать, его нужно клонировать. Как это сделать, можно узнать в курсе по Git и GitHub, который мы предлагали выше. Задание нужно выполнять в папке репозитория.
Когда вы закончите лабораторную, у вас должен получиться репозиторий с добавленными в него файлами проекта (приложения). Именно в таком виде преподаватели ожидают получить работы. Затем они клонируют ваш репозиторий на свои компьютеры и запустят проект. Закончив работу и загрузив ее в репозиторий, убедитесь, что все работает. Для этого можно повторно клонировать репозиторий в отдельную папку и запустить приложение оттуда.
В качестве источника данных можно использовать https://newsapi.org/
Разработка iOS-приложений обычно происходит в Xcode. Именно эту программу мы будем использовать в нашем курсе. Xcode можно загрузить бесплатно из Mac App Store или из раздела загрузок на портале разработчиков (потребуется бесплатный аккаунт разработчика). Рекомендуем установить последнюю релизную версию.
Итак, мы запустили Xcode и готовы создать новый проект. Выбираем шаблон iOS-приложения — App.
Далее указываем название продукта, команду разработки (если есть) и остальные поля (их назначение рекомендуем погуглить). Убедитесь, что в качестве языка выбран Swift, а в качестве интерфейса — Storyboard (SwiftUI использовать нельзя).
При сохранении проекта обратите внимание на чекбокс “Create Git repository on my Mac.” Мы рекомендуем всегда отмечать его — даже если над проектом будете работать только вы. Если назначение этой галочки вызывает вопросы, можно пройти курс по Git, который мы упоминали в начале задания. Прямо сейчас отмечать чекбокс не нужно, поскольку репозиторий у нас уже есть. В окне выбора локации выберите клонированный ранее репозиторий.
Мы создали проект по шаблону и видим несколько автоматически созданных файлов в проектном навигаторе (если он не отображается, нажмите ⌘ + 1).
(На первый взгляд Xcode кажется большой и сложной программой, но со временем вы в ней обязательно разберетесь! Посмотрите руководство и обзор основных элементов интерфейса, чтобы начать ориентироваться быстрее.)
По мере выполнения работы рекомендуем сохранять изменения — комитить их — в Git. Когда вы отметили чекбокс “Create Git repository on my Mac” при создании проекта, Xcode автоматически закомитил созданные файлы в репозиторий. Последующие изменения нужно комитить вручную. Как часто делать это, решать вам — количество комитов и размер каждого не ограничены.
Чтобы открыть окно создания комита, нажмите ⌘ + ⌥ + C. Слева вы увидите список измененных файлов, а справа — сравнение версий до и после изменения. Внизу вам нужно ввести сообщение комита — обычно в нем кратко описывают проделанную работу. Введите сообщение, но пока не спешите нажимать кнопку Commit Changes.
Если просто создать комит, он будет доступен только в локальном репозитории на вашем компьютере — преподаватели его не увидят. Чтобы комит попал на GitHub, его еще нужно запушить. Xcode сделает это автоматически, если вы поставите соответствующую галочку под полем для сообщения.
Вы можете использовать и другой Git-клиент — например, GitHub Desktop.
- Загружать не больше 20-ти новостей
- Предусмотреть возможность обновлению списка новостей.
- На каждой ячейке должен быть счетчик (число), отражающий количество переходов к просмотру деталей этой конкретной новости.
- При нажатии на каждую новость, она должна открывать новый экран и показывать содержимое
- Приложение должно быть написано на Swift. Без использования SwiftUI. Без использования сторонних библиотек/подов.
- Данные о новостях (заголовок, краткое содержание, ссылка на полную версию) и счетчик просмотров необходимо кэшировать используя UserDefaults
- Закэшированные данные отображаются перед отправлением запроса на обновление данных.
- Закэшированные данные доступны и после перезапуска приложения.
- Постраничная загрузка всех доступных новостей (по 20 новостей).
- Обновлять список новостей с помощью жеста pull-to-refresh.
- Обработка исключений. Например, отсутствие интернет-соединения.
Выполнение данных пунктов увеличивает ваши шансы на поступление в школу. По статистике зачисленные на курс студенты выполняли все или несколько из описанных улучшений.
- Проверить соответствие работы требованиям в задании
- Хотя бы попробовать сделать дополнительные пункты из задания
- Убедиться, что все файлы закомичены
- Запушить комиты на GitHub — проверить, что они отображаются на сайте
- Повторно клонировать репозиторий в отдельную папку и собрать проект из нее — убедиться, что все запускается и работает как надо
- Отправить ссылку на репозиторий через учебный портал
Желаем успехов!