Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Lazy MQTT - Android. Огромные возможности GUI

Тема в разделе "Android приложения (разработка и готовые решения)", создана пользователем minii, 12 мар 2018.

  1. Encrypt

    Encrypt Новичок

    Сообщения:
    45
    Симпатии:
    0
    Сразу же просьба, сделать возможность покупки через webmoney с привязкой к гугл почте, НО без привязки к гуглмаркету, как сделали разработчики Poweramp
     
  2. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Спасибо за отзыв!
    Про таймер себе помечу, но его можно сделать самостоятельно:
    1) по приходе данных запомнить время в переменной
    2) во встроенном коннекте (имя которого начинается с @) есть темы, которые присылают сообщения раз в 1 и 10 секунд
    3) подписать другой Элемент Данных (скажем, с именем mytime) на эту тему, и в нем пересчитывать время, которое прошло
    4) в любой плитке использовать ссылку на этот Элемент Данных по имени со знаком $ в начале (например, в Подвале плитки поставить $mytime) - сам элемент к плитке подключать не нужно - подключен может быть другой элемент
     
  3. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    1) это про слайдер? А надо сделать еще тип элемента с выбором из списка?
    2) подумаю. Но там сделано так, чтобы во-первых иметь очень большие возможности по настройке, а во-вторых не перегружать один экран всеми настройками

    Я вполне осознаю, что приложение сначала выглядит сложновато с непривычки. Но основная идея была - сделать очень гибкий интерфейс с большими возможностями.
     
  4. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Буду курить, как это сделать. А почему Google Play не канает?
     
  5. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Я так понимаю, что в этом случае проверяется подлинность сервера. А клиента - нет, иначе у него тоже придется каждые 3 месяца сертификат обновлять?
     
  6. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    именно, подлинность сервера проверяем в ssl, клиента проверяют по логину :)
     
  7. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Выпустил версию с поддержкой TLS (опционально можно игнорировать проверку серверного сертификата - это дает возможность использовать шифрование без необходимости иметь серверный сертификат, подписанный публичным CA).
     
  8. Encrypt

    Encrypt Новичок

    Сообщения:
    45
    Симпатии:
    0
    Свобода действий это хорошо, но будет лучше, если подсчет времени сделать нативный, а не через медленные яваскрипты. Кстати, какой там движок используется?
    Да слайдер, и выбор из списка тоже пригодится, пытался сделать что-то, но как я понял там в скобках Список выбора (нет) - означает еще не реализовано?
    Опишу задачу для представления общей картины:
    Например, у меня есть вытяжка, которую необходимо включать вручную, и при этом нужно задать мощность и время работы.
    Представляю себе такой вариант настройки плитки.
    Тип: Слайдер
    Ниже появляется кнопка - Добавить слайдер, для возможности добавлять много слайдеров. Таким макаром можно будет даже RGB настроить.
    Настройки слайдера:
    Название(поле ввода): например, Мощность вентилятора
    ID(поле ввода): val значение в скрипте,
    Диапазон(поля ввода) от-до: например, 0 - 100
    Шаг(поле ввода): например, 0.1 или 10
    Тип(выбор): линейный / круговой / выбор цвета (для RGB)

    Пример работы плитки:
    Когда тапнуть плитку, появляется всплывающее окно со слайдером(и). Первой строкой - Название, второй строкой выбранное_значение, третей строкой Линейный слайдер. Для кругового слайдера, выбранное_значение лучше разместить в центре слайдера. В низу окна кнопка - Выбрать/Установить/Отправить
    После, эти выбранные значения передаются скрипту(или сразу отправка json строки), а в плитке по логике надо вывести эти данные красиво. Было бы идеально, если бы в оформлении плиток можно было использовать html/css :)

    По историческим причинам, гуглплей не использую. Мне кажется, чем больше вариантов оплаты тем лучше. Да и куда проще после смены смарта, вбить ящик и код лицензии в проге, Поверамп так уже несколько лет работает без проблем.
     
  9. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Движок Rhino. Не быстро, конечно, но раз в секунду обновить данные - для телефона незаметные расходы.
    Сделаю что-нибудь, типа, переменной, в которой время после обновления в секундах. А форматировать и выводить - как угодно в JS.

    Слайдеры разного вида с шагом, список выбора - что-то такое планировал. Сделаю.
    Выбор цвета есть, слайдерами как-то не визуально будет по-сравнению с ним.

    Делать поддержку проверки лицензионного ключа, его распространения и принятия оплаты - это отдельный не маленький проект. Я согласен, что больше вариантов - лучше, но не готов на это.
    После смены смартфона программа, купленная в Google Play, все равно будет числиться купленной, и вбивать ничего не надо.
     
  10. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Оформление плитки html - имхо, сложные навороты, которыми сложно пользоваться. Тогда проще сделать WebView на весь экран, текст которого генерировать скриптом, а на линки - отправку MQTT. такое сделать можно. Но надо ли?
     
  11. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    По-поводу свободного оформления плиток, рисования в них графиков и всего, чего угодно - сейчас можно использовать MQTT-сообщение с картинкой, которую генерировать на сервере. Позже сделаю еще периодический опрос URL (для картинок).
     
  12. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    Развернул брокер на одном домене, получил сертификат для этого домена, проверил соединение и аутентификацию клиента, работает, в логах брокера вижу активность клиента. Неплохое начало. На другом домене (на другом инстансе у другого хостера) пробросил tcp порт на брокера. В приложении (Lazy MQTT) в настройках соединения меняю домен и по прежнему успешно устанавливается соединение и выполняется аутентификация клиента, и трафик проходит совсем через другой домен.
    minii, Вам похоже совсем безразлично кому выдан x.509 сертификат, что в сабджекте CN совсем не тот что домен с которым устанавливается соединение, искаженное понятие о подлинности однако, про dns атаки Вы наверно не слышали, жаль.
     
  13. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Алексей, мне жаль, что попытавшись сделать поддержку TLS, что вы просили и в чем, как я писал ранее, я плохо разбираюсь, я получаю от вас резкий ответ. Как-будто я вас где-то обманул.
    Пока могу сказать, что я не занимаюсь проверкой сертификата, а отдаю его проверку на откуп стандартной имплементации. Кроме случая, когда вы ставите галочку "не проверять сертификат" в настройках Соединения в моем приложении.
     
    Последнее редактирование: 23 мар 2018
  14. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    Да причем тут конкретная реализация tls или иных методов. Механизм хендшейка никто не отменял.
    Клиент получает от хоста сертификат с публичным ключом и первое что он должен сделать, проверить что сертификат выдан именно этому хосту, а далее приступить к проверке подлинности.
    Предположим брокер - это человек (просто фамилия такая "Брокер") которому вас просили передать деньги, вы его никогда не видели, но вы доверяете документам которые выдает УЦ (паспортный стол в этом примере). Вы встречаете человека, но он не Брокер а Вайнер и вы этого не знаете, он показывает реальный паспорт выданный Вайнеру и подлинность документов не вызывает сомнения и про Брокера вы уже забываете.
     
  15. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Алексей, вы меня не правильно поняли. Мне не нужны недовольство, или покровительственный тон. Я повторюсь, но я вам лично ничем не обязан. Нравится приложение - я очень рад. Не нравится что-то - я готов сделать его лучше, если вы спокойно и вежливо можете объяснить суть проблемы.
    В стиле "у вас все не так, я сейчас объясню как правильно" разговаривать со мной не надо. Это просьба.

    По-поводу TLS - я уже написал свое мнение. Повторюсь: что есть проблема - я услышал. Что я буду смотреть - я уже дал понять. Почему оно так работает - во-первых, мне надо как-то это протестировать. Во-вторых, я пока не понимаю причину, потому что специально я ничего не отключал, и предполагаю, что по-умолчанию соответствие имени хоста в сертификате и соединении должно проверяться в имплементации протокола в Android. В общем, буду смотреть. Если вы хотите и можете помочь - просьба обеспечить тестовыми соединениями: одно с правильным сертификатом, другое - с неправильным. Буду вам благодарен.
     
  16. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    535
    Симпатии:
    63
    Ничего личного, простите что сказал что то обидное.
    Если есть откровенная дыра, я и сказал про это. Незнание закона не освобождает от (c)
    Это ваше личное мнение? или есть спека в которой это указано?
    У меня на минимальный тест (в ротором я не использовал самоподписанный левый сертификат и кривые цепочки) ушло не более 10-ти минут, если разработчик сам не представляет то что он делает, теряется смысл вообще что либо тестировать.
     
  17. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Здравствуйте, господа.

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

    Это позволяет, например, показывать, как давно данные обновились или предупреждать, если они слишком давно не обновлялись.
    Такое можно было сделать и раньше, с помощью встроенного эмулятора MQTT-сервера, который регулярно "посылает" сообщения (т.е. работает как таймер), но менее удобно.

    Вопрос к вам, как пользователям: напишите, у кого что получилось (со скриншотами, а можно конфигурацию приложить) или наоборот, что не получается.
     
  18. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Новая версия 1.0.3 доступна в Приложения в Google Play – Lazy MQTT Free

    Исправлено:
    - теперь можно использовать разные цвета у плиток с одной иконкой;
    - теперь при TLS проверяется имя хоста в сертификате.
    Добавлено:
    - периодический запуск скрипта по таймеру (см. Данные), время с последнего получения данных ($ago и $agotext - см. в описании переменных скрипта. Можно использовать напрямую в полях плиток. Для обновления нужно включить таймер);
    - круговой слайдер (см. тип Плитки);
    - на слайдер можно назначить не только минимум и максимум, но и шаг (см. Плитки).
     
  19. minii

    minii Новичок

    Сообщения:
    34
    Симпатии:
    2
    Анонс следующей версии
    Появится на этой неделе.

    1) в слайдере теперь можно задать цветовой градиент. Линейный слайдер теперь дорисовывается до полного размера цветом фона слайдера
    2) в "Соединении" теперь можно переопределить Client ID (нужно для поддержки нескольких соединений к одному серверу)
    3) сервис теперь работает при выкидывании приложения из памяти. Уведомление в шторке настраивается (всегда/при закрытом приложении)

    11.png
     
  20. Adbokat

    Adbokat Новичок

    Сообщения:
    6
    Симпатии:
    0
    Доброго времени суток всем.
    Вопрос разработчику данного ПО.
    Планируется ли клон данного приложения под IOS ?
     

Поделиться этой страницей