Advertisement
  1. Code
  2. iOS SDK

Простые приложения для iOS на основе местоположения с помощью шаблона appyMap

Scroll to top
Read Time: 6 min

() translation by (you can also view the original English article)

What You'll Be Creating

Введение

Что лучше заработать $5,000, работая десять часов в день или заработать $3,000, поработав всего один? Время — деньги и это самое главное, что у нас есть сейчас.

Использование шаблона приложения даёт два преимущества:

  • экономит время
  • вы быстро учитесь чему-то новому

Чтобы собрать приложение, используя шаблон, вы вводите ваши данные, изменяете лого, настраиваете шрифты, цвета… и это всё.

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

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

Но мы хотели сделать путеводитель по нашему городу, не так ли? Давайте посмотрим, как это сделать за десять минут с помощью appyMap.

Обзор

С помощью appyMap вы можете создать своё собственное приложение, чтобы помочь пользователям найти интересные места, сгруппированные по категориям, такие как справочное приложение по магазинам или ресторанам, путеводитель по городу или любое другое применение, которое требует показа мест на карте. Вы можете найти шаблон приложения appyMap на основе местоположения для iOS на CodeCanyon.

Структура appyMap очень проста и состоит из четырех экранов: Home/Главный, Section/Раздел, Detail/Детали и Directions/Направления (который работает на Apple Maps).

appyMap screens Home Section Detail and DirectionsappyMap screens Home Section Detail and DirectionsappyMap screens Home Section Detail and Directions

На главном экране показаны основные разделы, внутри которых есть интересные места.

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

Теперь давайте посмотрим, как вставить наши данные в приложение.

Ввод данных

Есть два способа ввода данных: через локальные файлы Plist или CloudKit, облачную платформу Apple. У каждого варианта есть свои плюсы и минусы.

Вариант 1: Локальные файлы Plist

Файлы Plist — это файлы, которые вы добавляете в свое приложение. Это документ структурированных данных, он не похож на файлы электронной таблицы.

Editing a Plist in XcodeEditing a Plist in XcodeEditing a Plist in Xcode

Вы можете редактировать файлы Plist с помощью Xcode. Это самый простой способ и полезен, когда вам просто нужно изменить или добавить небольшие объемы данных. Другим способом добавления данных в файл Plist является преобразование электронной таблицы и её импорт в Xcode. Это очень удобно, когда вам нужно контролировать большой объем данных.

Использование файлов Plist для отправки данных вашего приложения даёт вам два преимущества:

  1. Для правильного функционирования вашего приложения не потребуется подключение к Интернету.
  2. Меньше задержка: Plist данные вашего приложения будут загружаться мгновенно при загрузке, а данные, хранящиеся в облаке, всегда будут иметь некоторую задержку.

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

Настройка главного меню

Внутри проекта Xcode, который поставляется с appyMap, откройте файл Main.plist — этот файл определяет главное меню. Внутри этого файла мы видим список пунктов, которые определяют категории («разделы») интересующих мест. Каждый элемент имеет три поля:

  • id: уникальный идентификатор раздела, используемый также установления порядка элементов
  • name: название раздела
  • isFree: если установлено «yes», раздел бесплатен, иначе он заблокирован и может быть разблокирован при покупке в приложении.

Каждый раздел может иметь значок, который должен иметь тоже имя файла, что и имя раздела (см. рисунок ниже).

Mainplist specifies sections icons are in separate image filesMainplist specifies sections icons are in separate image filesMainplist specifies sections icons are in separate image files

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

Достопримечательности

После того, как вы настроили основные разделы, вы можете начать добавлять достопримечательности. Для каждого раздела appyMap будет искать файл Plist с тем же именем файла, что и название раздела. Так, например, если у вас есть раздел под названием «Houses», appyMap будет искать файл с именем Houses.plist, он прочитает достопримечательности для раздела Houses из этого файла.

Эти файлы с достопримечательностями имеют следующие поля:

  1. id
  2. name
  3. description
  4. latitude
  5. longitude
  6. tel (optional)
  7. time (optional)

В миниатюрном изображении места, приложение будет искать изображение в формате JPEG с именем файла, состоящим из имени раздела, за которым следует идентификатор достопримечательности. Итак, если у вас есть три места в разделе Museum, вам нужно три изображения с названиями Museum1.jpg, Museum2.jpg и Museum3.jpg.

Вариант 2: CloudKit

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

Apple CloudKit dashboardApple CloudKit dashboardApple CloudKit dashboard

Если вы решите использовать CloudKit, ваша информация больше не будет локальной, она будет прочитана из облака. Это позволит вам изменять базу данных достопримечательностей без необходимости выпуска новых версий приложения. Тем не менее, приложению будет требовать подключение к Интернету, чтобы показать достопримечательности.

Использование CloudKit

Используя свою учетную запись Apple, вы можете использовать CloudKit для управления вашими данными. Если у вас есть учетная запись Apple Developer, вы можете управлять CloudKit с помощью панели CloudKit.

Чтобы подключить ваше приложение к CloudKit, вам нужно перейти на страницу разработчика (Developer Page) и включить iCloud:

Enable iCloud on the Developer PageEnable iCloud on the Developer PageEnable iCloud on the Developer Page

Затем вернитесь к Xcode, выберите вашу цель и enable iCloud для своего приложения:

Enable iCloud for your appEnable iCloud for your appEnable iCloud for your app

Теперь вам нужно добавить два типа записей для хранения данных приложения. Начиная с главного типа — Main, для хранения данных меню разделов: перейдите на панель CloudKit, выберите Record Types, нажмите кнопку «плюс» и назовите запись «Main». Теперь нам нужно воссоздать по сути ту же структуру, что и в файле Plist. Нажмите Add Field... и создайте четыре поля:

  1. name (type: String)
  2. pic (type: Asset)
  3. order (type: Int(64))
  4. isFree (type: Int(64))

Это немного отличается от формата Plist, потому что мы создали дополнительное поле под названием «pic», которое будет содержать значок для каждого раздела.

В конце у нас должна получиться такая таблица:

appyMaps Main table in CloudKitappyMaps Main table in CloudKitappyMaps Main table in CloudKit

Затем вам нужно создать тип записи для каждого раздела, отображаемого вашим приложением. Например, если в вашем приложении есть два раздела (скажем, «Houses» и «Monuments»), вы создадите две соответствующие записи под названием «Houses» и «Monuments» (как на скриншоте выше).

Чтобы создать другой тип записи, начните с нажатия кнопки +. Укажите название записи вашего раздела (в данном случае «Houses»):

Теперь нажмите Add Field... и создайте поля, как и раньше. На этот раз поля, которые вы должны создать, следующие:

  1. name (type: String)
  2. description (type: String)
  3. pic (type: Asset)
  4. coordinates (type: Location)
  5. tel (type: String)
  6. time (type: String)
  7. order (type: Int64)

Обратите внимание, что поля tel (телефон) и time (время) являются необязательными. Если они заполнены, они появятся на экране деталей, иначе они не будут показаны.

Подсказка: Быстрый способ получить координаты на карте

Ввод местоположений для appyMap включает в себя поиск большого количества широт и долгот. Чтобы быстро найти широту и долготу данного местоположения, просто найдите его в Google Картах, щелкните правой кнопкой мыши по интересующему вас месту и выберите Что здесь?. Это покажет все данные о месте, а также его широту и долготу. Вы можете просто скопировать и вставить эти значения в поля lat и lon в CloudKit или в файл Plist.

Getting map coordinates from Google mapsGetting map coordinates from Google mapsGetting map coordinates from Google maps

Заключение

Из этого урока вы узнали, как начать работу над новым приложением на основе местоположения, используя шаблон appyMap с CodeCanyon. Вы узнали, как работает шаблон и как добавить свои данные о местоположении в шаблон.

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

Но это легко. Чтобы создать приложение с помощью шаблона, просто введите свои данные, настройте цвет, шрифты и логотип... и скомпилируйте! Ваше приложение может быть готово всего за несколько часов.

Есть сотни других шаблонов приложений для iOS на CodeCanyon Пойдите и проверьте их! Вы можете сэкономить много часов работы.

Удачи вам со следующим приложением! И тем временем, ознакомьтесь с некоторыми из наших других уроков по iOS на Envato Tuts+.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.