Skip to content

fedorez/fdcNews

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Вступительная лабораторная работа

Привет!

Мы очень рады, что вы успешно справились с тестом и решили выполнить вступительную лабораторную работу. Ее цель — выяснить, насколько хорошо вы сможете написать небольшое приложение по заданным условиям.

Авторы наиболее качественных и полных работ будут зачислены на курс.

Важно! Предупреждаем, что публикация материалов финтех-школы — этого документа, инструкций к домашним заданиям, исходного кода работ, скриншотов и т.д. — грозит отчислением из школы. Мы хотим, чтобы и в будущем места на курсе доставались самым мотивированным и талантливым кандидатам — а не тем, кто смог нагуглить материалы прошлого потока.

Работа с Git и GitHub

В курсе финтех-школы — как и в реальной работе разработчика — мы будем постоянно работать с системой контроля версий Git. С ней удобно отслеживать изменения в коде и отменять неудачные, а также синхронизировать общую кодовую базу между всеми участниками команды.

Домашние работы нужно загружать на GitHub. Обратите внимание, что это обязательное требование курса: мы не принимаем материалы на других сайтах (GitLab, Bitbucket), в виде ZIP-архивов, на Google Drive и т.д. Впрочем, если вы читаете этот текст, значит аккаунт у вас уже есть.

В программе курса есть много важных тем, поэтому мы не будем отдельно разбирать работу с Git и GitHub. Если вы чувствуете себя неуверенно в этих вопросах, рекомендуем почитать статьи в интернете или пройти обучающий курс и выполнить предложенные в нем задания (оценка за них не ставится).

Задача

В этой лабораторной работе вам предлагается создать приложение, которое будет, используя API, загружать заголовки новостей и показывать их в виде списка. По тапу на новость из списка переходить к просмотру полной информации по выбранной новости.

Подготовка

Когда вы перешли по ссылке на учебном портале, специально для вас создался репозиторий с названием вида intro-lab-annapetrova. Внутри репозитория есть файл с текстом задания (сейчас вы как раз читаете его). В ходе работы вы будете создавать новые файлы, и их нужно добавлять в этот же репозиторий.

Пока ваш репозиторий существует только на серверах GitHub. Чтобы с ним было возможно работать, его нужно клонировать. Как это сделать, можно узнать в курсе по Git и GitHub, который мы предлагали выше. Задание нужно выполнять в папке репозитория.

Когда вы закончите лабораторную, у вас должен получиться репозиторий с добавленными в него файлами проекта (приложения). Именно в таком виде преподаватели ожидают получить работы. Затем они клонируют ваш репозиторий на свои компьютеры и запустят проект. Закончив работу и загрузив ее в репозиторий, убедитесь, что все работает. Для этого можно повторно клонировать репозиторий в отдельную папку и запустить приложение оттуда.

Источник данных

В качестве источника данных можно использовать https://newsapi.org/

Создание проекта в Xcode

Разработка iOS-приложений обычно происходит в Xcode. Именно эту программу мы будем использовать в нашем курсе. Xcode можно загрузить бесплатно из Mac App Store или из раздела загрузок на портале разработчиков (потребуется бесплатный аккаунт разработчика). Рекомендуем установить последнюю релизную версию.

Итак, мы запустили Xcode и готовы создать новый проект. Выбираем шаблон iOS-приложения — App.

xcode-step-0

Далее указываем название продукта, команду разработки (если есть) и остальные поля (их назначение рекомендуем погуглить). Убедитесь, что в качестве языка выбран Swift, а в качестве интерфейса — Storyboard (SwiftUI использовать нельзя).

xcode-step-1

При сохранении проекта обратите внимание на чекбокс “Create Git repository on my Mac.” Мы рекомендуем всегда отмечать его — даже если над проектом будете работать только вы. Если назначение этой галочки вызывает вопросы, можно пройти курс по Git, который мы упоминали в начале задания. Прямо сейчас отмечать чекбокс не нужно, поскольку репозиторий у нас уже есть. В окне выбора локации выберите клонированный ранее репозиторий.

xcode-step-3

Мы создали проект по шаблону и видим несколько автоматически созданных файлов в проектном навигаторе (если он не отображается, нажмите + 1).

xcode-step-4

(На первый взгляд Xcode кажется большой и сложной программой, но со временем вы в ней обязательно разберетесь! Посмотрите руководство и обзор основных элементов интерфейса, чтобы начать ориентироваться быстрее.)

Сохраняем промежуточные результаты в Git

По мере выполнения работы рекомендуем сохранять изменения — комитить их — в 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 — проверить, что они отображаются на сайте
  • Повторно клонировать репозиторий в отдельную папку и собрать проект из нее — убедиться, что все запускается и работает как надо
  • Отправить ссылку на репозиторий через учебный портал

Желаем успехов!

About

simple news app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages