Форум программистов, компьютерный форум CyberForum.ru

Клиент-серверное приложение - посоветуйте архитектуру - Android

Восстановить пароль Регистрация
 
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
10.11.2016, 17:15     Клиент-серверное приложение - посоветуйте архитектуру #1
Всем доброго времени суток.
Пишу клиент-серверное приложение с нуля, поэтому вопросов куча) Это уже вторая тема (первая Клиент-сервер, Django(Python), MySQL и Java (выбор))

Собственно - что как куда. Пытаюсь найти в инете инфу, что-то сделать. Инфа везде почти одна и та же, но не получатеся. То мучался с import org.apache, долго мучался. Потом с HttpUrlConnection, тоже мало понятного. Сегодня нашел более менее понятный пример, но конкретно слег на AsyncTask-ах. Вроде как сделал адекватный сокет на клиенте, но на сервере сделать не смог (ну это мне в веб-форум).

А потом увидел эту статью. И тут как раз обо***ли то, через что я пытался собственно говоря сделать, и набил не один десяток шишек. В этом процессе чуть не умерло желание что-то вообще делать.

На дворе 2016, многие уроки написаны за 2010-12 и тд. А этот срок для программирования просто огромный. Уже много чего есть нового, много чего уже нет. Прошу Вашей помощи, форумчане - помогите выбрать через что вообще делать. Может есть готовые решения/фреймворки и т.д.

Повторюсь - делаю клиент-серверное приложение, по типу интернет-магазина. Клиент с Android смартфона посылает запросы на сервер о том или ином товаре, серверная часть обрабатывает запрос, обращается к БД, и отправляет обработанные данные обратно клиенту.

P.S. В статье написано про Retrofit. Через него делать? Или может еще какие варианты?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 17:15     Клиент-серверное приложение - посоветуйте архитектуру
Посмотрите здесь:

Android Клиент серверное приложение
Клиент-серверное приложение Android
Android Простое Клиент-Серверное приложение
Android Клиент-серверное приложение
Клиент-серверное приложение android Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
10.11.2016, 19:50     Клиент-серверное приложение - посоветуйте архитектуру #2
я пользуюсь AcyncHttpClient, найди на гитхабе, проще простого в освоении

Добавлено через 1 минуту
сервер поднимать и sql базу это уже в другую ветку форума
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
10.11.2016, 20:05  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #3
ExFau$t, ну на счет сервера то да, я понимаю что мне не сюда)
А русская документация етсь по этому AcyncHttpClient? А то, думаю, будет непросто в освоении хд
demixdn
7 / 7 / 2
Регистрация: 31.10.2016
Сообщений: 16
10.11.2016, 20:50     Клиент-серверное приложение - посоветуйте архитектуру #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если по правильному, то изучите курс лекций. Они современные, 2015-2016 года.
https://docs.google.com/document/d/1...zFgBSS9M/edit#

Если хотите, то вот пример такого приложения
https://github.com/ribot/android-boilerplate

Некоторые его части можно выкинуть.
Но все равно, суть в том, что создавать вы будете это приложение долго. Возможно вам стоит обратить внимание на конструкторы приложений. К сожалению ими не пользовался, но такие есть.
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
10.11.2016, 20:57  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #5
demixdn, тоже уже начинаю думать о конструкторах, хотя очень скептически к ним отношусь. А к кроссплатформенным так в два раза больше) Вообще реально ли в них сделать рабочий продукт, который в дальнейшем можно будет использовать в коммерческих целях? Или для такого обязательно надо писать "руками"?

А за ссылку спасибо, буду изучать)
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
10.11.2016, 21:48     Клиент-серверное приложение - посоветуйте архитектуру #6
Ничего там сложного нету, самое трудное - это пуш уведомления, но сейчас тоже делается достаточно просто. Русскую документацию можешь не искать, даже проекты, разрабатываемые российскими стартаперами, имеют только англоязычную документацию, думаю не надо объяснять почему. Если с базой всё так плохо, онлайн переводчик в помощь.
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
10.11.2016, 22:27  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #7
ExFau$t, ок спасибо, погуглю. С английским (куда без него, тем более в программировании) дела более менее нормально. Завтра посмотрю про AcyncHttpClient. А то гитхаб не загружается, не знаю почему(
Так гуглю, но не совсем понимаю, пока руками не потрогаю)
ExFau$t
55 / 55 / 4
Регистрация: 08.05.2012
Сообщений: 448
10.11.2016, 22:53     Клиент-серверное приложение - посоветуйте архитектуру #8
Лучше сервак поставь сначала, чтобы было куда запросы слать, гет запросы можно с сервисов погоды взять, например, или геокод, а вот пост - нет.
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
10.11.2016, 23:28  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #9
ExFau$t, да, это проблемка хд) Хостинг есть, все есть, осталось только все написать )
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
12.11.2016, 20:26     Клиент-серверное приложение - посоветуйте архитектуру #10
Цитата Сообщение от Tilesto Посмотреть сообщение
Клиент с Android смартфона посылает запросы на сервер о том или ином товаре, серверная часть обрабатывает запрос, обращается к БД, и отправляет обработанные данные обратно клиенту.
И какой этап этой цепочки вызывает трудности?
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
12.11.2016, 21:38  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #11
Alexvp, в самом понимании - нет трудностей. Трудности в реализации. Так как никогда этого не делал, не знаю даже с чего начать. Вроде что-то нарыл, что нужно/можно делать через сокеты. Мол в клиенте прописать ip сервера и порт, это еще вроде как понятно как сделать. А на сервере нужно написать процедуру (как я понял), которая будет "слушать" этот порт и в случае чего обрабатывать данные. Вот это я понятия не имею как сделать. К тому же на сервере должен, как я понимаю, стоять движок. Делать на WP и т.д. не хочется, а если буду писать с нуля (в ютубе есть поэтапное создание на php), то потом все равно завалюсь на этих сокетах. Ну тут мне надо уже плодить темы в веб-части этого форума)
Как-то так

Да и на клиенте как делать, через что. Почитал лекцию (кидали выше). Лоадеры, АсинкТаск-и, и прочая лабуда, насколько я понял, сложна в понимании и еще и мало актуальна. Сейчас читаю RxJava (RxAndroid) и потом буду Retrofit. Тоже понятия не имею с чего начать, хотя общие принципы работы вполне понятны.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
12.11.2016, 21:47     Клиент-серверное приложение - посоветуйте архитектуру #12
А в чем вы специализируетесь? Или это ваш первый проект?
Я бы начал писать с серверной части, например, на php + mysql. Литературы тьма, трудностей не должно быть. Когда научитесь отправлять запрос с браузера и получать ответ от сервера, то переходите к этой процедуре на java. На память, там кода всего строчек 25-30 без всяких библиотек.
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
12.11.2016, 23:41  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #13
Alexvp, запрос браузера, это какой именно? Получить данные с БД или еще что? Простыми GET POST php ?)

Я ни на чем не специализируюсь, только недавно решил связать свою жизнь с программированием) Стажируюсь как C# программист + Oracle, а для себя занимаюсь немного веб-девом, немного пишу на андроид. Возникла неплохая идея для приложения, решил сделать. Даже если не получится/не выгорит, то будет опыт, так как клиент-сервер - это маст хэв в наше время (имхо).

Ну ок, я Вашу мысль понял) Сам к ней склоняться начал. Буду разбираться с серверной частью, уже только потом к клиентской перейду (и полягу на реактивном программировании))).
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
13.11.2016, 08:41     Клиент-серверное приложение - посоветуйте архитектуру #14
Цитата Сообщение от Tilesto Посмотреть сообщение
запрос браузера, это какой именно? Получить данные с БД или еще что? Простыми GET POST php ?
Для начинающего слишком тяжелый проект выбрали.
Для начала попробуйте создать тестовый сайтик на php, в котором будет одна форма с одним полем и кнопкой отправки методом, например, POST. Так же сделайте скриптик обработки с занесением в базу данных и передачей обратно в браузер результата занесения. Это позволит вам понять в живую процессы в связке клиент-сервер. Когда разберетесь, потом начнете накручивать разные штучки, в том числе клиента на андроиде.
И не гонитесь за библиотеками, все это можно сделать несколькими строчками кода.
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
13.11.2016, 12:35  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #15
Alexvp, ну все не так уж темно хд) На одном из своих простых сайтов реализовал ситему пользователей, т.е. регистрацию и аутентификацию (юзеры конечно в БД). Поэтому начальные представления есть)
За библиотеками гонюсь - объясню почему. Просто хочется сделать все сразу и красиво (знаю что это неправильно, но пока избавиться от такого подхода не могу). Например. На ютубе есть пошаговые понятные уроки, как написать свой движок сайта на php. Но если я его напишу, то мне придется потом писать защиту и т.д. и т.п. А если использовать готовые рещения, такие как WordPress, Joomla или еще то, то там уже все это есть, нужно лишь разобраться как это все работает. Т.е. легче купить велосипед по частям и собрать его, чем самому делать его с нуля (отливать металлические части, делать колеса и т.п.). Или другой пример, на стажировке сказали занести объекты в БД (ORM). Сам мучался, что-то реализовывал несколько дней/недель, а потом всю мою работу сделали за 5 минут в EntityFramework. Как бы я, грубо говоря, писал свой EF с нуля, а зачем, если он уже написан и гораздо лучше моего варианта)
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
13.11.2016, 13:09     Клиент-серверное приложение - посоветуйте архитектуру #16
Цитата Сообщение от Tilesto Посмотреть сообщение
Просто хочется сделать все сразу и красиво
Лучше день потратить и научиться летать, чем всю жизнь на брюхе ползать
Я не призываю каждого писать собственные фреймворки и, тем более, свой язык программирования (что в принципе можно сделать), но надо все же знать устройство велосипеда, даже не собирая его из запчастей.

Но не настаиваю, каждый в жизни выбирает свои грабли. Мне проще в клиент-серверных приложениях самому написать код, чтобы понимать и контролировать каждый шаг. А вот для вспомогательных вещей, например, работа с камерой, я вполне использую библиотеки.

Кстати о защите кода движка сайта. Готовые решения, типа джумлы, ломаются на раз-два. Ваш же уникальный код, если в нем нет грубейших ошибок по безопасности, вряд ли кто-то сломает. Профи на это не станут тратить время, а школоте он окажется не по зубам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2016, 13:16     Клиент-серверное приложение - посоветуйте архитектуру
Еще ссылки по теме:

Клиент-серверное приложение с чатом Android
Android Клиент-серверное приложение android
Клиент-серверное приложение Android

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

Или воспользуйтесь поиском по форуму:
Tilesto
5 / 5 / 0
Регистрация: 14.05.2015
Сообщений: 123
Завершенные тесты: 1
13.11.2016, 13:16  [ТС]     Клиент-серверное приложение - посоветуйте архитектуру #17
Alexvp, понял, спасибо за совет) Афоризм хороший)
Буду разбираться с серверной частью (уже начал))
Тему можно close)
Yandex
Объявления
13.11.2016, 13:16     Клиент-серверное приложение - посоветуйте архитектуру
Ответ Создать тему
Опции темы

Текущее время: 02:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru