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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Использование статус-бара для управления приложением http://www.cyberforum.ru/android-dev/thread646223.html
Доброго времени суток! Необходимо вынести некоторые простые функции управления приложением (возможно службой) в удобное место для пользователя. Больше всего устраивает вариант решения этой проблемы в стандартном плеере на 2.3.7: в статус баре (который появляется при разворачивании строки состояния), над разделами "текущие", "уведомления" отображается панелька для управления плеером....
Программирование Android Как установить рекламу AdMob в свое Android приложение? Подскажите пожалуйста, как установить рекламу AdMob в свое Android приложение? Желательно с примером кода или укажите ссылку. Заранее спасибо! http://www.cyberforum.ru/android-dev/thread646183.html
Рисование в Android Программирование Android
Такой вопрос, прочитал http://stackoverflow.com/questions/11126338/android-draw-canvas-view-and-list-view как можно подключить класс для рисования. Делаю тоже самое не работает... Почему? Да и вообще как рисовать непосредственно на View?
Программирование Android Как запустить android virtual device?
я новичок в этом деле .. помогите разобраться. установил eclips под win7 и "android virtual device" ругается что это значет и как решит этот вапрос.. Starting emulator for AVD 'android_4.3' Failed to create Context 0x3005 emulator: WARNING: Could not initialize OpenglES emulation, using software renderer. could not get wglGetExtensionsStringARB could not get wglGetExtensionsStringARB
Программирование Android Странный факт http://www.cyberforum.ru/android-dev/thread646040.html
Здравствуйте. У меня 2 приложения, одно весит 6,5 МВ, а другое – 12. Способ отрисовки графики (Canvas - public class GameView extends SurfaceView implements Runnable) одинаковый и код тоже, отличие только в количестве графических файлов и музыки( android.media.MediaPlayer; ). Но в том, что весит 12 МВ частота кадров стабильнее и быстрее чем в первом (в обоих приложениях стоит ограничение на 25...
Программирование Android AlertDialog Error Всем доброго времени суток! Изучал изготовление своего AlertDialog по учебнику и на одном из сайтов, но увы столкнулся с проблемой, после клика на кнопку вызова диалога эмулятор выдает ошибку, т.к. опыта пока мало не могу понять где ошибка в logcat, не могли бы вы сказать где ошибка, внизу код и текст кошки <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ... подробнее

Показать сообщение отдельно
Hixon10
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 153

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

03.09.2012, 21:28. Просмотров 2967. Ответов 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?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru