/mobile-citymap-ios

:green_apple: Step-by-step iOS project for learning and practicing iOS development

Primary LanguageSwiftMIT LicenseMIT

City Map - iOS application (Swift)

В данном репозитории расположены различные материалы для пошагового создания с нуля простого мобильного приложения City Map для платформы iOS, на языке программирования Swift.

City Map - мобильное приложения для просмотра базовой информации о различных городах.

Основные функции:

  • Постраничная навигация;
  • Загрузка данных из сети;
  • Оффлайн доступ к данным;
  • Отображение городов на мировой карте.

Для чего?

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

Что нужно, чтобы начать?

Для того, чтобы начать изучать нативную мобильную разработку под iOS, Вам понадобится:

  • Компьютер, работающий под управлением операционной системы Mac OS (High Sierra и выше);
  • Среда разработки XCode 9.2;
  • Базовые знания английского языка (для чтения материалов);
  • Базовые навыки работы с Git;
  • Базовые знания языка программирования Swift 4.

Установка и настройка

Задания

Мы предлагаем Вам познакомиться с нативной разработкой под платформу iOS, путем последовательного выполнения заданий по созданию приложения CityMap.

Часть 0

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

Результат, который должен получиться: GitHub | Zip

Полезные материалы:

Часть 1

Данное задание требует создать список элементов (не более 10) с открытием экрана с детальным описанием после нажатия на конкретным элемент списка. Каждый элемент списка это объект класса (структуры) с некоторым набором атрибутов и методов. Объекты класса как и сам список создаются программно в рамках приложения. Объект класса (структуры) должен содержать такие поля как Name и Description.

Результат, который должен получиться: GitHub | Zip

Пример результата:

Полезные материалы:

Часть 2

В рамках данного задания требуется провести модификацию приложения полученного в Часть 1 (Part 1) - заменить заданные вручную данные на полученные из сети в формате JSON.

Реализовать загрузку и отображение картинок (можно использовать сторонние библиотеки, к примеру Kingfisher) как для каждого элемента списка, так и в рамках экрана с детальным описанием.

Приложение должно проверять наличие интернет соединения и сообщать о его отсутствии при попытке сделать запрос в сеть для загрузки данных.

Ресурс для получения данных: https://api.myjson.com/bins/7ybe5

Результат, который должен получиться: GitHub | Zip

Пример результата:

Полезные материалы:

Часть 3

В рамках данного задания требуется организовать работу с базой данных. Полученные данные в рамках Часть 2 (Part 2) должны сохраняться в БД, а после, в ситуации с отсутствие интернет-соединения/ошибкой при загрузке данных из сети, доставаться из нее и отображаться пользователю.

Полезные материалы:

Часть 4

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

Пример результата:

Полезные материалы:

Результат

Финальный результат доступен в master ветке и в качестве Zip-архива.

Для запуска приложения, не забудьте выполнить команду pod install в консоли, чтобы подтянуть все внешние зависимости.

Q & A

Если у Вас возникли какие-то вопросы или предложения, как улучшить материал - дайте нам знать. 🏆 👍

Другие варианты решения:

Дополнительно, Вы можете ознакомиться с реализацией данного приложения для каждой отдельной платформы, на нативных для этой платформы технологиях: