В данном репозитории расположены различные материалы для пошагового создания с нуля простого мобильного приложения City Map для платформы iOS, на языке программирования Swift.
City Map - мобильное приложения для просмотра базовой информации о различных городах.
- Постраничная навигация;
- Загрузка данных из сети;
- Оффлайн доступ к данным;
- Отображение городов на мировой карте.
Если вас когда-либо интересовала нативная разработка для мобильных устройств на платформе iOS и Вы хотели бы попробовать себя в этом, то вы можете попробовать начать изучение используя материалы из данного репозитория.
Для того, чтобы начать изучать нативную мобильную разработку под iOS, Вам понадобится:
- Компьютер, работающий под управлением операционной системы Mac OS (High Sierra и выше);
- Среда разработки XCode 9.2;
- Базовые знания английского языка (для чтения материалов);
- Базовые навыки работы с Git;
- Базовые знания языка программирования Swift 4.
Мы предлагаем Вам познакомиться с нативной разработкой под платформу iOS, путем последовательного выполнения заданий по созданию приложения CityMap.
В рамках данного задания требуется создать новый проект с одним экраном. При необходимости добавить к нему Splash screen, иконки и задать цветовую схему приложения.
Результат, который должен получиться: GitHub | Zip
Полезные материалы:
Данное задание требует создать список элементов (не более 10) с открытием экрана с детальным описанием после нажатия на конкретным элемент списка.
Каждый элемент списка это объект класса (структуры) с некоторым набором атрибутов и методов. Объекты класса как и сам список создаются программно в рамках приложения.
Объект класса (структуры) должен содержать такие поля как Name
и Description
.
Результат, который должен получиться: GitHub | Zip
Пример результата:
Полезные материалы:
- Create a Table View
- Implement Navigation
- Anatomy of Constraint
- Working with Constraints in Interface Builder
В рамках данного задания требуется провести модификацию приложения полученного в Часть 1 (Part 1) - заменить заданные вручную данные на полученные из сети в формате JSON.
Реализовать загрузку и отображение картинок (можно использовать сторонние библиотеки, к примеру Kingfisher) как для каждого элемента списка, так и в рамках экрана с детальным описанием.
Приложение должно проверять наличие интернет соединения и сообщать о его отсутствии при попытке сделать запрос в сеть для загрузки данных.
Ресурс для получения данных: https://api.myjson.com/bins/7ybe5
Результат, который должен получиться: GitHub | Zip
Пример результата:
Полезные материалы:
В рамках данного задания требуется организовать работу с базой данных. Полученные данные в рамках Часть 2 (Part 2) должны сохраняться в БД, а после, в ситуации с отсутствие интернет-соединения/ошибкой при загрузке данных из сети, доставаться из нее и отображаться пользователю.
Полезные материалы:
В рамках данного задания требуется добавить отдельную страницу с картой, на которой будут отображены метки городов полученных из JSON координат.
Пример результата:
Полезные материалы:
Финальный результат доступен в master ветке и в качестве Zip-архива.
Для запуска приложения, не забудьте выполнить команду pod install в консоли, чтобы подтянуть все внешние зависимости.
Если у Вас возникли какие-то вопросы или предложения, как улучшить материал - дайте нам знать. 🏆 👍
Дополнительно, Вы можете ознакомиться с реализацией данного приложения для каждой отдельной платформы, на нативных для этой платформы технологиях: