Показаны сообщения с ярлыком Mobile. Показать все сообщения
Показаны сообщения с ярлыком Mobile. Показать все сообщения

пятница, ноября 08, 2019

Игрушечка и Android

Собирался соорудить андроидный вариант программки LastFM Data - ну, нет там ничего похожего для ручной отправки данных на сервис Last.fm, ни в каком виде. Мне-то сильно хотелось данные от тамошнего Шазама отправлять - программка намного лучше той, что на Windows-системах.
Набрал разной литературы по разработке для Андроида и стало это выливаться во что-то такое долгоиграющее (много чего надо освоить и изучить) и монструозное (для частной задачи придётся делать почти полнофункциональное приложение).
После размышлений вспомнился обмен данными в приложениях Microsoft, которые присутствуют в обеих рассматриваемых системах. На этом и решил было остановиться: из Шазама на телефоне отправляю данные в OneNote, на компьютере копирую данные в клипборд и с помощью давно реализованной функции "Scrobble data from Clipboard" получаю искомый результат. Регулярку только немного надо подправить – андроидный Шазам суёт в данные для обмена ещё и URL на какой-то ролик.…
При немного более внимательном рассмотрении задачи, обнаружились средства для синхронизации буферов обмена на ПК и Андроиде. Там и отдельные программы, и расширения для Хрома – почти на любой вкус. Гугль также попутно рассказал, что MS даже собиралась свою систему синхронизации делать. Ещё осенью прошлого года собиралась, может, и до сих пор собирается. Smile with tongue out
Посмотрел на разные варианты и остановился вот на программке CliptoPro – с её использованием добавляется всего два действия к обычным при работе с данными Шазам: скопировать данные на телефоне и заскробблить данные из буфера обмена на ПК.



В итоге теперь не надо плющить мозги всеми этими кривыми Xamarin’ами от MS и Андроидной Студией от Google. Хотя, поупражняться с Kotlin в последней было бы интересно, но всё остальное сопутствующее… В другой раз как-нибудь.

воскресенье, мая 25, 2014

Игрушечка-3 или Универсальные приложения.

Модное направление - как бы из одного кода получать приложения как для Windows 8.1 - десктоп, планшет – так и для смартфонов под Winphone 8.1.

clip_image001

Что называется, уговорили, черти красноречивые… Пришлось запустить вторую версию программки, теперь в технике “универсального” приложения. 

Microsoft для изготовления таких приложений выпустила специальное обновление для Студии 2013, которое, в общем-то, нормально в работе помогает - шаблоны проектов, ссылки на общие файлы, конвертация предыдущих проектов и т.п.

Самое большое, что пришлось переделывать – это вызов страниц типа “About program”, “Settings” и т.п. В предыдущей версии (для Windows) программы для этого использовались страницы типа SettingsFlyout с вызовом через системные средства:

2.settings

В телефонном API таких средств не находится, поэтому пришлось делать отдельные страницы типа Page и запускать их через системное меню:

form-2-green-2

Самое крупное, до чего не додумались почему-то в Microsoft – это условная компиляция XAML, наподобие #if … #endif в C#. Очень скоро выяснилось, что без этого жить сильно сложно - внешний вид в win- и wp-приложениях может (иногда и должен) сильно различаться: расположение и оформление контролов, даже разный их набор… Можно, конечно, разрулить кодом, но тогда зачем XAML?

Хорошие ребята, всё же, до нужного решения додумались - XAML Conditional Compilation. C этим решением возможны конструкции наподобие такой:

clip_image001

Студия, правда, не сильно это понимает, талдычит об ошибках там и сям и неправильно рисует внешний вид страниц в конструкторе. Иногда приходится по-разному называть контролы - по мнению Студии, имена используются дважды… Увеличивается количество строк в ресурсах для локализации… При сборке приходится дополнительно запускать очистку решения - но эти неудобства перекрываются тем, что не нужно писать массу "художественного" - для отрисовки - кода (которого и без этого хватает).
Выяснились некоторые другие проблемы отрисовки на телефоне некоторых элементов – AppBarButton, ComboBox.

Ещё выяснилось, что “просто так” шрифт для разных телефонов не масштабируется. Иногда на большом –  шестидюймовом - телефоне можно некоторые надписи и не рассмотреть.

В случае надписей “при полях ввода” достаточно установить стандартный стиль:

 

clip_image001

 

Для “заголовков”, которые хочется видеть “пожирнее”, стили нужны разные:

 

clip_image002

 

В итоге получается достаточно пристойно на разных устройствах. Становится хуже, если начать крутить в настройках телефона размер шрифта - можно на максимуме получить наползающие друг на друга строки и т.п. Как с этим бороться - ХЗ. Скорей всего, и не стоит: которые крутят на максимум - ССЗБ.

 

В связи с малыми размерами телефонов пришлось добавить ещё один способ ввода регулярных выражений – загрузку из текстового файла (попытка набить с клавиатуры закончилась на втором переключении на спецсимволы…). Файл со всеми актуальными - известными мне на сегодня - выражениями повесил на сайт с описанием программы. И с планшета, и с телефона получилось этот файл загрузить на устройство и прочитать текст.

 

Гораздо смешнее оказалась ситуация с получением данных о проигрываемой музыке от других программ. Этот режим стал для меня лично основным режимом использования программы: слушаю на планшете, например, калифорнийское джазовое радио через турецкую программу RADYO,  периодически нажимаю кнопку шаринга и отправляю данные на Last.fm. Буквально 4 движения-нажатия. Набралось несколько и других программ, через которые иногда слушаю музыку.

Во второй, универсальной, версии, расширил перечень принимаемых при обмене форматов в попытке получить дополнительную информацию. Получилось извлечь нужную информацию из данных от программ  jamendo и 22tracks, в которых тоже есть неплохая музыка. Но всё это в Windows-окружении.

В телефонном магазине, как оказалось, музыкальных программ, которые обмениваются по стандартному протоколу, практически и нет.

Те программы, аналоги которых на Windows работают как требуется, для телефонов либо отсутствуют, либо обмениваются только “текстом” с адресом страницы. Обмен в "нормальном" виде, с информацией о треке - только с Твиттером и Фейсбуком, чистый хардкод.

В принципе, для телефонов есть пара клиентов Last.fm, передающих информацию о проигрываемых треках, однако не все проигрыватели пользуются стандартными средствами и скробблеры их не понимают. Так что, для статистики на last.fm они потеряны.

 

Из функций программки, в итоге, телефону достаются только ручная набивка данных в форме и скробблинг по файлам на диске. До появления программ, разработанных под WinPhone 8.1, вовсе не обязательно “универсальных”.

 

Страница с описаниями -  https://sites.google.com/site/dyakovkm/lastfmuniwrite

 

Программы можно взять в магазинах:

 

  

среда, января 29, 2014

Игрушечка.

Была у меня всегда (думаю, лет 8 уже) программка для "ручной" отправки данных на сервис Last.fm – если, например, хочется добавить к своей статистике трек, услышанный по радио, на youtube и т.п. Нашлась где-то библиотека под .NET с открытыми исходниками, и между делом соорудил такую программку (тем более, там и делать-то особо нечего…).
Конечно, основной способ пополнения музыкальной статистики – “скробблеры” для медиаплееров и до появления планшета под Windows 8 их вполне хватало и программкой пользоваться приходилось довольно редко. Но при попытке найти скробблер для metro-приложений был весьма озадачен их полным отсутствием. На WP8 есть, а на Win8 – нету… Даже популярная Shazam для распознавания мелодий функции отправки данных на сервис не предлагает. Смешно…
Пришлось поупражняться немного в сооружении “магазинных” приложений для Win8.1 и с какой-то попытки адаптированную под metro-интерфейс программку приняли в магазин Windows под гордым названием LastFM Writer. Ну, приняли – и хорошо, может, кому пригодится…
Сегодня получаю письмо, что программка-то - практически супер-пупер:
Your app "LastFM Writer" has been tested and rated by the BestWindows8Apps.net. Feel free to use Editor's pick award on your web page to show your visitors how highly we value your app.

Ну вот, так и придётся какие-то усовершенствования вносить…Turtle

четверг, января 05, 2012

Попытка смотреть кино на Windows Phone 7, продолжение.

Как же, всё-таки, вывернуться из объятий Большого Брата и посмотреть кино на телефоне? Ясно, конечно, как – переконвертировать .avi-файлы в .mp4 самостоятельно. Поиск даёт не так уж и много вариантов, из десятка испытанных остановился на двух конвертерах:

image

и

image

Первый имеет много вариантов конвертации, больше всего мне подошли варианты для HTC Android (у меня HTC Mozart) – изображение получается чёткое, размер файла уменьшается почти в 3.5 раза. Однако изображение несколько вытянуто по вертикали, а время конвертации очень велико даже на процессоре i7 с 8-ю потоками команд.

Второй конвертер, напротив, никаких вариантов не имеет вовсе, но результаты показывает отличные: при небольшом (5-10%) увеличении размера файла время обработки в 2-2.5 раза меньше, чем у первого, при отличном качестве изображения. Неудобство одно – нет пакетной обработки файлов. Правда, поковырявшись, можно сделать ту же обработку, в т.ч. пакетную, при помощи утилиты ffmpeg.exe, которая и используется конвертером. При этом последняя версия утилиты работает ещё раза в три быстрее. Палец вверх

В общем, привет Большому Брату… Дразнюсь

Technorati Теги: ,,

Попытка смотреть кино на Windows Phone 7

Качаем откуда-нибудь .avi-файлы (других не бывает почти) и делаем "синхронизацию" видео на телефон.
Очень долго Zune пережёвывает эти файлы (40 % процессора i7, используются все 8 потоков команд!, длится действо примерно 20-25% от времени проигрывания видео).
Перекодировались файлы с похожими характеристиками (размер, битрейт и т.д.) и качеством изображения (на мониторе в WMP).
Результаты "синхронизации" различаются радикально (таблица). И никаких настроек по этому поводу в Zune нет…
Большой брат без нас всё знает, бля...

Исходный файл

Перекодированный

Результат

clip_image001

 

clip_image002

 

Размер перекодированного файла немного меньше исходного, качество изображения вполне соответствует исходному (как на телефоне, так и на мониторе).

clip_image003

 

clip_image004

 

Размер перекодированного файла почти втрое меньше исходного, качество изображения совсем не похоже на исходное (как на телефоне, так и на мониторе). Смотреть такое можно только при очень большом желании.

Technorati Теги: ,

четверг, октября 30, 2008

Sharepoint, Outlook и Windows Mobile

Навели (заказчик, кстатиsmile_wink) на мысль использовать сабжевую комбинацию для документирования взаимодействия (получение заданий, отчёт о выполнении) с заказчиками - одним или несколькими, связанными или независимыми. Сделать оказалось довольно просто.

Настройка системы:

  1. На узле у заказчика (личном узле работника или ещё каком...) создаётся список типа "Задачи" с именем, например, "Задачи для Иванова И.И."
  2. Там же создаётся список типа "Календарь" с именем "Выполнение заданий Ивановым И.И."
  3. Оба списка подключаются к Outlook (Действия -> Подключиться к Outlook), при подключении папкам даются имена "Задания от ХХХ" и "Выполнение заданий ХХХ" соответственно.
  4. На мобильное устройство под Windows Mobile v.5+ (смартфон, PPC) устанавливается , настраивается синхронизация задач и календаря устройства с настольным компьютером.

П.п. 1-3 выполняются по всем работодателям.

Методика работы:

  • Те задания из папки "Задания от ХХХ", выполнение которых требуется трассировать, переносятся (правой кнопкой мышки, скопировать) в основной список задач Outlook, с которым выполняется синхронизация для мобильного устройства.
  • При выполнении задания запускаем на устройстве трассировку задачи, после окончания останавливаем и сохраняем результат в календаре устройства.
  • После синхронизации с настольным компьютером результаты трассировки (помечены категорией "[tracking report]") переносим в соответствующую папку "Выполнение заданий ХХХ".

В результате заказчик выдаёт задания и контролирует ход их выполнения через интерфейс своего Sharepoint-узла, а работник взаимодействует с Outlook'ом и своим мобильным устройством. При отсутствии мобильного устройства трассировку, собственно, можно делать и "вручную" внесением записей в календарь "Выполнение заданий ХХХ".

Примечание. Задачи должны иметь непустые поля дат начала и окончания, в противном случае синхронизация с устройством не проходит (по крайней мере, так у меня на Vista sp1, Outlook 2007 и qtek 3810 с WM5)

четверг, июня 07, 2007

Time Tracker

Довольно давно соорудил для собственных нужд (и в порядке освоения технологии) программку ВреТра (TimTra), выполняющую трассировку времени выполнения разных задач. Даже MS программка понравилась smile_regular

По результатам собственных испытаний (постоянно пользуюсь, иногда полезноsmile_wink) поразмыслил и сделал вторую версию. Заодно (в порядке дальнейшего освоения технологии) скомпилировал вариант для Pocket PC (в эмуляторе вполне работает, с текстами программы ничего не делал - просто сформировал проект для PPC и включил в него ссылками тексты для смартфона).

Пользуюсь сам, может, ещё кому понадобится... Просмотры и закачки программы на SOFT@Mail.Ru

воскресенье, июня 18, 2006

Indigo(WCF) & Win Mobile 5.0

Не нашлось способа подключиться к WCF-сервису в программе для Windows Mobile 5.0.

Облом происходит на строчке
EndpointAddress address = new EndpointAddress (svcUri, null);
Рассказывает, что cannot convert from 'System.Uri [g:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0WindowsCE\System.dll]' to 'System.Uri'
Получается, что эти самые URI в "большом" FW и в CF - совсем уж непохожие.
В общем, опять недоделка...
Бум пока через веб-сервис, по старинке.

понедельник, марта 27, 2006

MSMQ on Windows Mobile 5

Решил попользоваться означенной фигнёй.
Скачал дистрибутив, установил – не работает :-(
Порылся в Гугле, выяснилось, что это у многих так. Но поправимо – надо руками активировать сей девайс:

[DllImport("coredll.dll",CharSet=CharSet.Unicode)]
public static extern IntPtr ActivateDevice(string lpszDevKey, int dwClientInfo);
...
IntPtr id = ActivateDevice(@"Drivers\BuiltIn\MSMQD", 0);
...

После этого хозяйство подаёт признаки жизни.

Дальше сделал попытку создать очереди и сунуть в них сообщения – ну, по примерам в MSDN и проч. литературе.
private void Testmenu_Click(object sender, EventArgs e) {
Qname = @"FormatName:DIRECT=OS: DkmServ\qtek";
Qname = @".\Private$\ttrqueL";
Qname = @".\ttrqueP"; MessageQueue.GetMachineId(".");
if (!MessageQueue.Exists(Qname)) {
msgs = MessageQueue.Create(Qname);
} else {
msgs = new MessageQueue(Qname);
}
msgs.Send("Hello, Прювет");
} catch (Exception err) {
MessageBox.Show(err.Message, err.GetType().Name);
}
}

Выяснилось, что можно оперировать только с приватной очередью, все прочие вариантыпадают. Да ещё с сообщением о невозможности вывести сообщение в связи с отсутствием какой-то нужной для этого сборки.
В общем, очередная недоделка. Пущай полежит до следующей версии. Программки на одной машине как-нить и без MSMQ согласую.

воскресенье, марта 05, 2006

Секреты, едрёныть :(

Возился с задачами Outlook на десктопе и на мобиле. Всё хорошо и красиво, синхронизируются, можно что-то записать, записанное хранится.Но только на первый взгляд. На второй взгляд – неясно, как синхронизируется: идентификаторы на десктопе и на мобилке друг на друга вовсе не похожи. Где-то ещё таблицы должны храниться...Кроме того, добавляемые пользовательские свойства (даже с одинаковыми именам) не пересылаются. Вот же блин!