2015-08-18 3 views
2

Я только начинаю разработку приложений для iOS с помощью Swift (и вообще), и я хочу получить информацию о популярных практиках при создании приложений, требующих связи по произвольным сетям (т. е. не обязательно в одной сети). Я попытался найти это в google, но ответы были не совсем тем, что я искал; надеюсь, кто-то может указать на правильное направление. Я бы не прочь заплатить за услугу, но, к сожалению, я не знаю в первую очередь о бэкэндах и не хочу переплачивать за услуги, которые мне не нужны. Например, я нашел API под названием Parse, но я думаю, что у него слишком много функций, которые не принесут пользу моему приложению. Вот главная предпосылка приложения:Swift - приложение, которое требует связи между телефонами в разных сетях

  1. Есть две версии приложения - один для администраторов и один для сотрудников
  2. админ имеет возможность размещать заметки на центральный список нот для сотрудников см.
  3. Сотрудники могут получить доступ к этому списку и прокрутить его, чтобы выбрать, какой из них они хотят открыть. По истечении определенного количества времени, даты истечения срока действия и удаляются из списка автоматически

Это так просто. Вероятно, не будет слишком много сообщений, отправляемых сразу, поэтому большая база данных не нужна. Мои вопросы таковы:

  • Нужна ли мне база данных для хранения заметок или я могу ее обработать каким-то другим способом?
  • Как обычно обрабатывается связь? Единственное, с чем я столкнулся, это способы общения, когда вы находитесь на одном и том же WiFi или Bluetooth, но я ничего не видел за пределами этого. Как приложение, такое как GroupMe, общается с пользователями?
  • Это более общий вопрос, но как вы можете определить, нужен ли вам бэкэнд или нет? Я все еще немного смущен взаимодействием между интерфейсом и бэкэндом.

Любая помощь по любому из вопросов приветствуется. Мне кажется, что я даже не знаю, с чего начать с такого проекта.

EDIT: Чтобы уточнить, я просто ищу место для начала, а не код или любую реализацию.

+0

Откажитесь от SDK синтаксиса для iOS. Вы можете бесплатно хранить данные на своем веб-сайте и вызывать их из своего приложения. Это будет означать, что вам не нужно создавать свои собственные HTTP-запросы. В Udemy Rob Percival есть отличный курс, который показывает вам, как использовать синтаксический анализ в iOS. – brimstone

ответ

3

Это так просто. Вероятно, не будет слишком много сообщений, отправляемых сразу, поэтому большая база данных не нужна. Мои вопросы таковы:

Нужна ли мне база данных для хранения заметок, или я могу ее обработать каким-то другим способом?

Да, вам нужна какая-то база данных. Это может быть что-то сложное, как MySQL, или что-то простое, как запись файла txt для каждой заметки на диск, причем имя файла является датой примечания.

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

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

Как обычно обрабатывается связь?Единственное, с чем я столкнулся, это способы общения, когда вы находитесь на одном и том же WiFi или Bluetooth, но я ничего не видел за пределами этого. Как приложение, такое как GroupMe, общается с пользователями?

Обычно ваш телефон отправляет HTTP-запрос POST на сервер с некоторым текстом в формате JSON в теле запроса HTTP.

Затем сервер отвечает на большее количество текста в формате JSON в ответе.

В телефоне вы используете NSURLSession для обработки сетевой связи и NSJSONSerialization для кодирования/декодирования содержимого. На сервере будет что-то эквивалентное.

Обычно в тексте HTTP POST JSON будет указано имя пользователя и пароль или какая-либо другая система аутентификации, которая сообщает серверу о том, что пользователь не может делать то, что они пытаются сделать.

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

Parse будет обрабатывать все эти вещи для вас, но это хорошо, по крайней мере, понять, что происходит.

Это более общий вопрос, но как вы можете определить, нужен ли вам бэкэнд или нет? Я все еще немного смущен взаимодействием между интерфейсом и бэкэндом.

Вы знаете, что вам нужен бэкэнд, если вы хотите, чтобы два устройства обменивались данными, не входя в одну сеть WiFi/Bluetooth. Это функция безопасности, которую используют сотовые сетевые операторы (и домашние широкополосные интернет-провайдеры) для предотвращения злонамеренной активности.

Как правило, только коммерческое подключение к Интернету (и коммерческий маршрутизатор) позволяет анонимным входящим сетевым пакетам проходить через телефон или компьютер, подключенный через интернет. Потребительские интернет-соединения позволяют только трафик, поступающий из известного источника (например, если вы запрашиваете у Google некоторые данные, маршрутизатор временно разрешит Google отправлять вам некоторые данные. Но если Google просто отправит некоторые данные без телефона/компьютера в ваш дом просит его, тогда он будет отклонен).

Вы должны быть способны взять то, что я написал, и сделать кучу исследований.

Если вы решили написать собственную систему на PHP, она поставляется с предустановленной ОС X (она должна быть включена), и вы можете получить к ней доступ по IP-адресу с телефона, пока вы находитесь на тот же IP-адрес. Это должно привести к тому, что вы начнете как минимум тестирование/разработку.

Единственная часть, которой у вас нет, является SSL. Начиная с iOS 9 (это почти здесь!) Вам нужно отключить встроенную проверку NSURLSession для SSL, иначе она не позволит вам подключиться к тестовому серверу.

Смежные вопросы