Git Product home page Git Product logo

004-006_2021's Introduction

004-006_2021

Домашнее задание на 4-6 занятие

Как работать с домашними заданиями?

Новый формат домашек, который будет включать себя работу 3-х занятий. Почему так? Лично каждому могу объяснить если есть вопросы по этому поводу. Поверхностный просмотр домашки то есть review на качество кода и чистоту буду стараться проводить один раз в неделю и оставлять комментарии. Полный просмотр домашки будет по итогу трех занятий.

Как будут оцениваться задания?

Будет смотрется :

  • соответствие выполненных заданий, за каждый не выполненный пункт задания -0,1...1 балла.
  • верстка на соответствие на маленьком и большом экране, не соответствие -0,1...1 балла.
  • стиль и качество кода (названия переменных, отступы, переносы, названия классов) -0,1...1 балла.
  • фатальные ошибки (краш приложения, невозможно попасть на нужный экран, runtimeError) -0,1...1 балла.
  • ошибки/варнинги в консоли -0,1...1 балла;

Что входит в 3 занятия:

Тема Описание
Работа с кастомными ячейками. AutoLayout Отображение данных в таблице с кастомными ячейками, разметка UI компонентов с помощью AutoLayout.
MVC. Блоки кода. Использование принципов MVC при проектировании приложения, работа и использование блоков (closures) в проекте.
Динамическая высота ячеек. Передача данных между контроллерами. Работа с ячейками, которые будут динамически менять свою высоту от контента, передача данных между разными контроллерами.
  • Все на Autolayout. Верстка должна красиво выглядить как на iPodTouch так и на 12 Pro. Если верстка будет отличаться будут вычитаться 1 балл.
  • Делаем красиво паппочки как на паре показывал
  • Используем StackView для верстки

Задание с 4 занятия (5 баллов):

Переделать/сделать копию соц сети facebook/instagram/vk (профиль, лента) со следующими изменениями:

  1. Добавить экран входа через логин пароль. (Валидация и прочее 5 занятие) 1.1 Добавить в приложении возможность разлогиниться и войти заново 1.2 (Не обязательное задание) Добавить регистрацию.
  2. Динамические записи на экране своей стены. (нужно, чтобы были три вариации: текст+картинка, текст, картинка. С динамическим размером)
  3. Используем одну ячейку для разных типов новостей.
  4. Добавить экран профиля (отдельно можно сразу засунуть в TabBarController)

Задание с 5 занятия (5 баллов).

  1. Делаем рефакторинг проекта по стилю с MARK(lifecycle, init, private functions, public functions, Delegates, Datasources) // MARK: - , применяем архитектуру MVC(Model, View(в нашем случае это Storyboard), Controller) и рефакторим наши модули, добавляем логическое разделение и ставим комментарии (Outlets, properties, private properties) // Outlet properties и т.д.. https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html https://coderoad.ru/35963128/Swift-%D0%BF%D0%BE%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5-MARK

  2. Во viewController, вы просто добавяляли некий генератор для моделей (профиль, лента). Теперь задача стоит в том, чтобы создать некий сервис для получения этих данных из вне. В нашем случае - это будет как на паре. Получить данные нужно будет через @escaping closure, в функции получения сделайте задержку перед получением sleep(3), конфигурирование данных и обновление таблиц производим после получения данных. https://docs.swift.org/swift-book/LanguageGuide/Closures.html

  3. Соблюдаем style guide https://github.com/raywenderlich/swift-style-guide

Задание с 6 занятия (5 баллов).

  1. При ошибке валидации отображать UIAlertController с текстом ошибки.
  2. Для каждой пары логин пароль (читай юзера) своя инфа как на стене, так и о профиле (минимум 3 юзера)
  3. Логин и пароль валидируется: логин всегда email, все что не email пропускать не должно; пароль не меньше 6 символов, только латиница, содержит хотя бы 1 цифру.
  4. Редактирование статуса пользователя через делегат на новом экране
  5. Использовать TabBarController для экрана профиля и ленты.

Ссылки

Итого:

У вас должно быть приложение которое начинается с экрана авторизации логина и пароля, при успешном вводе данных происходит переход на экран новостей, где каждую новость можно выбрать и посмотреть детально. Дополнительно у вас есть экран профиля, где вы можете поменять какую-то информацию о себе и посмотреть ее подробнее.

004-006_2021's People

Contributors

iikhsan avatar zikibikk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.