Заказчикам разработки приложений-клиентов под Android
Если вам нужно мобильное приложение, так называемый «клиент», то убедитесь, что вы верно понимаете чего хотите:
- Клиент — это «клиентская» программа, т.е. оконечная сторона системы, с которой взаимодействует пользователь, желающий получить услугу от системы.
- Услугу в системе предоставляет сервер — центральная часть, вычислительная, хранящая общие для всей системы данные.
- А клиент передает серверу запросы пользователя: географические координаты, желаемый цвет, цену, размер товара…. хранящиеся, повторяю — в базе данных сервера.
- И чтобы клиент мог дать серверу запрос — сервер должен иметь интерфейс (API, разработанный кем-то знающим структуру системы, базы данных) — т.е. протокол обмена данными:
- список запросов (HTTP-запросов через Интернет), которые клиенту надо будет отправлять на сервер
- описание параметров запросов и их размерности (единицы измерения): формат GPS-координат, цифровой или текстовый код цвета товара, цена в рублях или может юанях, и т.п.
- и формат ответов сервера с примерами, тут обычно используются текстовые форматы такие как JSON, XML и т.п., в которых структурированным текстом передаются запрошенные клиентом имена и значения параметров: color=red84; price=55.6;currency=rub ……. Это называется «серилизацией» данных — т.е. перевод табличных данных в «серийный» (serial), т.е. в вид последовательных символов.
- обычно ответы web-серверов в Интернет — это текст в формате HTML (такой же структурированный текстовый формат, подвид XML), из которого и показываются web-браузером все эти красивые (и огромные последние годы, 2-5 Мегабайт) странички web-сайтов — но такие странички не имеют структурированного текста данных, которые и нужны приложению-клиенту, чтобы распознать их, поместить в свою локальную базу данных и показать на мобильных экранах смартфонов в нужном вам красивом мобильном и нативном (т.е. родном для операционной системы смартфона) интерфейсе. Разработка интерфейса клиента — это вторая обширная тема, может даже более дорогостоящая, чем обмен данными сервера с клиентами.
Такого типа «клиент» и есть полноценный, т.е. не просто web-браузер встроенный в приложение и показывающий страницы вашего web-сайта, а клиент с доступом к данным в базе данных, позволяющий выбирать товар по параметрам и получать данные этих выбранных товаров. Создание такого полноценного клиента гораздо более сложная задача, и, кстати — не всегда оправдано создание такого клиента, если функционал вашего сервера (web-сайта) — несложный. Тут — решать вам зачем и какой функциональности нужен мобильный клиент.
Т.е. чтобы исполнитель мог для вас разработать «клиент» — вы должны озаботится наличием:
- работающего сервера (с базой данных, скорее всего — иначе какие данные отдавать мобильным клиентам)
- разработкой API сервера
- и его описанием для исполнителя-программиста, т.е. техзадание, которое можно составить с помощью такого приложения.
Более детально почитать о том, кто и что будет нужно для создания своего Интернет-сервиса — можно в этой моей статье.
Когда у сервера нет API — часто всплывает тема «парсинга HTML» (который в любой момент может быть изменен авторами web-сервера), т.е. попыток извлечения (поиска) структурированных данных из неструктурированного текста web-страничек — это смешная, грустная и … глупая тема для нормальных заказчиков и разработчиков. Ну, а мы же с вами не такие глупые 😉