С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Tilesto
6 / 6 / 0
Регистрация: 14.05.2015
Сообщений: 145
Завершенные тесты: 2
#1

Клиент-сервер, Django(Python), MySQL и Java (выбор) - Программирование Android

27.10.2016, 15:55. Просмотров 645. Ответов 16
Метки нет (Все метки)

Всем доброго времени суток.
Задача: Собираюсь сделать клиент-серверное приложение. Делаю для себя (получения скилов по ходу), но если получится нормальное стабильное приложение, то можно и .... пойти дальше)
Описание: Приложение что-то типа интернет-магазина (на самом деле нет, но больше всего похоже. Поэтому здесь и далее рассмотрим именно как магазин).
Принцип работы: Клиент заходит в приложение, в нем видит список магазинов. После клика по магазину - список каких-то товаров в нем. Списки хранятся на удаленной БД. При клике на товар, открыватся активити с описанием этого товара, ценой и т.д.. Это описание в той же БД в другой таблице. Также в приложении есть регистрация, причем два вида зареганных юзеров - посетитель, администратор. Доступна система подписок пользователей, аналогично ленте ВК. Обращения к БД в основном только для чтения. В дальнейшем возможно добавить систему комментариев, ЛС и т.д., но это уже не в скором будущем.

Что надумал: Приблизительный выбор сделал таким:
Приложение - нативное
База данных - MySQL
Среда разработки - Android Studio
Таблицы в БД - магазины, товары, юзеры, админы

Что надо то?
Так как напрямую андроид не подключишь к бд, требуется серверный уровень и, следовательно, серверный язык. Также способ передачи. Отсюда вопросы:
Обязательно ли писать серверную часть на PHP?
Возможно ли на сервере использовать Django+Python?
Данные передавать через JSON или есть еще варианты (кроме xml)?
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
Клиент зашел, увидел список магазинов, список товаров, щелкнул по товарам. Чтобы каждый раз не обращаться к БД для считывания одних и тех же данных, возможно ли эти считанные данные заносить в локальную БД SQLite, а далее с ними работать до тех пор, пока не поступит информацию от сервера, что в удаленной БД появились изменения?

Навыки программирования есть (начальные). Как бы не проблема написать что-то на незнакомом языке. Но проблема в том, что я не могу выбрать. Прошу помощи с выбором, для того, чтобы начать работать в нужном направлении, и зря не тратить время. Например, если сейчас буду учить PostgreSQL, то после долгих часов мозгомучений окажется, что я сделал это зря, так как с заданными требованиями справился бы и MySQL. Может есть готовые решения/движки? Буду рад любой помощи, именно выбора инструментов, а не самой реализации (не прошу рассказать что такое активити, зачем нужны базы данных, как реализовать класс и т.д. и т.п.)

Еще раз общие черты приложения:
- Нативное на Android
- Работа с удаленной базой данных
- Данные из базы в основном для чтения. Количество юзеров ~1-5к (в начале)
- Данные берутся большим куском (несколько товаров в магазине и т.д.)
- Эти данные: список магазинов - список товаров - описание товаров
- Товары и их описания заносят в БД админы магазинов
- У товаров есть фото, которые тоже хранятся на сервере (ссылки в БД)

Заранее спасибо (хотя бы за то, что прочитали до конца))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2016, 15:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Клиент-сервер, Django(Python), MySQL и Java (выбор) (Программирование Android):

Клиент -android, сервер -java app - Программирование Android
Здравствуйте, помогите пожалуйста! Есть Клиент под андроид и сервер на java на pc - когда запускаешь с эмулятора - все работает - сообщения...

Как сделать API на сайте (python+django) для Android приложения? - Программирование Android
Здравствуйте, подскажите пожалуйста пример или как сделать api на сайте (python+django) для android приложения

Клиент-Сервер - Программирование Android
Во вложении фото моей активности. На ней отображается мое местоположение в виде маркера. Как мне отобразить местоположение другого...

клиент-сервер - Программирование Android
Dear All. Я потихоньку изучаю программирование под андроид и вот пришло время думать над такой задачей - а как вообще организовывается...

Сервер и клиент - Программирование Android
Хочу написать простенький сервер, который передает с клиента, то есть с телефона, сообщение по нажатию на кнопку. Передает на сервер,...

Клиент и сервер - Программирование Android
У меня есть TCP клиент андроид и сервер Qt. На сервер все данные нормально приходят но на клиент ответ от сервера(текстовое сообщение) не...

16
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
27.10.2016, 16:03 #2
Цитата Сообщение от Tilesto Посмотреть сообщение
Обязательно ли писать серверную часть на PHP?
Возможно ли на сервере использовать Django+Python?
вообще без разницы что там на сервере
Цитата Сообщение от Tilesto Посмотреть сообщение
Данные передавать через JSON или есть еще варианты (кроме xml)?
если не извращаться то json/xml
Цитата Сообщение от Tilesto Посмотреть сообщение
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
это вопрос не в тот раздел
Цитата Сообщение от Tilesto Посмотреть сообщение
Клиент зашел, увидел список магазинов, список товаров, щелкнул по товарам. Чтобы каждый раз не обращаться к БД для считывания одних и тех же данных, возможно ли эти считанные данные заносить в локальную БД SQLite, а далее с ними работать до тех пор, пока не поступит информацию от сервера, что в удаленной БД появились изменения?
да
Цитата Сообщение от Tilesto Посмотреть сообщение
Например, если сейчас буду учить PostgreSQL, то после долгих часов мозгомучений окажется, что я сделал это зря, так как с заданными требованиями справился бы и MySQL. Может есть готовые решения/движки? Буду рад любой помощи, именно выбора инструментов, а не самой реализации
почему бы это тоже не спросить в профильном разделе, бд?
0
Tilesto
6 / 6 / 0
Регистрация: 14.05.2015
Сообщений: 145
Завершенные тесты: 2
27.10.2016, 16:18  [ТС] #3
Паблито, пардон, решил просто не плодить кучу тем, а спросить в одной)
0
Pablito
27.10.2016, 16:25
  #4

Не по теме:

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

0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1722 / 1265 / 344
Регистрация: 12.01.2011
Сообщений: 5,028
27.10.2016, 16:36 #5
Цитата Сообщение от Tilesto Посмотреть сообщение
Нужно ли разносить админов и юзеров по разным таблицам, или вовсе необязательно?
Не обязательно , может быть в таблице user определенный столбец в котором указано его ранг, из таблицы rang например. Связь 1 к 1.
Таблица Rang
id | range |
1***user
2***admin
Таблица user
id | name | range
1 *** Azdeman ***1 // user
2 *** User *******2 // admin
3 *** User111 ****1 // user
Как то так можно сделать...
1
Tilesto
6 / 6 / 0
Регистрация: 14.05.2015
Сообщений: 145
Завершенные тесты: 2
27.10.2016, 16:44  [ТС] #6
Azdeman, О_о а это ... корректно? Я думал просто создать столбец: 1-админ, null-юзер. Но так было бы слишком много null зачений в таблице. Поэтому 1-юзер, 2-админ было бы неплохо. А тут делать целую таблицу Оо Я просто не знаю хорошо это или плохо, плодить много таблиц, сколько времени/ресурсов тратится БД на ту или иную операцию и т.д.. Ну хотя если углубляться, то это уже мне точно в другой раздел)

А, хотя Вы написали это же. В смысле первую таблицу можно не делать в БД, а просто "на листочке" записать)
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1722 / 1265 / 344
Регистрация: 12.01.2011
Сообщений: 5,028
27.10.2016, 17:09 #7
Цитата Сообщение от Tilesto Посмотреть сообщение
Я просто не знаю хорошо это или плохо, плодить много таблиц,
Много ? таблица range, user ?
Цитата Сообщение от Tilesto Посмотреть сообщение
сколько времени/ресурсов тратится БД на ту или иную операцию и т.д..
Это уже нужно смотреть тесты каждой бд , в интернете есть. Ну как правило , 1 бд выигрывает в скорости обновление данных , а другая в выборке к примеру. И соответственно нужно опираться на то , какие операции будет выполнять ваше приложение. Для интернет магазинов, блогов , каких то сервисов MySQL годный.
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 350
27.10.2016, 19:21 #8
Цитата Сообщение от Azdeman Посмотреть сообщение
Не обязательно
Лучше разнести. Я всегда разношу.
Но Паблито прав, серверную часть стоит обсуждать в другом разделе.
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1722 / 1265 / 344
Регистрация: 12.01.2011
Сообщений: 5,028
27.10.2016, 19:31 #9
Цитата Сообщение от Alexvp Посмотреть сообщение
Лучше разнести. Я всегда разношу.
чем лучше?
0
Tilesto
6 / 6 / 0
Регистрация: 14.05.2015
Сообщений: 145
Завершенные тесты: 2
27.10.2016, 19:57  [ТС] #10
Alexvp, присоединяюсь к вопросу Azdeman, чем лучше-то? Админ это тоже юзер, просто с дополнительными возможностями, и стоит ли из-за этого выносить его в другую таблицу, не знаю(
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 350
27.10.2016, 20:02 #11
Ну коль тут решили обсуждать, то скажу:
1. В интернет-магазине админ (или другой сотрудник компании) не юзер (покупатель). У них совершенно разные цели и задачи, поэтому таблицы могут и должны быть разными.
2. С т.з. безопасности. Чтобы хакеру под видом пользователя сложнее было получить права админа.
0
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
28.10.2016, 14:48 #12
А что разве JDBC не работает под андроид?
Просто заявили что прослойка обязательна...
1
Tilesto
6 / 6 / 0
Регистрация: 14.05.2015
Сообщений: 145
Завершенные тесты: 2
28.10.2016, 21:00  [ТС] #13
_Night_Scream_, прошу прощения. Просто я со своих начальных знаний, со статей в интернет пришел к такому выводу, что надо обязательно делать трех-звенную архитектуру. А о JDBC даже не слышал, пошел гуглить
0
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
28.10.2016, 21:02 #14
Tilesto, вы всё грамотно расписали и в этом правы, я бы низачто не сделал через JDBC напрямую, просто надо знать что есть такое.
1
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 350
28.10.2016, 21:03 #15
Цитата Сообщение от _Night_Scream_ Посмотреть сообщение
А что разве JDBC не работает под андроид?
Если не интересует безопасность сервера, то можно.
Чтобы дважды не вставать
https://habrahabr.ru/post/206790/
1
28.10.2016, 21:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2016, 21:03
Привет! Вот еще темы с ответами:

Клиент-сервер - Программирование Android
Здравствуйте. Возникло желание создать клиент (андоид) / сервер на ПК (java). Принцип работы клиент сервера: 1. На сервере добавляю...

клиент-сервер - Программирование Android
Всем привет, помогите,пжлста, разобраться. Пытаюсь сделать простое клиент-сервер соединение (удп). Сервер запускается, но когда запускаю...

Клиент-сервер (сокеты) - Программирование Android
Пытаюсь написать два приложения: первое запускается на ПК (написано на JAVA и оно же сервер), второе на Android (оно же клиент). Клиент...

Клиент-сервер. Базы - Программирование Android
Здравствуйте. Поясните(нкаидайте ссылкон на инфу), пожалуйста, как организовать клиент-сервер на Android? Как передавать данные в базу и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.