Універсальні додатки для Windows і Windows Phone. Керівництво по WxWidgets: Вступ

Компанія Microsoft була піонером у багатьох індустріях. Варто зазначити, що поняття "смартфон" і "комунікатор" також прийшло до нас від дітища Білла Гейтса. Революція почалася в далекому 1990 році. І почалася вона не з iPhone (якого навіть в помині близько не було). У цій статті ми пройдемося по всіх версіях мобільних платформ від Microsoft. Успішні або провальні? Від Windows CE до. Від Casio Cassiopeia до Nokia Lumia 1520.

Вперше Microsoft звернула увагу на мобільний ринок в 1990 році. Саме тоді Білл Гейтс захотів розширити можливості своєї компанії і створити комп'ютер, який буде міститися в кишеню ваших штанів. Через два роки, в 1992 році, почалася розробка першої мобільної ОС від Microsoft - Windows CE. Робота просувалася вкрай повільно і складно. Перша версія Windows CE з'явилася на світ в 1996 році під версією 1.0. Фактично, це була сильно урізана версія Windows 95, але на іншому ядрі. Щось на подобі Windows RT. Цікаво, що перша версія Windows CE була оптимізована для пристроїв з 32 Кб оперативної пам'яті ...

До сьогоднішнього дня, Windows CE (зараз Windows Embedded) активно розвивається і просувається окремим від смартфонів шляхом. Але саме з Windows CE почалася історія портативних комунікаторів, зараз відомих як смартфонів.

Windows CE послужила відмінним підставою для нової операційної системи мобільних пристроїв - Pocket PC. Ця платформа являє справжнісіньку класику від Microsoft і, варто відзначити, в світі ще багато пристроїв, на корпусах яких горять вогнем два слова - Pocket PC.

Як платформа, Pocket PC канула в небуття в 2003 році, коли вийшла перша Windows Mobile 2003. Але Microsoft полюбила назву "Pocket PC" і використовували його як бренд в Windows Mobile пристроях. Остаточно про Pocket PC забули в 2007 році з виходом Windows Mobile 6.

Початок нового покоління мобільних комп'ютерів від Microsoft. В системі з'явилися додатки як розважального характеру (графічний редактор, Windows Media Player), так і для професійної роботи. Суттєво доопрацьовано IE, в якому з'явилася підтримка JavaScript і більш оптимізований під "важкі" сторінки. Система також обзавелася підтримкою бездротових стандартів Bluetooth, Wi-Fi, IPSec / L2TP, IPv6.

WM2003 виходила в чотирьох редакціях - Premium для топових пристроїв, Professional з більш обмеженим набором додатків для більш доступних пристроїв, версія Pocket PC Phone Edition (в ній була функція відповіді на дзвінок шляхом відправки смс) і Windows Mobile 2003 for Smartphone. У цій же WM2003 з'явилася перша гра Jawbreaker.

Це не окрема версія операційної системи, а оновлення, яке було орієнтоване на поліпшення роботи системи та оптимізацію під нові види пристроїв. Наприклад, WM2003SE отримала підтримку екранів 640х480, функцію зміни орієнтації екрану і систему захисту WiFi-мереж.

Вийшла 10 травня 2005 року. Абсолютно новий рівень Windows Mobile. Система отримала ряд нових, ніде не виданих раніше можливостей. Інтерфейс користувача був оптимізований для більш зручної роботи з джойстиком. Смартфоном стало легко керувати однією рукою, а також з'явилася QWERTY-клавіатура. У цій версії Windows Mobile 5 починає поступово йти слово Pocket. Наприклад, офісний пакет був перейменований з Pocket Office в Office Mobile.

В офісний пакет увійшло новий додаток - PowerPoint Mobile. Всі офісні додатки тепер працюють з повнофункціональними класичними файлами з деськтопной версії Office, а від Pocket-формату відмовилися. Комунікатори на Windows Mobile 5 вміли працювати в 3G-мережах, підтримували USB 2.0, Active Sync 4.0 і мали вбудований Windows Media Player 10.

Система була представлена \u200b\u200b12 лютого 2007 року в Барселоні. Саме на цій операційній системі працював перший сенсорний смартфон, який розпізнавав натискання пальцем, а не пером. Називався він HTC Touch. Windows Mobile 6 могла похвалитися системою шифрування карт-пам'яті, системними звуками, а також системою Windows Update для оновлення системи в автоматичному режимі. Була присутня також тісна інтеграція з Live-сервісами.

Вперше за історію Windows Mobile, в ОС з'явився Marketplace для розробників і побудови додатків ними. Офісний пакет був доповнений Office Exchange і One Note. Саме в Windows Mobile з'явилася підтримка дозволу екрану 800х480, яке використовується в поточних Windows Phone.

Йшов 2008 рік. Microsoft випускає невелике оновлення системи Windows Mobile 6.1. Воно принесло Internet Explorer нові функції - масштаб і огляд сторінки. Файли на пристрої могли бути зашифровані і з'явився диспетчер задач. Смс-листування знайшли новий вид. В редакції Windows Mobile 6.1 для смартфонів з'явилася можливість змінювати призначений для користувача інтерфейс на фірмовий "карусельний".

Остання ОС під назвою Windows Mobile. Система була анонсована на Mobile World Congress в Барселоні в 2009 році. Інтерфейс був значно перероблений. Екран блокування відображав невелику інформацію про події в системі. Елементи на екрані "Сегодня" були повністю перероблені під управління пальцями.

Internet Explorer оновився до шостої версії, а користувачам став доступний Windows Marketplace for Mobile, звідки можна було завантажити програми для свого устройства.Обновленіе Windows Mobile 6.5.3 принесло підтримку ємнісних екранів, мультитач і оптимізацію інтерфейсу під нові типи сенсорів.

Переворот мобільної операційної системи від Microsoft. У момент випуску Windows Mobile 6.5, корпорація Microsoft усвідомила, що битва за мобільний ринок частково програна. Конкуренти Apple і Google почали стрімко завойовувати ринок, а позиції WM падали. Треба було терміново щось змінювати і Microsoft вирішили створити всі заново, випустивши принципово новий продукт, відомий зараз як Windows Phone. Windows Phone 7 була анонсована на MWC.

Великим мінусом Windows Phone 7 була відсутність можливість оновлення з Windows Mobile 6.5.3 і це не дивно, адже все було розпочато заново. Система отримала радикально інший, ніде не бачений раніше інтерфейс, повноцінний магазин додатків, закриту ФС, новий IE, новий Office, синхронізацію з Zune і інтеграцію з Xbox.

Рівно через рік сталося велике оновлення Windows Phone 7.5 Mango. Більше 500 змін і нововведень істотно прискорили і поліпшили роботу системи. З'явився російську мову, російська клавіатура і підтримка роботи з фронтальною камерою. Ще через рік, в тому ж лютому, вийшла Windows Phone 7.5 Tango, яка уможливила випуск бюджетних пристроїв з 800Мгц процесором і 256Мб оперативної пам'яті. Таким пристроєм стала Nokia Lumia 610.

В кінці 2012 року, корпорація Microsoft оголосила про вихід Windows Phone 7.8 - наступному оновленні для Windows Phone 7.5. Оновлення було створено з метою продовжити життєвий цикл Windows Phone 7-пристроїв, так як до Windows Phone 8 вони не змогли оновитися.

7.8 розширило графічний інтерфейс, принесло три розміри плиток, нові акцентні теми оформлення, а також динамічні шпалери Bing. Для користувачів Nokia, з установкою Windows Phone 7.8 стали доступні програми, що розширюють функціонал системи - установка рингтонів на борту екрану і передача файлів по Bluetooth.

Windows Phone 8

Абсолютно нове ядро \u200b\u200bWindows Phone 8 прирекло користувачів Windows Phone 7 на відсутність можливості оновитися до останньої версії ОС і установки додатків, які створені виключно для Windows Phone 8. У порівнянні з Windows Phone 7, восьма версія стала значно краще. В системі з'явилися функція "Дитяча", передача по Bluetooth, підтримка FullHD (GDR3-оновлення) і 720p-екранів, багатоядерних процесорів, 2Гб оперативної пам'яті, NFC-чіпів, тісну інтеграцію з SkyDrive, новий IE10, блокування орієнтації екрану, режим "У автомобілі "і багато інших оновлень. Істотним нововведенням є наявність функції оновлення "по повітрю" і відсутність необхідності в додатковому ПО для синхронізації. Користувачі Zune були вкрай незадоволені додатком. На даний момент Windows Phone 8 GDR3 є актуальною версією ОС.

Windows Phone 8.1

Версія операційної системи, яка знаходиться в стадії розробки і має бути анонсована на початку 2014 року. Згідно з чутками, в ній з'явиться центр повідомлень, а також злиття з Windows RT.

В додатках і іграх для мобільної платформи полягають найрізноманітніші можливості сучасних мобільних пристроїв із сенсорними дисплеями. Це різні ігри, додатки для роботи, відпочинку, розвитку, програмні клієнти корисних інтернет-сервісів і т.п.

Нижче представлений порівняльний огляд ідеологічних основ мобільної індустрії - конкуруючих мобільних операційних систем Android і Windows Phone. Отже, які ж переваги і недоліки можна відзначити у цих двох найпопулярніших мобільних платформ? Android або Windows Phone - яка з платформ краще?

1. Інтерфейс

Перше, що кидається в очі будь-якому користувачеві, який взяв в руки смартфон на базі Windows Phone - це стилізовані плитки. У чому суть цих плиток? Це замасковані так звані живі тайли (Live Tiles), які являють собою такий собі ексклюзив від Microsoft, яскраву відмінну рису платформи Windows Phone. Чому ж ці тайли «живі»? Тайли - це не що інше, як кілька видозмінені віджети і ярлики додатків та ігор з тією особливістю, що їх актуальна інформація (прогноз погоди, курси валют, нові повідомлення, ігрові повідомлення і т.п.) відображається прямо на плитці.

Платформу Android в плані інтерфейсу можна на сьогоднішній день сміливо називати чистої класикою. Взявши в руки новий Android-смартфон, користувач побачить звичні ярлики додатків та ігор, строго вишикувалися в ряд. Але такий стан справ може швидко змінитися. За допомогою різних додатків-лаунчер, в розмаїтті яких не можна дорікнути магазин додатків для Android - Google Play Market, інтерфейс платформи можна в лічені секунди змінити на будь-який призначений для користувача смак, на будь-яку тематику шпалер для робочого столу, в тому числі і підібрати цікавий дизайн з віджетами , що відображають актуальну інформацію додатків та ігор.

Отже, яка з платформ краще в плані інтерфейсу? Безумовно, багатьом сподобаються живі тайли Windows Phone, оскільки ця ідея компанії Microsoft дійсно заслуговує окремих похвал. Однак на Android можна встановити будь-який дизайнерський шедевр від розробника програми-лаунчер і змінювати інтерфейс платформи хоч по кілька разів на день. Windows Phone ж такої можливості не має, інтерфейс цієї платформи змінити не можна. Живі тайли користувач буде спостерігати весь час користування смартфоном на базі Windows Phone.

Тому в плані інтерфейсу перемога за платформою Android - саме за її доступність і відкритість для постійних змін зовнішнього вигляду.

2. Налаштування платформи під переваги користувача

У плані можливості настройки мобільної платформи під призначені для користувача потреби учасники огляду - Android і Windows Phone - мають принципово відрізняються позиції.

Android - це операційна система з відкритим вихідним кодом (ядро Лінукс), тому її варіантів з втручанням сторонніх розробників, наприклад, з боку виробників мобільної техніки може бути дуже багато. Платформа Android відкрита, це дозволяє вносити свої корективи в її налаштування не тільки виробникам смартфонів і планшетів, але і самим користувачам - міняти інтерфейс, встановлювати будь-які програми та ігри, в тому числі і в обхід Google Play Market, завантажуючи програми та ігри зі сторонніх ресурсів - торрент-трекерів, сайтів, присвячених тематиці Android і т.п.

Отримання root-прав на Android відкриває користувачам неймовірні перспективи - наприклад, будь-яку просунуту екшн-гру, яка стоїть на Google Play Market пристойних грошей, користувач зможе встановити абсолютно безкоштовно, звернувшись до згаданих вище стороннім ресурсів.

Відкритість коду платформи Android дозволяє їй бути гнучкою, виконувати найширший спектр завдань в інтересах користувача, використовуючи при цьому різноманітні програмні інструменти.

Windows Phone - це закрита операційна система, яка не передбачає втручання в її код. В цьому плані компанія Microsoft вирішила піти по шляху компанії Apple, обмеживши своє дітище від будь-якого стороннього втручання. Windows Phone не подається налаштування під переваги користувача. Доля користувачів - задовольнятися лише тим, що передбачив софтверний гігант.

Тому друга перемога присуджується знову Android.

3. Безпека і стабільність роботи

З попереднього переваги платформи Android випливає її такий недолік, як незахищеність від вірусів і шкідливих програм. Дуже часто Hi-Tech ресурси в Інтернеті рясніють інформацією про те, що на Google Play Market виявлено черговий додаток, заражене вірусом або переслідує мети спустошити мобільний рахунок користувача фонової відправкою СМС на різні платні номери. Так, так іноді буває, і співробітникам Google Play Market є ще над чим працювати і що вдосконалити. Так що поки користувач може лише сподіватися на пильність антивірусного додатки.

Гальмування і нестабільність роботи Android - ще один недолік, який також є наслідком відкритості коду цієї платформи.

Ситуація з Windows Phone в плані безпеки і стабільності роботи - це повна протилежність ситуації з Android. Закритість коду Windows Phone, можливо, і позбавляє цю платформу гнучкості, проте вона працює плавно, стабільно, без глюків.

Так що в питанні безпеки і стабільності роботи перемога може бути тільки за Windows Phone. Це перша перемога дітища софтверного гіганта.

4. Багатозадачність

Android підтримує багатозадачність - це, безумовно, величезна перевага цієї платформи. У цьому питанні Android зміг перевершити навіть iOS - мобільну платформу iPhone і iPad, оскільки багатозадачність в iOS була реалізована тільки до четвертої версії платформи, а в Android багатозадачність існувала з самого початку - з першої версії.

Так, на Android користувач може запускати одночасно кілька додатків і перемикатися між ними через спеціальне меню «Недавні додатки», яке відображає 6 останніх додатків. Якщо в додатку або грі не передбачено опції виходу, природно, всі запущені програми та ігри будуть висіти в фоновому режимі. Природно, це буде швидко виснажувати акумулятор смартфона. Але тут навряд чи можна пред'явити претензії саме до Android - за продуктивність завжди потрібно платити. По іншому ніяк.

Windows Phone не підтримує багатозадачність.

Отже, чергова, вже третя перемога Android.

5. Додатки для мобільної платформи

Якщо дивитися з позиції новачка - повного чайника, який купив перший у своєму житті смартфон, то в більш виграшній ситуації опиниться платформа Windows Phone, оскільки тут спочатку встановлено більше додатків. Наприклад, разом з новим смартфоном користувач отримує вбудовані в платформу додатки-клієнти соціальних мереж Facebook, Твіттер і Linkedin. Але такою дрібною наживкою часом спокусник бувалих користувачів, завзятих любителів мобільних комунікацій. Тому що для платформи Android все необхідне - клієнти соціальних мереж і різних інтернет-сервісів, органайзери, віджети погоди і курсів валют, мультимедіа-додатки, освітні програми, ігри та багато іншого - можна з легкістю безкоштовно скачати з Google Play Market.

Щоб визначити, краще Android або Windows Phone в плані різноманітності розробленого під них контенту, порівняємо число додатків та ігор, які доступні для обох платформ в фірмових магазинах додатків. Так, Windows Phone Store налічує понад 120 тис. Різних додатків та ігор. А на Google Play Market міститься більше 700 тис. Додатків та ігор для Android. Як бачимо, результат на обличчя - 120 тис. Проти 700 тис. Але це тільки констатація конкретних цифр. Насправді частина додатків та ігор для Android, представлених сьогодні на Google Play Market, низької якості. Користувач, встановлюючи ту чи іншу програму або гру для Android, ніяк не може бути впевнений в тому, що воно запуститься або буде коректно працювати. Для Android несумісність програми або гри з версією платформи або з апаратними складовими мобільного пристрою - цілком звична справа.

Незважаючи на це, перемогу знову присудили Android, адже компанія Google ніколи не позиціонувала своє дітище як елітну бренд-фішку. Для цієї платформи передбачено дійсно величезне число найрізноманітнішого контенту. Потрібно просто на деякі дрібниці закривати очі і, повторимося, мати гарне антивірусну програму.

6. Картографічний сервіс

Карти Google Maps в 3D для Android - це дійсно шедевр від пошукового гіганта. Функція перегляду вулиць Google Street View, реалізована в програмах Google Maps і Google Earth дозволяє переглядати панорамні види вулиць і міст усього світу. Google Maps - вже досить зрілий проект, в який пошуковий гігант вклав чимало зусиль. Конкуруючим картографічним проектам сьогодні щоб стати краще, ніж Google Maps, доведеться серйозно попрацювати. Повертаючись до порівняльного огляду двох мобільних платформ, відзначимо, що з Google Maps в 3D для Android набагато зручніше працювати, ніж з Nokia Maps, встановленими в смартфонах на базі Windows Phone 8.

Картографічний сервіс - це чергова перемога Android.

7. Зберігання електронних грошей

Обидві мобільні платформи підтримують систему NFS, яка використовується, зокрема, для проведення безконтактних платежів - коли оплачувати товари або послуги в торговельній точці можна, піднісши до терміналу мобільний телефон з активним банківським рахунком в електронному варіанті.

Для зберігання грошових коштів компанія Google розробила електронну платіжну систему Google Wallet. За допомогою системи NFS, встановленої на смартфоні, і спеціального Android-додатки від системи Google Wallet користувачі можуть розплачуватися за товари і послуги в торгових точках, де передбачені безконтактні платежі. Однак особливою популярністю цей проект від компанії Google не обзавівся.

Електронний гаманець для Windows Phone - також не особливо популярна фішка, однак це не применшує його зручності. Він може об'єднати всі банківські карти користувача. Тому в питанні зберігання електронних грошей перемога присуджується Windows Phone.

Підбиваючи підсумки…

Багато фішки, якими можуть похвалитися і Android, і Windows Phone надзвичайно схожі. Це і голосове управління Google now для Android проти Tell me для Windows Phone, і, відповідно, музичні сервіси Google Music проти Xbox Music, і сервіси обміну повідомленнями та відеозв'язку Google Talk проти Skype.

Підсумовуючи перемоги мобільних платформ з розглянутих питань, відзначимо тверду і стійку перемогу Android - 5 проти 2.

Так, платформа Windows Phone перемогла лише двічі - в питаннях безпеки, стабільності роботи і зручного гаманця для зберігання електронних грошей. Інтерфейс, можливість настройки платформи під переваги користувача, багатозадачність, понад 700 тис. Розроблених програм та ігор, кращий картографічний сервіс - як бачимо, це досить чималий перевага Android.

Android - це мобільна платформа, в якій хаотично змішуються і вдалі, і невдалі рішення. Це платформа для ентузіастів, для справжніх цінителів свободи дій і дослідників різних можливостей мобільних технологій.

Windows Phone - це своєрідний аналог iOS. У цієї платформи також іменитий творець, в основу її принципів закладені імідж, стабільність, граціозність і плавність в роботі, опіка користувача і максимальне забезпечення її безпеки. Нехай навіть і на шкоду його всебічному розвитку.

Про керівництво

За допомогою цього навчального посібника ви навчитеся програмування з використанням інструментарію wxWidgets. В кінці кожного розділу ви знайдете посилання на інші матеріали керівництва.

wxWidgets

wxWidgets це набір інструментів для створення графічного інтерфейсу користувача (GUI) в C ++ додатках. Це крос-платформний інструментарій з відкритим вихідним кодом. wxWidgets додатки працюють на всіх основних платформах: Windows, Unix and Mac. Проект був заснований Юліаном Смартом (Julian Smart) в 1992 році. Це більше ніж просто набір інструментів. Він містить велику різноманітність класів для роботи з потоками, базами даних, командними послідовностями, інтерактивною довідкою і настройками програми. wxWidgets містить велику групу віджетів. Познайомитися з спільнотою wxWidgets можна на сайті http://www.wxwidgets.org/.

Мова програмування C ++

C ++ один з найбільш широко використовуваних мов програмування на цій планеті. На ньому написано більшість відомих програмних пакетів таких як MS Office, Macromedia Flash, Firefox, Photoshop і 3D Max. C ++ домінує в світі ігор для PC. Це один з найскладніших мов програмування. З іншого боку, програмування на C ++ в 2007 році відрізняється від програмування в 1997. Багато стало простіше в наші дні.

Індекс спільноти програмістів TIOBE відображає приблизну частку використання мов програмування (інформація нижче за станом на 2010 рік - прим. Sl-Alex). Java рулить. C ++ скинутий із престолу. Але C ++ служить їх основою і в найближчі десятиліття для нього немає серйозних загроз. Ми можемо ясно бачити спеціалізацію серед мов програмування. Java в основному використовується в корпоративних проектах і портіруемость програмах, C - король в системному програмуванні (ОС, драйвери пристроїв, невеликі програми), PHP міцно закріпився на невеликих і середніх веб-сайтах, Javascript використовується для реалізації клієнтської частини веб-додатки.

C / C ++ найбільш часто використовувані мови для створення класичних ДУІ (Графічний користувача Інтерфейс (GUI)) додатків для настільних систем. Ось прекрасна, яка пояснює чому Java не знищить C ++ в найближчі роки.

Мультиплатформенне програмування

Сьогодні, Мультиплатформенне програмування - це модне слово. Багато мови і бібліотеки хочуть стати мультиплатформенними. wxWidgets спочатку створювався як мультіплатфоменний інструмент. Більшість розробників вибирають такі можливості. Якщо це можливо, використовують web. Або ж вибирають між Qt, wxWidgets, Swing або SWT. Так само існує така річ як FLTK, але він не такий популярний і це не кращий вибір. У моїй країні є велика залізнична компанія. Ця компанія використовує ПО написане на Java і Swing. Цей вибір обумовлений тим, що дешевше купити нове обладнання і написати ПО на Java. Використовуючи Java, швидкість розробки зростає і кількість багів зменшується. Звичайно, такий вибір правильний. Але коли ми пишемо текстовий редактор на Java ми не можемо сказати нашим замовникам, агов хлопці, вам потрібно буде докупити ще 1 Гб пам'яті. У такій ситуації Java нам мало чим може допомогти. Що стосується Qt, то ця бібліотека головний конкурент wxWidgets. Тому для кожного завдання потрібно використовувати правильний інструмент - це найважливіше рішення будь-якого програміста і менеджера.

Останнє оновлення: 12.04.2017

UWP (Universal Windows Platform) являє собою уніфіковану платформу для створення і запуску додатків в Windows 10 і Windows 10 Mobile.

UWP стала результатом фолюціі більш ранніх технологій. Так, з виходом Windows 8 була впроваджена нова архітектурна платформа для додатків - Windows Runtime (WinRT), яка дозволяла запускати додатки в так званому режимі Modern (Metro) на десктопах, планшетах. Потім з виходом Windows 8.1 і Windows Phone 8.1 ця технологія отримала розвиток - з'явилися "універсальні додатки", які можна було запускати відразу Windows 8.1 і WP8.1. І в липні 2015 офіційно вийшла нова ОС Windows 10. Вона використовує платформу UWP, яка представляє собою розвиток Windows Runtime.

Як підказує назва платформи, вона є універсальною - універсальної для всіх пристроїв екосистеми Windows 10. А це звичайні дестопи, планшети, мобільні пристрої, пристрої IoT (інтернет речей), Xbox, пристрої Surface Hub. І додаток UWP може однаково працювати на всіх цих платформах, якщо на них встановлена \u200b\u200bWindows 10.

Чому UWP?

Програмування під UWP несе ряд переваг:

    широта поширення. На поточний момент (квітень 2017) Windows 10 встановлена \u200b\u200bвже більш ніж на 400 мільйонах пристроїв. На десктопах Windows 10 вже випередила Windows 8 / 8.1.

    Підтримка широкого кола пристроїв. Музичні кліпи, планшети, смартфони, великі планшети Surface Hub, різні IoT-пристрої, в перспективі пристрою віртуальної реальності HoloLens - коло устрйоства, на яких може працювати Windows 10 дійсно широкий.

    Підтримка різних мов і технологій програмування. UWP-додатки можна створювати за допомогою таких мов, як Visual C ++, C #, Visual Basic, JavaScript. Як технології для створення графічного інтерфейсу Visual C ++, C # і Visual Basic використовують XAML, JavaScript застосовує HTML. Крім того, С ++ може замість XAML використовувати DirectX. Тобто досить поширені і та знайомі багатьом технології.

    Магазин додатків і зручність поширення. Windows Store є прекрасне місце для поширення UWP-додатків, як платних, так і безкоштовних. Самі можливості платформи і магазину Windows Store дозволяють використовувати різні способи монетизації. Наприклад, можна інтегрувати в додатка блоки для показу реклами через різні SDK. Можна поширювати за певну плату, причому оплату можна гнучко налаштовувати. При необхідності можна вбудувати надання ознайомчої версії, після використання якої користувач може вирішити, купувати додаток чи ні. І також можна монетизувати за моделлю freemium, при якій додаток умовно безкоштовне, а окремі послуги всередині програми надаються за певну плату. Причому всі ці можливості монетизації обесечіваются вбудованими інструментами SDK.

    Багаті можливості платформи. UWP багато успадковує від Windows Runtime з Windows 8.1 і в той же час надає багато нових функцональностей, як, більш багаті можливості по інтеграції з хмарою, використання Cortana, системи повідомлень в Win10 і багато іншого.

Що необхідно для розробки під UWP

Для програмування під UWP необхідна ОС Windows 10. Всі інші операційні системи, як Windows 8.1 / 8/7, не кажучи вже про Windows XP, не підходять!

Також буде потрібно середовище розробки Visual Studio 2017 Community. Це повнофункціональна безкоштовна середовище розробки, яку можна завантажити з офіційного сайту за адресою https://www.visualstudio.com/downloads/download-visual-studio-vs.

Також можна використовувати версію VS 2015 року, а всі інші попередні версії Visual Studio - 2013, 2012 2010 і т.д. з UWP не працюють.

При установці Visual Studio 2017 програмою установника необхідно галочку у відповідному полі:

Перед ніж як почати створення додатків, переконайтеся, що в центрі поновлення в Windows 10 встановлена \u200b\u200bвідповідна опція для розробників:

І маючи Windows 10 і встановлену Visual Studio 2017, можна приступати до розробки додатків.

  • Ненормальне програмування,
  • Розробка веб-сайтів,
  • Розробка під Windows
  • Так що цілком можна почати знайомитися з новою платформою. Давайте я зроблю невеличкий екскурс, описавши деякі відмінності.

    Почну з того, що додатки UWP володіють чимось, чого немає у класичних додатків Windows - у них є App Model. Що таке App Model? Це своєрідний регламент. Опис всіх можливостей програми - його прав доступу, способу установки, оновлення, зберігання інформації і т.п.

    У додатків Windows Store, точно так само як і у додатків UWP є файл маніфесту, в якому описані всі можливості і права додатки. Це файл Package.appxmanifest. Його можна редагувати як в графічному редакторі, так і у вигляді коду XML. Скріншот графічного редактора дивіться нижче.

    елементи управління

    Якщо ви пам'ятаєте, то зовсім недавно у Windows 8 і 8.1 була Charm panel - чарівна панелька:

    Зараз же замість неї використовуються більш звичні для WPF розробників контроли:

    Тут новим контролом є ContentDialog, який блокує додаток, приблизно так само, як блокує його MessageBox.
    Крім того в UWP більш звична для розробників WP навігація:

    Що може здатися цікавим, так це те, що деякі елементи управління можуть мати різний зовнішній вигляд при відображенні на різних пристроях. Простими словами, контрол може виглядати трохи інакше, наприклад, при відображенні на столі і на мобільному пристрої.

    В цілому, я так вважаю, середньостатистичний розробник вже давно звик великій різноманітності контролів. Освоєння нових труднощів викликати не повинно.

    Розробка під різні пристрої

    Постараюся розібрати те, що для WPF розробника буде незвичайним. Наприклад, це те, що при розробці додатків Windows 8.1 можна було в одному рішенні розробляти одночасно і під телефон і під десктоп.

    В такому випадку створювалося 3 проекти. У додатках WP і WinRT зберігався xaml код «в'юшок» і якийсь особливий код під пристрої, а в спільному проекті зберігався загальний код xaml і загальний для двох проектів код C #.

    Зараз же, так як платформа UWP універсальна, то для кожного типу пристроїв можна створити папку, в яку можна помістити «в'юшку» - тобто xaml файл з дизайном під параметри пристрою.

    Життєвий цикл

    Є стара жарт про формулу-1: «У Ральфа Шумахера два положення педалі - включено і вимкнене. Рештою положеннями можна знехтувати ».

    Цим жартом я можу трохи підколоти класичні пріложенія.Net. Вони або працюють, або не працюють. У додатках Store все трохи інакше. У них крім станів «Включено / виключено» є ще й проміжний стан «Припинено». Життєвий цикл програм 8.x і UWP відображений на наступній картинці:

    Тригери і фонові завдання

    Пріложенія.Net можуть бути або виконуваними файлами або можуть бути службами / сервісами. Це абсолютно різні види додатків. Тобто не може бути такого, що додаток exe, але при цьому воно працює в фоні. Ні, звичайно ж, додаток може працювати в треї. Але фактично виходить, що воно запущено і просто згорнуто.

    Що стосується додатків 8.x і UWP, то вони можуть містити в собі фонові завдання. Фонові завдання це певна подоба сервісу. Тобто додаток може не працювати, але в системі буде виконуватися якась завдання. Крім того фонова завдання може «відловлювати» якісь події в роботі системи тригером.

    Один з найпопулярніших тригерів це SystemTrigger. За допомогою нього додаток може виконати будь-якої код при настанні таких подій як: поява або зникнення інтернету, зміна стану мережі, підключення або відключення користувача, отримання смс, зміна годинної зони і т.п.

    Також досить популярні TimeTrigger і MaintenanceTrigger. Обидва тригера виконують якийсь код з періодичністю в певний проміжок часу. Проміжок часу повинен бути не менше 15 хвилин. Відмінність в те, що TimeTrigger вимагає реєстрації додатки на екрані блокування, а MaintenanceTrigger-у потрібне щоб пристрій працював не від батареї, а від мережі.

    У UWP з'явилося багато нових тригерів. Взяти, наприклад такий ось цікавий тригер як MediaProcessingTrigger, Який дозволяє додатку перекодувати мультимедіа в рамках фонової завдання.

    Використання бібліотек

    Якщо в класичних додатках ви використовували бібліотеки DLL, то в додатках 8.x і UWP ви зможете використовувати як PCL, так і компонент середовища виконання WinMD. В чому різниця?

    PCL (portable class library) може бути додана додатків під різні платформи. І под.Net Framework різних версій, і під Windows 8.x і під WP, під UWP і навіть під iOS / Android програми Xamarin. Тобто в цю бібліотеку можна запхнути якийсь загальний платформонезавісимость код.

    WinMD може бути використаний тільки під 8.x або UWP. Незалежно від мови, на якому написані додатки, вони можуть працювати з WinMD. Але сам WinMD в разі якщо він містить в собі складні обчислення краще писати на C ++ для досягнення оптимальної роботи.

    Втім, при розробці під UWP ви можете створити і бібліотеку класів (DLL).

    Робота з даними

    У чому ще полягає відмінність додатків UWP, так це в тому, що вони не працюють з базами даних безпосередньо. Тобто такі бази даних, як, скажімо SQL Server або Oracle, розташовані на сервері організації, будуть вам недоступні. Втім, це було б дивно, якби користувач скачував з Store додаток, і додаток починало б працювати з базою SQL Server-а, розташованої на сервері в локальній мережі. Але ви зможете працювати з даними, використовуючи веб-сервіси. Є можливість використовувати для баз MySQL оракловскій Connector / Net, але він на даний момент не підтримує SSL і тому не особливо цікавий. Так що краще не відхилятися від концепту використання сервісів для доступу до даних.

    Для зберігання інформації всередині програми ви можете використовувати SQLite.

    Зберігання параметрів програми та робота з файлами

    Зберігання параметрів оригінальну програму можна не тільки на пристрої, але і в хмарі. Таким чином, якщо запускати додаток на різних пристроях, то настройки всюди будуть однаковими.

    Наступний невеликий сниппет зберігає кількість виклику коду в хмарі:

    Int timescount \u003d 0; Object roamS \u003d Windows.Storage.ApplicationData.Current.RoamingSettings.Values \u200b\u200b[ "times"]; if (roamS! \u003d null) timescount \u003d (int) roamS; timescount ++; Windows.Storage.ApplicationData.Current.RoamingSettings.Values \u200b\u200b[ "times"] \u003d timescount;
    Якщо замінити Windows.Storage.ApplicationData.Current.RoamingSettings на Windows.Storage.ApplicationData.Current.LocalSettings, то параметр буде збережений локально на пристрої.

    Налаштування можуть бути скомпоновані як в складові параметри, так і в контейнери. Файли точно так само як і настройки можна зберігати як на пристрої в локальній папці, так і в хмарі. Але крім цього є можливість зберігати файли в тимчасовій папці, яка при необхідності може бути очищена системою - ApplicationData.TemporaryFolder.

    Крім того можна отримати доступ до папки, яка міститься в додатку за допомогою
    Windows.ApplicationModel.Package.Current.InstalledLocation

    Доступ до файлів, що зберігаються на дисках, теж організований по особливої \u200b\u200bмоделі. Вміст папок документів, фотографій, відео та подібних може бути отримано за допомогою класу KnownFolders, але в такому випадку необхідна установка дозволів в маніфесті. Доступ до будь-якої іншої папки можливий тільки в разі, якщо користувач вибере папку сам в процесі роботи з додатком. Відвідані папки можна зберігати, щоб при повторному запуску програми не змушувати користувача робити зайві дії

    Var folderPicker \u003d new Windows.Storage.Pickers.FolderPicker (); folderPicker.FileTypeFilter.Add ( ". jpg"); folderPicker.FileTypeFilter.Add ( ". jpeg"); folderPicker.FileTypeFilter.Add ( ". png"); folderPicker.SuggestedStartLocation \u003d Windows.Storage.Pickers.PickerLocationId.PicturesLibrary; folderPicker.SettingsIdentifier \u003d "picker2"; Windows.Storage.StorageFolder lastFolder \u003d await folderPicker.PickSingleFolderAsync (); if (lastFolder \u003d\u003d null) return; String mruToken \u003d Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add (lastFolder);
    Отримати після цього останню збережену папку можна так:

    String mruFirstToken \u003d StorageApplicationPermissions.MostRecentlyUsedList.Entries.FirstOrDefault (). Token; lastFolder \u003d await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync (mruFirstToken);

    прив'язки даних

    Як в додатках WPF, так і в додатках UWP, а також при розробці під 8.x можна використовувати прив'язки даних - (binding). Але в UWP з'явилися ще й компільовані прив'язки - (x: bind) У чому відмінність? Компільовані працюю набагато швидше, а формуються / перевіряються вони під час компіляції а не під час запуску програми. Також вони строго типізовані.

    Детальніше тут.

    Поділитися