- Windows Phone Marketplace и ПО с открытым исходным кодом: детальный разбор ситуации
- Открытый код приложений windows phone
- Погружаемся в Windows 10 Mobile. Как писать и отлаживать программы для новой ОС
- Содержание статьи
- Обзор архитектуры
- Инструменты разработчика
- Способы создания приложений для Windows 10 Mobile
- Инструменты для работы с унаследованными проектами
- Xakep #213. FUCK UAC
- Подключение смартфона
- Реальный пример
- Датчики
- Запуск
- Итоги
- Microsoft loves Open Source
- Юрий Язев
Windows Phone Marketplace и ПО с открытым исходным кодом: детальный разбор ситуации
Посетителей: 1553 | Просмотров: 1736 (сегодня 0)
Сегодня многие информационные ресурсы опубликовали вводящую в заблуждение информацию о том, что якобы корпорация Microsoft запретила публикацию приложений с открытым исходным кодом (Open Source apps) в магазине приложений Windows Phone Marketplace.
На самом деле ситуация немножко другая, и сейчас я постараюсь её прояснить…
Статьи такие как «В магазине приложений Windows Phone запретили продажу программ с открытым кодом» и им подобные были опубликованы многими новостными ресурсами после публикации записи в блоге сотрудника компании Red Hat Яна Вилдебоера (Jan Wildeboer). В сообщении указывалось на упущение (оплошность) Редмонда по поводу программного обеспечения, опубликованного в Windows Phone Marketplace, подпадающего под лицензию GPLv3. Однако такое упущение вовсе не вина Microsoft. Некто, использующий ник Mellon, на личной странице объясняет суть проблемы:
Кажется, что автор сообщения игнорирует весьма очевидный факт по поводу того, что лицензии GPLv3 и LGPLv3 сами по себе запрещают использование подпадающего под данные схемы лицензирования программного обеспечения, находящегося в магазинах приложений, подобных Windows Phone Marketplace или Apple App Store. Это одно из усовершенствований в третьей версии лицензии GPL по сравнению со второй – GPLv2. Запрет является весьма специфическим (касается лишь приложений, подпадающих под схему лицензирования GPLv3) и не распространяется на лицензии GPLv2, Apache или BSD.
Согласен, забавно смотрится, когда компании наподобие Microsoft выставляют в качестве виновника всего, чтобы только не случилось, однако то, что на самом деле здесь происходит, является виной как раз Фонда бесплатного ПО (FSF, Free Software Foundation). В частности, именно FSF настоял добавить в лицензионное соглашение GPL специальный пункт о тивоизации. И это, в общем-то, хорошо. Однако если вы хотите запустить ПО подпадающее под лицензию GPLv3 на тивоизационном аппаратном обеспечении, вам сначала нужно будет взломать ПО самого устройства. Вы можете свободно продавать ПО подпадающее под лицензию GPLv3 в специализированных магазинах ПО, но только в том случае, если такой магазин отвечает лицензионным требованиям GPL, а магазин Microsoft – Windows Phone Marketplace – в данном случае не отвечает требованиям лицензии GPL.
Теперь можно было бы переключиться обратно на корпорацию Microsoft, и снова сказать что-то плохое в адрес софтверного гиганта, что якобы его магазин приложений не отвечает лицензионным требованиям GPL, однако учитывая то, насколько мягко и лояльно они отнеслись к ребятам, взломавшим их мобильную платформу Windows Phone 7 (на самом деле, Редмонд даже предложил последним сотрудничество) – мало кому придёт в голову это делать. В данном случае все камни рациональнее будет направить в «огород» компании Apple.
Интересно ещё и то, что в четверг представитель Редмонда заявил в интервью информационному ресурсу ZDNet, что Microsoft в будущем не исключает ситуацию пересмотра её политики относительно публикации приложений в Windows Phone Marketplace:
Разработчики приложений под мобильную платформу Windows Phone руководствуются сразу несколькими лицензиями, подпадающими под термин Open Source: это BSD, MIT, Apache Software License 2.0, MS-PL, и другие лицензии с похожим уровнем разрешений. Время от времени мы пересматриваем своё лицензионное соглашение Application Provider Agreement, основываясь на обратной связи с нашими клиентами и разработчиками, и в следующих версиях мы планируем рассмотреть возможность модификации нашего соглашения для соответствия ПО основанному на дополнительных видах лицензирования с открытым исходным кодом.
Вот и всё, по сути, «буря в стакане» на пустом месте.
Открытый код приложений windows phone
1.Вопрос:И кто нибудь может объяснить, как работать с памятью телефона? К примеру открывать и сохранять файлы, создавать папки и т.д.?
Ответ:Работать с кусочком памяти телефона который является песочницей для программы
http://blog.zwezdin.com/ru/201
2.Вопрос:А не подскажите, как можно получить исходный код страницы сайта?
Ответ:Обычный GET запрос.
3.Вопрос:Кстать, кто знает что насчет нативного кода? Что-то раньше говорили про возможность использования COM.
Ответ:Взаимодействовать с неуправляемым кодом могут только OEM’ы.
4.Вопрос:Как зарегистрировать (или как там) страницу настроек, чтоб в Settings в Application Settings было видно?
Ответ:На данный момент никак, используйте отдельную страницу в своем приложении.
5.Вопрос:Подскажите, как можно в XNA приложение добавить в ресурсы текстовый файл или файл с параметрами(не настройки приложения), а потом считать его в программе?
Ответ:Я в своем проекте использую Application.GetResourceStream. Этот метод возвращает StreamResourceInfo, оттуда можно вытащить поток через свойство Stream. Но боюсь что с XNA это не получится, хотя для них обоих Application статичный класс, но попробовать стоит. И да, главное в свойствах самого файла поставить Build Mode на Content.
Вот приведу пример использования:
var stream = Application.GetResourceStream(new Uri(путь_к_файлу_относительно_пакета, UriKind.Relative)).Stream;
6.Вопрос:Как мне сделать блок с крупным текстом?Простой TextBlock выводит только в одну строчку.
Ответ:Просто выставьте свойство TextWrap = Wrap
7.Вопрос:Есть ли в WP7 что-то типо имени устройства, или имени владельца? По аналогии с WM 6.5 (CurrentUser\ControlPanel\Owner ключ Name)
Ответ:Не имя, но уникальный идентификатор, причем анонимный (не по Сеньке шапка простому разработчику знать имя пользователя)
string as string;
string realid = id.Substring(2, 32); //иначе будет неуникально
8.Вопрос:Насколько просто сломать приложение WP7 (*.xap)? Приложение написанные на .net, к примеру, редактируются в блокнотике, отдельным софтом можно просмотреть исходный код.
Ответ:Относительно просто для установки на разлоченный девайс
9.Вопрос: Есть ли какие-то способы защиты кода? По аналоги с обфуксацией в C#.
Ответ:Та же самая обфускация работает и на WP7. Preemptive Dofuscator с версии 4.9 умеет обфусцировать целые XAP.
10.Вопрос: Где и каким образом лучше хранить настройки приложения? На WM 6.5 пользовался готовым классом для работы с ini файлами, файл конфигурации хранил в папке программы.
Ответ:IsolatedStorageSettings или Isolated Storage. Первый вариант предпочтительней для небольших данных, т.к. сериализуется в XML.
11.Вопрос:Реально ли реализовать продажу приложений без AppHub? Хотелось бы сначала запустить продажи «локально», скажем на основе привязке серийника к какому-либо параметру КПК
Ответ:Непродвинутый пользователь (а их большинство) пошлет лесом. «Я должен ‘разлочить’ устройство извращенным методом, скачать непонятно что непонятно откуда, да еще и заплатить непонятно куда. «
12.Вопрос:Почему при использовании WebClient моё приложение зависает, даже на отдельном потоке.
Ответ:Текущая реализация WebClient работает в UI потоке приложения. Используйте HttpWebRequest.
Программы с открытым исходным кодом
Погружаемся в Windows 10 Mobile. Как писать и отлаживать программы для новой ОС
Содержание статьи
Есть мнение, что в реальной жизни смартфоны с ОС от Microsoft встречаются так же часто, как люди с отчеством «Артёмович». Странная (мягко говоря) политика «Корпорации зла» в отношении седьмого и восьмого семейств мобильной операционной системы отвратила множество пользователей от экспериментов с «окошками» для смартфонов, и сейчас корпорация всерьез взялась за исправление своего имиджа в этой пользовательской нише. Как подпольный фанат Microsoft я надеюсь, что у них все получится — «десятка» шагает по планете, ее главный козырь — одно ядро для всех платформ, и поэтому у нее есть все шансы перетянуть на себя хорошую часть мобильного рынка. А как программист я с удовольствием сделаю для тебя вводную статью по разработке под эту мобильную ось, чтобы ты всегда был готов к росту ее популярности :).
Обзор архитектуры
Благодаря общему ядру и системе выполнения приложений UWP однажды написанное приложение будет работать на всех девайсах под управлением Windows 10. В этот диапазон входят:
- настольные компьютеры;
- серверные системы — ОС Windows Server 2016;
- ноутбуки — MS Surface Book;
- планшеты — MS Surface Pro;
- смартфоны — Lumia;
- игровые приставки — Xbox One;
- очки дополненной реальности — MS HoloLens;
- настенные планшеты — MS Surface Hub;
- умные часы — MS Band 2.
Список внушительный. Кроме того, UWP не ограничивается только исполнением прикладных программ, также она на ядерном уровне поддерживает работу драйверов. Это позволяет создавать драйверы, которые функционируют на различных устройствах, при условии, что конкретный компонент, для которого предназначен данный драйвер, один и тот же.
UWP поддерживает драйверы как уровня ядра, так и пользовательского уровня. Подсистема включает интерфейсы драйверов устройств (Device Driver Interface — DDI), из числа которых драйвер для UWP может использовать.
Но это все не избавляет разработчика от подгонки интерфейса под определенные платформы и разрешения экрана. В каких-то особенных случаях, возможно, это и не понадобится.
Инструменты разработчика
Для написания, отладки, развертывания и тестирования приложений под Windows 10 Mobile тебе понадобится Visual Studio 2015 (кто бы сомневался). Этим летом вышел третий апдейт. Категорически рекомендую! Основной его багфикс — это уменьшенное потребление памяти по сравнению со вторым апдейтом.
Также тебе понадобится Windows 10 Anniversary Update SDK: он включает все необходимые инструменты для разработки приложений под весь парк устройств, работающих на Windows 10. Если же используется VS 2015 с третьим обновлением, тогда в нее уже входит новейший SDK.
Одно из главных новшеств — это чернила Windows (Windows Ink). С помощью этого API можно двумя строчками кода добавить поддержку пера. Для этого существуют два объекта управления: InkCanvas и InkToolbar.
Новый Cortana API упрощает реализацию управления голосом. Компонент Cortana Actions в новом API позволяет создавать новые фразы/выражения.
Биометрическая аутентификация Windows Hello теперь стала доступна веб-разработчикам в браузере Edge.
Средство для моделирования пользовательских интерфейсов Blend for Visual Studio 2015 предоставляет расширенные возможности построения интерфейса по сравнению с VS. С его помощью на языке XAML можно создавать макеты всех поддерживаемых приложений: прикладных, веб, универсальных, мобильных и так далее. Также он содержит конструкторы для дополнительных задач, среди них создание анимации и управление поведением элементов.
Способы создания приложений для Windows 10 Mobile
Основной способ создания приложений для смартфонов с Windows 10 Mobile — это разработка универсальных (UWP) приложений (свиток Visual C# → Windows → Universal мастеры создания проекта).
Однако он не единственный. Как ты знаешь, в Visual Studio 2015 встроен Xamarin, с его помощью тоже можно создавать приложения для Windows 10 Mobile, одновременно для Android и iOS, меняя интерфейс и оставляя программную логику на C# (Visual C# → Cross-Platform).
Кроме языка Visual C#, равнозначно может быть выбран Visual Basic или Visual C++. VS 2015 позволяет создавать универсальные приложения с помощью JavaScript (JavaScript → Windows → Универсальные приложения). Их также можно развернуть на устройстве с Windows 10 Mobile.
Инструменты для работы с унаследованными проектами
За долгую историю операционной системы Windows для нее было создано колоссальное количество самых разных приложений. С выходом Windows 8 и WinRT (а позже Windows 10 и UWP) старые классические приложения остались в прошлом, поскольку только в настольных Win 8 и Win 10 поддерживаются классические Win32-, COM-, .NET-приложения. От этого в Microsoft стало грустно. Но ребята смекнули, что могут разработать конвертер, который будет преобразовывать старые приложения для новой продвинутой UWP-подсистемы. Из этого родился Desktop App Converter.
Скачать его можно отсюда. Текущее состояние продукта — предварительная версия. Уже сейчас он позволяет преобразовывать классические приложения, написанные для Win32 и .NET 4.6.1, в приложения для платформы UWP.
Преобразованное приложение сохраняет функциональность предка плюс обретает возможности UWP-приложений: удобную установку, обновление, удаление. Также оно получает другие средства современных Windows-программ: push-уведомления, живые плитки, способность выполняться в качестве фоновой задачи, широкий диапазон контрактов. Одна из самых привлекательных возможностей — это продажа унаследованных приложений в Windows Store.
Desktop App Converter представляет собой приложение с интерфейсом командной строки. На входе оно получает: путь к дистрибутиву приложения, которое планируется преобразовать, путь к файлу-результату и путь к файлу — образу системы. Последний будет использован для чистой установки конвертируемой программы.
На выходе Desktop App Converter выдает каталог со всем установленным при инсталляции стаффом и два файла: манифест и файл регистрации приложения. После этого с помощью другой тулзы командной строки из образованного контента создается установочный файл UWP-приложения AppX. Затем это приложение можно установить в операционку и пользоваться им, как любым другим универсальным приложением, в том числе на Windows 10 Mobile.
После этого парни из Microsoft подумали: для iOS есть множество крутых мобильных приложений, было бы неплохо дать разработчикам возможность запилить их под нашу мобильную ось. Так появился проект с открытым исходным кодом Windows Bridge for iOS.
Преобразование Xcode-проекта выполняется в два шага. Сначала надо добавить подсветку синтаксиса языка Objective-C в Visual Studio: установить расширение objc-syntax-highlighting.vsix из папки winobjc\bin. Затем с помощью утилиты командной строки vsimporter.exe надо преобразовать проект на Xcode в проект на VS. После этого полученный sln-файл можно открыть в студии, где синтаксис Objective-C будет подсвечен. Можешь построить и запустить приложение, оно будет выполняться так же, как все другие Windows-программы.
VS с подсветкой синтаксиса Objective-C
Xakep #213. FUCK UAC
Разрази меня гром, как это удивительно — видеть в Visual Studio корректно подсвеченный код Objective-C!
Для компиляции кода Obj-C используется свободный компилятор Clang. Поскольку на выходе получается стандартное UWP-приложение, его можно запустить на мобильном устройстве в среде Windows 10 Mobile. В одной программе может быть код на C++ и на Obj-C.
Вывод OpenGL на эмуляторе смартфона Windows 10 Mobile
Если у тебя есть проект для прошлой версии Windows Phone, то есть 8.1 (или 8.0), то, когда ты его откроешь в VS 2015, студия автоматически обновит проект, чтобы он соответствовал требованиям универсального приложения Windows (UWP). Будет преобразована не только разметка пользовательского интерфейса на XAML, но и вместе с ней программная логика на JS/C++/C#/VB. Если в коде были вызовы подсистемы WinRT, тогда они будут преобразованы в вызовы UWP.
Есть еще распространенный тип приложений — игры. iOS и Android визуализируют посредством низкоуровневого интерфейса OpenGL. С другой стороны, на Windows 10 Mobile для вывода изображения в играх используется DirectX 11. Получается несовместимость. Но есть решение — открытый проект ANGLE. ANGLE (Almost Native Graphics Layer Engine) — движок почти нативного графического слоя — позволяет пользователям Windows бесшовно запускать OpenGL ES приложения на аппаратуре, работающей с DirectX 11. Это достигается путем преобразования вызовов с OpenGL ES API на DirectX 11 API. ANGLE полностью поддерживает следующие три типа приложений:
- универсальные приложения для Windows 10 (Universal Windows apps);
- приложения для Windows 8.1 и Windows Phone 8.1;
- классические приложения для рабочего стола Windows (Windows desktop applications).
Более подробно вопрос рассматривается в моей книге «Волшебство момента вращения» (опять ты книгу свою пиаришь! Ну лаадно, заслужил. — Прим. ред.).
Подключение смартфона
По умолчанию устройство подключается в режиме «Только зарядка», поэтому в параметрах надо переключить на режим передачи данных. Также этот вопрос появится в момент подключения девайса к ПК. В отличие от седьмой версии мобильной системы сейчас для передачи данных не нужна посредническая программа Zune, смартфон появляется в системе как дополнительное устройство, и навигация вместе с передачей данных доступна с помощью проводника. Кроме того, в параметрах смартфона в меню «Обновление и безопасность» в подменю «Для разработчика» надо установить «Режим разработчика», который позволяет запускать на смартфоне любые приложения, а не только из Windows Store.
Режим разработчика
В Windows 10 есть утилита «Диспетчер телефонов». С ее помощью можно посмотреть состояние устройства: степень зарядки аккумулятора, сколько места занимают определенные коллекции данных (фото, видео), импортировать фото/видео и так далее.
Диспетчер телефонов
Если сейчас из студии попытаться запустить приложение, то тебя ждет неминуемая трабла. Дело в том, что требуется сервис IpOverUsbSrc. От имени администратора открой консоль и введи туда команду net start IpOverUsbSvc .
Консоль с выполненной командой
Сервис запустится, и ты получишь возможность развертывать приложения на своем смартфоне прямо из студии по USB.
Реальный пример
Теперь, когда у нас есть реальный девайс, можно поиграть с разными датчиками, с которыми было или невозможно, или затруднительно работать на симуляторе. Однако замечу, что для WP и/или WM создан крутой симулятор, надо только оперативы побольше, чтобы он шустро бегал. Между тем с реальным устройством и реальными данными иметь дело удобнее и лучше.
По сравнению с другими гаджетами смартфоны от Microsoft для меня интересны благодаря двум компонентам: это большой набор датчиков вместе с соответствующими API и либа Imaging SDK, с помощью которой можно быстро делать впечатляющие эффекты к изображениям и видео. При обработке изображений используются возможности GPU, поэтому процессинг видеопотока происходит на лету. Как первый, так и второй компонент унаследованы от Nokia.
Датчики
API для работы с датчиками раньше носил имя SensorCore, но с выходом Windows 10 был помечен как устаревший и теперь, после обновления, входит в пространство имен Windows.Devices.Sensors платформы UWP. Датчики используются для отслеживания физической активности и перемещений пользователя смартфона.
Всего в Windows 10 Mobile поддерживается 12 сенсоров:
- акселерометр;
- датчик действий;
- высотомер;
- барометр;
- компас;
- гигрометр;
- инклинометр;
- датчик света;
- датчик положения в пространстве;
- шагомер;
- бесконтактный датчик;
- датчик простого положения в пространстве.
Между прочим, не каждая модель смартфонов обладает всеми этими сенсорами, например у меня в телефоне отсутствует компас.
Описание работы с каждым датчиком можно выделить в отдельный разговор, поэтому сегодня мы рассмотрим только один сенсор — датчик действия. Во включенном состоянии он способен определить действия, которые выполняет пользователь. В частности, этот датчик используется в фитнес-приложениях, он позволяет контролировать, чем занимается юзер: стоит, идет или едет на автобусе вместо того, чтобы пробежать это расстояние. Yurembo на себе протестировал гаджет: действия определяются без сбоев.
Сенсор активности так же, как и другие датчики, работает в фоновом потоке и сохраняет данные за прошедшие десять дней активности или бездействия :). Его можно отключить в выпадающем сверху экрана меню (вызывается проведением пальца сверху вниз), деактивировав значок «Местонахождение».
Выключение датчика действия
Чтобы проверить работу датчика, создай новое UWP-приложение, в качестве заготовки выбери Blank App. Она одна имеется в числе визуальных приложений, другие можешь скачать, прямо не выходя из мастера создания проекта: «В сети → Шаблоны → Visual C#».
Придай форме альбомный вид и помести на нее шесть компонентов TextBox и кнопку (см. рис. ниже).
Имена первых трех текстовых меток не имеют значения, а те, куда будут выводиться данные, назовем (сверху вниз): valueActivity, valueConf, valueTimeStamp. Создай обработчик нажатия кнопки и перейди в C#-код. Добавим два пространства имен:
В первом содержатся классы для перечисления устройств. В нашем случае оно нужно, чтобы обнаруживать датчик и сообщать программе о его состоянии. Как я говорил, не во всех моделях присутствуют все сенсоры.
Во втором пространстве имен находятся классы всех поддерживаемых датчиков.
Далее нам надо создать объект GUID устройства. В класс MainPage добавь такую строчку:
Параметр конструктора класса Guid является строкой с заданным значением Guid и представляет собой идентификатор класса устройства, то есть каждый класс устройства имеет строго заданный Guid, по которому система определяет тип девайса.
В обработчике события нажатия кнопки первым делом нам надо получить информацию о датчике активности, выяснить, присутствует ли он в данном смартфоне:
Так мы инициализируем объект класса DeviceAccessInformation на основе идентификатора класса устройства, как мы обсуждали выше, и сохраняем в переменную deviceAccessInfo.
Далее проверяем статус доступа к устройству:
При наилучшем раскладе статус имеет значение Allowed (на что мы, собственно, надеемся, поскольку иначе дальнейшее выполнение бессмысленно), то есть доступ разрешен. Статус устройства может иметь еще три значения:
- Unspecified — доступ не определен;
- DeniedByUser — запрещено пользователем;
- DeniedBySystem — запрещено системой.
В случае успеха мы создаем объект класса ActivitySensor, который представляет датчик активности. Делаем это через асинхронный вызов метода GetDefaultAsync класса:
Проверяем значение переменной activitySensor на равенство null и в случае отрицательного результата получаем текущие показания счетчика, сохраняя их в переменную класса ActivitySensorReading, которую впоследствии можно распарсить:
Проверяем эту переменную, чтобы она не была равна null, извлекаем из нее значения и помещаем их в соответствующие текстовые поля:
Датчик способен определить семь активностей плюс одно неопределенное:
- Idle — девайс находится в состоянии бездействия, лежит на столе;
- Stationary — в неподвижном состоянии;
- Fidgeting — девайс фиксирует слабое движение;
- Walking — во время пешей ходьбы, то есть одна нога всегда соприкасается с поверхностью;
- Running — состояние бега, то есть состояние полета, когда обе ноги во время шага находятся в воздухе;
- InVehicle — поездка на наземном транспорте (автомобиле, автобусе, трамвае. );
- Biking — езда на велосипеде.
Существует две степени доверенности (Confidence): Low — низкая и High — высокая.
Timestamp — временная отметка, когда были получены данные. Значение надо привести к строковому виду. В данном случае метод ToString принимает параметр ?u? , то есть преобразует объект DateTimeOffset в формат yyyy-MM-dd HH:mm:ssZ .
Для получения истории используется метод GetSystemHistoryAsync класса ActivitySensor. В качестве параметра метод получает временную метку, момент, за который надо получить историю, или два параметра: метку плюс продолжительность, тогда возвращаются данные за указанный период.
Объект класса ActivitySensor имеет событие ReadingChanged, которое возникает всякий раз, когда датчик посылает данные об изменении действий, выполняемых юзером.
Чтобы следить за состоянием датчика в фоновом потоке, надо зарегистрировать фоновую задачу. Когда слежение станет не нужно, надо отменить регистрацию.
Запуск
Если сейчас запустить приложение, то внезапно окажется, что оно не работает. Отладка показывает, что во время первой проверки состояние доступа к девайсу не определено (Unspecified). Чтобы сообщить Windows 10 Mobile, что твое приложение хочет получить доступ к датчику активности, тебе надо написать об этом в манифесте. Открой файл Package.appxmanifest в XML-редакторе, пролистай содержимое до области, ограниченной тегами , и добавь туда строчку
После этого можешь развертывать приложение, все будет работать, как надо.
Скриншот работающего на смарте приложения
Итоги
Сегодня мы много говорили о технологиях Microsoft как в аппаратном, так и в софтверном плане. Обсудили используемые для разработки софта инструменты. Затем мы рассмотрели способы создания приложений под Windows 10 Mobile. В частности, мы обратили пристальное внимание на импортирование унаследованных проектов, другими словами — возможность создания приложений для Windows 10 на основе программ из других операционных систем. Портирование классических Windows-приложений под платформу UWP вроде как вещь сама собой разумеющаяся. Но вот создание UWP-программ на основе iOS-приложений с Obj-C-кодом — это впечатляет. А главное, что эти инструменты свободные и открытые!
Программирование смартфонов от Microsoft вдвойне интереснее, поскольку они обладают большим набором разнообразных датчиков окружающей среды и состояния самого гаджета. Поэтому, подводя итог всему вышесказанному, мы разработали приложение, которое использует один из сенсоров — датчик активности.
Многие сенсоры унаследованы еще от смартфонов с операционной системой Windows Phone 7.5, и работу с ними мы рассматривали еще в те давние времена, поднимай подшивку «Хакера». Другие датчики весьма новые, и нам будет интересно разобраться с их использованием и получением от них профита. Но это планы на будущее.
А сегодня мне остается пожелать тебе веселой не пасмурной осени и удачи во всех делах!
Microsoft loves Open Source
Сайт github.com каждый год подводит итог: какая компания самая активная в плане открытых исходников, другими словами — кто сделал больше всех вкладов в открытые проекты. По итогам прошедшего года такой компанией стала Microsoft. Достаточно взглянуть на страницу корпорации на сайте GitHub.
Юрий Язев
Широко известен под псевдонимом yurembo. Программист, разработчик видеоигр, независимый исследователь. Старый автор журнала «Хакер».