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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.78
Hixon10
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 141
#1

Архитектура приложения ирк-клиент для андроид - Android

03.09.2012, 21:28. Просмотров 2912. Ответов 5
Метки нет (Все метки)

Доброго времени суток.
Я решил написать в первый раз в своей жизни приложения для android – irc клиент.
Опыта написания под эту платформу у меня нет, да и вообще никогда ничего крупного я не разрабатывал. В связи с этим, у меня возникли проблемы с архитектурой приложения.
Прочитав статью, я понял, что в приложениях под андроид используется паттерн mvvm. В качестве видов используются layout-ы, в качестве ViewModel используются наследники класса Activity, а в качестве моделей – наследники классов ContentProvider и Service.
Немного поразмыслив, я пришёл к тому, что в приложение будут следующие layout: главное окно, окно настроек (там будут конкретные пункты настроек, например, основные настройки, настройки текста и т.д.), окно каналов (вероятно, все каналы и приватные разговоры будут реализованы в одном окне с помощью tab).
Как я понимаю, под каждый из этих layout нужно создать ViewModel и модель?
С другой стороны, подумав, я понял, что мне нужны, как минимум, следующие классы для полноценной работы приложения:
1) Класс Irc, который будет реализовывать основные операции: коннект на сервер, отправка сообщения, прием сообщения, авторизация и т.д. Кстати, вроде бы все операции с сетью нужно выносить в отдельный поток?
2) Класс StringParser, который отвечает за парсинг строк, полученных от сервера или клиента. Класс определяет, что нужно сделать. Например, если пришла команда от сервера 450 – показать человеку список, или, например, если человек написал в чат /msg NICKNAME msg, то нужно открыть окно личной беседы NICKNAME и отправить msg. На вход главного метода в этом классе поступает строка, а на выходе ожидается действие, которое нужно где-то совершить, и какой-то массив информации.
Не очень понятно, как представить эту информацию (действие и информацию). Можно, конечно же, просто создать какой-нибудь массив, но это вроде бы не лучший вариант.
3) Класс Сommands, который, наверное, должен запустить новый поток (класс Irc), который будет работать с сетью. Далее этот класс, наверное, будет получать данные от клиента и сервера, отправлять их классу StringParser и вызывать те команды, которые нужно.
4) Вроде бы нужны классы, которые будут реализовывать такие действия, как редактирование настроек, отображение списка ников и т.д. Однако я думаю, что все эти классы – это типичные представители Модели в паттерне MVVM.

Итак, это было предисловие. Что вам не нравится в том, что я сказал? Как исправить, что делать?
Вопросы:
1) Как пристроить классы Irc, StringParser, Commands в паттерн MVVP?
2) Если классы Irc, StringParser, Commands – это хелперы, то какой жизненный цикл приложения? Человек заходит в программу, грузится основное окно, и, я думаю, создается объект класса Commands. Он, в свою очередь, создает объект класса Irc, который должен работать в новом потоке. Что дальше? Все действия пользователя в моделях перенаправлять на объект класса Commands?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2012, 21:28     Архитектура приложения ирк-клиент для андроид
Посмотрите здесь:

Android Андроид-клиент для прямой трансляции видео с события
Обновление приложения для Андроид Android
Android Нужен билдер для изготовления андроид-приложения
Архитектура клиент серверного приложения Android
Android Иконка запуска для приложения Андроид
Android Назовите приемущества клиент-серверного андроид приложения, над веб приложением
Создание приложения для андроид Android
Замена флеш для андроид приложения Android
Android Подскажите программу для прототипирования приложения на андроид (дизайн)
Android Бот для андроид-приложения
Android Как создать онлайн-карту для андроид приложения?
Android Архитектура клиент-серверного приложения с off-line режимом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
03.09.2012, 21:40     Архитектура приложения ирк-клиент для андроид #2
если есть опыт программирования на java:
почитайте про GOF паттерны + книжка Голощапова по программированию на андройде. - это порог входа.
после этого потренируйтесь писать приложения работающие с сетью, а потом уже беритесь за свой проект.
Hixon10
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 141
03.09.2012, 21:46  [ТС]     Архитектура приложения ирк-клиент для андроид #3
Цитата Сообщение от YAUHEN Посмотреть сообщение
если есть опыт программирования на java:
почитайте про GOF паттерны + книжка Голощапова по программированию на андройде. - это порог входа.
после этого потренируйтесь писать приложения работающие с сетью, а потом уже беритесь за свой проект.
Опыта на JAVA нет, но я немного писал на c#.
Спасибо за совет, посмотрю, что это за книга.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.09.2012, 21:48     Архитектура приложения ирк-клиент для андроид #4
Цитата Сообщение от Hixon10 Посмотреть сообщение
Как я понимаю, под каждый из этих layout нужно создать ViewModel и модель?
да, каждое окно - это активити.
а вот моделей может и вовсе не быть, особенно если иметь ввиду только ContentProvider и Service. хотя модель, это более общее понятие.

Цитата Сообщение от Hixon10 Посмотреть сообщение
все операции с сетью нужно выносить в отдельный поток?
да.


Цитата Сообщение от Hixon10 Посмотреть сообщение
Вроде бы нужны классы, которые будут реализовывать такие действия, как редактирование настроек, отображение списка ников и т.д. Однако я думаю, что все эти классы – это типичные представители Модели в паттерне MVVM.
PreferenceActivity, ListActivity и т.д. и это не модели, а ViewModel.


Цитата Сообщение от Hixon10 Посмотреть сообщение
Все действия пользователя в моделях перенаправлять на объект класса Commands?
BroadcastReceiver
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
05.09.2012, 21:16     Архитектура приложения ирк-клиент для андроид #5
Цитата Сообщение от V0v1k Посмотреть сообщение
BroadcastReceiver
надеюсь это была неудачная шутка?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.09.2012, 22:36     Архитектура приложения ирк-клиент для андроид #6
нет, он предназначен именно для обработки событий
Цитата Сообщение от Hixon10 Посмотреть сообщение
Например, если пришла команда от сервера 450 – показать человеку список, или, например, если человек написал в чат /msg NICKNAME msg, то нужно открыть окно личной беседы NICKNAME и отправить msg.
Yandex
Объявления
05.09.2012, 22:36     Архитектура приложения ирк-клиент для андроид
Ответ Создать тему
Опции темы

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