Інтерв'ю - Phonos Developer Енді Пеннелл
Як додаток до мого огляду програми Phonos я подумав, що було б цікаво поспілкуватися з Енді і отримати деяку інформацію про його досвід при розробці для Windows Phone. Спочатку, в команді, яка створила злощасні пристрої Kin, він з тих пір працює на Windows Phone 8.0 Apollo. Енді ділиться своїм досвідом виведення свого додатку на ринок. Він розповідає нам про перешкоди, які він долає за допомогою платформи, про думки про розробку WinRT і про багато іншого... Щоб зрозуміти це, ви повинні будете продовжити читання після перерви.
Роберт: Енді, розкажіть, будь ласка, про себе, як ви зайнялися розробкою для Windows Phone?
Енді: Я колишній англієць, який живе в Сіетлі. Я є розробником в Microsoft, і коли я запустив Phonos, я був в команді Windows Phone. Хоча я не працював над WP7.0 або Mango (7.5), я був одним з перших, хто працював над Apollo, в той час як всі інші працювали над версіями на базі CE. Будучи в команді дав мені ранній доступ до телефонів та інструментів, я знав C #, але не знав багато XAML. До цього я був у команді KIN, і хоча все в KIN було зроблено в Silverlight, я ніколи не працював над будь-яким користувальницьким інтерфейсом, тому для мене це було в основному загадкою.
Роберт: Розвиток фоноса, це тільки ти чи це командна робота?
Енді: Це тільки я. У мене є кілька бета-тестерів, але я вважаю, що вони мені потрібні менше, оскільки код досить стабільний. Я зазвичай націлюю нові функції на конкретних тестерів у ці дні. Я зазвичай працюю в цю більшість вихідних, особливо якщо йде дощ, що часто буває тут.
Роберт: Не могли б ви пояснити, чому ви вирішили використовувати додаток Sonos Controller?
Енді: Я вивчив мої «Sonos Chops» спочатку в додатку для ПК, побудованому на C # і використовує примітивний користувальницький інтерфейс WinCes. Це дозволило мені зосередитися на API-інтерфейсах UPnP, які використовує система Sonos, тому я міг зрозуміти, як перераховувати і відтворювати музику, не вдаючись до підключення UPnP (оскільки воно вбудоване в Windows). Я завжди знав, що хочу керувати своїми Sonos, використовуючи мій телефон, тому, коли 7.0 SDK зібралися разом, я спробував перенести основи свого коду, але незабаром зрозумів, що не тільки UPnP відсутній в телефоні, але і мережевий код, який Мені потрібно було написати свій власний стек UPnP.
Я вивчив основи WCF, написав сервер UPnP, який працював на ПК, і додаток для телефону, який зв'язувався з ним по Wi-Fi. Поки Манго не вирішив проблему з мережею, оригінальній версії Phonos потрібен додаток для ПК, який був болючим для моїх клієнтів і мене. Всі телефони однакові, але існує так багато різних конфігурацій ПК (і брандмауерів), що написати додаток для установки було справою, яка мені ніколи не подобалася. На щастя, WP7.5 вирішив проблему з мережею, тому я почав писати для неї стек UPnP. Добре, що я зробив, коли виявив деякі неприємні помилки в коді мережі перед його випуском. Ви можете стежити за моїми технічними досягненнями в моєму блозі на MSDN, багато статей про який були прямим результатом того, що я дізнався, розробляючи Phonos тут.
Роберт: Ви турбуєтеся про випуск Sonos офіційної версії Windows Phone?
Енді: Я вважаю, що в якийсь момент Sonos може випустити офіційний додаток, якщо це станеться, то це буде добре для користувачів Windows Phone, так як воно буде мати всі функції. У мене немає ресурсів, щоб перепроектувати, а потім заново реалізувати кожну функцію, наявну в офіційних додатках. Я фокусую функції мого додатку на тих областях, які, на мій погляд, використовують люди найчастіше, таких як управління відтворенням, редагування груп і вибір музики.
Роберт: Ваш додаток коштує 7,99 фунтів стерлінгів, що стосується мобільних додатків, які сприймаються деякими як досить висока ціна. Не могли б ви пояснити, як ви до нього прийшли? Як ви думаєте, нижча ціна може сприяти більш широкому прийняттю?
Енді: По-перше, пробний режим, який пропонує WP, приголомшливий, він дозволяє людям спочатку завантажити і спробувати додаток, перш ніж вносити свої гроші. Це особливо важливо для більш дорогих додатків, таких як моє. По-друге, є неофіційний додаток Sonos для Blackberry, який я тільки недавно виявив, і він коштує $19,99, так що, думаю, я не унікальний у своїх думках з цього приводу.
Мій додаток вважається «дорогим» за телефонними стандартами, і це був явний вибір. Це не відноситься до категорії «пердіти додаток», це не щось просте, зібране на вихідних, опубліковане і ніколи не оновлюване. Phonos ніколи не стане мільйонним продавцем, оскільки він обмежений клієнтами Sonos, у яких є телефони Windows.
Спочатку я збирався брати 25 доларів, але зворотний зв'язок від хорошого співробітника, що володіє Sonos, змусила мене переосмислити це, тому я вибрав 10 доларів. У мене співвідношення проб і покупок набагато краще, ніж 10%, тому навіть якщо б я зробив додаток за 1 долар, а всі, хто коли-небудь завантажував пробну версію, купили його (малоймовірно), я б в цілому заробив менше грошей. Програмне забезпечення постійно вдосконалюється, і мені подобається надавати належну підтримку платним клієнтам, тому я відчуваю себе виправданим, стягуючи розумну суму.
Власники Sonos за визначенням, ймовірно, витратили щонайменше 500 доларів (400 фунтів) на свої системи, а деякі - набагато більше, додаток по 10 доларів, щоб вони могли використовувати свій телефон в якості контролера, і це мені здається дуже цінним. До того, як з'явився iPhone, будь-яке програмне забезпечення за 10 доларів вважалося б вигідною угодою, але я не вдячний Стіву Джобсу за те, що він знизив ціну того, що я вважаю «справжнім програмним забезпеченням», до копійки. Щоб бути ясно, це додаток не мій план виходу на пенсію. Я зрозумів, що якби я займався цим повний робочий день, я б не став отримувати з нього мінімальну заробітну плату. Тим не менш, це хороше джерело грошей на пиво/каву, і цей дохід допомагає мені регулярно його оновлювати.
Роберт: Як ви дізналися про досвід розробки під Windows Phone і як він працював з системою Sonos в цілому?
Енді: Хоча я працював у команді Phone, у мене не було нічого спільного з телефонними інструментами, хоча моя велика команда зробила, я думаю, що мої колеги виконали досить велику роботу з інструментами, а також з API-інтерфейси і код під ними. Я був менш закоханий в деяких з моїх колишніх товаришів по команді KIN, які працювали в App Hub, оскільки у нього були деякі реальні проблеми в 7.0 таймфреймі, але багато з речей, які мене спочатку турбували, були виправлені. Я використовував інструменти Microsoft тільки останні 20 років або близько того, тому я не можу порівнювати їх ні з чим іншим. Нещодавно я був свідком того, як хтось використовував Objective C на iPhone, і це виглядало жахливо!
Робота з обладнанням Sonos була сумішшю веселощів і розчарування, пристрої виставляють свої API через UPnP, і більшість речей легко зрозуміти, просто поглянувши на API або на невеликий аналіз мережевого пакета. Тим не менш, підтримка Music Service здійснюється через приватні API і часто зашифрована, зворотна інженерія - це важка робота. Моїм самим гордим моментом, ймовірно, було включення підтримки WiMP, незважаючи на те, що я не можу навіть отримати WiMP (музичний сервіс) тут, в США (він геозон). У мене був захоплений бета-тестер, який був готовий відправити мені мережеві знімки зі Швеції, щоб випробувати випадкові зміни, поки вони не спрацювали.
Я спробував поділитися своїми найважливішими технічними порадами по телефону у своєму блозі, але я зберігаю свої більш зважені відгуки для команди всередині країни, у нас є дуже активний список розсилки для співробітників, які пишуть додатки. Нам пощастило, що Microsoft зробила спеціальний дозвіл, що дозволяє співробітникам створювати, публікувати і отримувати прибуток від додатків, не викликаючи юридичних проблем з нашими трудовими договорами.
Роберт: Чи є у вас якийсь досвід розробки WP7, яким ви хотіли б поділитися, підводні камені, поради іншим при відвідуванні ринку?
Енді: Я активно слідую за опублікованими відгуками про мої додатки (використовуючи «Огляди додатків» від Ashterix), і це може бути обопільним мечем. Вам знадобиться жорсткий скін, оскільки деякі відгуки можуть бути дуже різкими. Крім того, не очікуйте, що негативні відгуки будуть конструктивними, лише деякі з них містять реальні причини низьких оцінок. Негативні відгуки про Phonos з моменту його випуску мали деякі загальні теми (наприклад, у мене були реальні проблеми з повзунком гучності більше року). Мені приємно сказати, що з часу випуску 3.0 у мене не було жодного поганого відкликання. (Відомі останні слова, вірно?). Я також створив сторінку Facebook для свого додатку, і це виявилося відмінним способом безпосередньої взаємодії з клієнтами. Я використовую його, щоб анонсувати нові версії, а також отримувати пропозиції та відгуки прозорим способом. Я також багато ховаюся на форумах Sonos, щоб подивитися, які функції люди запитують в офіційних додатках, а також у нескінченній гілці офіційного додатку WP.
Для тих, хто створює не «fart-програми», я рекомендую вам додати аналітику у ваш додаток, щоб ви могли точно бачити, які функції ваші клієнти використовують (і не використовують) (я використовую Flurry), і уважно стежити за даними про збої за допомогою App Hub і «LittleWatson». Крім того, переконайтеся, що клієнти можуть легко і просто зв'язатися з вами електронною поштою або через Facebook.
Ще одна сильна рекомендація - використовувати систему контролю версій. Я використовую Perforce, яка безкоштовна для таких невеликих проектів і добре інтегрується з Visual Studio. У мене був тільки один збій при відправці в Marketplace (щодо управління звуком): обов'язково перечитайте вимоги перед першою спробою відправки, щоб уникнути легко виправлених ікоти. Перед реальною відправкою я рекомендую представити бета-версію, це не тільки дозволяє іншим протестувати ваш додаток, але також може виявляти рідкісні проблеми в коді автоматичного виявлення можливостей, які в іншому випадку можуть призвести до того, що ваш додаток взагалі не буде працювати після підписання (У фонового відтворення звуку була ця проблема).
Якби я зробив все це знову, що б я зробив по-іншому? Ймовірно, я б отримав допомогу людини з хорошими навичками користувальницького інтерфейсу/XAML і зміг би створювати іконки, мої клієнти часто відзначали, що вся «річ користувальницького інтерфейсу» насправді не є для мене областю знань, а іконки займають у мене найбільше часу для створення і виглядати досить нудно
Роберт: Що ви думаєте про екосистему Microsoft прямо зараз?
Енді: Я думаю, що екосистема Mango хороша, але вибачте, я не можу багато сказати про Apollo або майбутні удосконалення платформи, які я хотів би бачити, тому що я «занадто багато знаю». Проте, я можу сказати вам, що більшість моїх бажань виглядають так, як ніби вони повинні бути виконані
Роберт: Що ви думаєте про WinRT і Surface?
Енді: Я купив дешевий відремонтований планшет Asus Win7 (250 доларів), щоб я міг грати з Windows 8, і я почав вивчати можливість переміщення свого додатку туди. Деякі речі дуже схожі (наприклад, C #, асинхронна модель), деякі речі виглядають однаково, але злегка розрізняються (XAML), а деякі дуже різні (мережа, навігація, життєвий цикл програми). Я також розчарований тим, що велика частина документації WinRT MSDN є надзвичайно короткою і/або тільки для Javascript, але я впевнений, що вони виправлять це до випуску.
Мені подобається зовнішній вигляд Surface, хоча я ще не бачив його в плоті (навіть тут занадто таємно), але мені доведеться отримати ARM, як тільки зможу.
Роберт: Розкажи мені про свої плани на майбутнє.
Енді: У мої плани входить оновлення Apollo для мого додатку і може бути версія для Windows 8, якщо я зможу вирішити деякі технічні проблеми. Win8 знову для мене як телефон: нова платформа, нові інструменти і нове обладнання. Мені подобається виклик, але я дотримуюся C #, так як Javascript особисто для мене не цікавий, і написання програми з інтенсивним користувальницьким інтерфейсом, такого як Phonos на C++, було б божевіллям. Я пишу C++ щодня на роботі, якщо я збираюся програмувати вдома «для задоволення», цього не буде на C++, я вас запевняю!
Спасибі, що приділили мені час, Енді, чудові ідеї!
Ви можете перевірити програму тут.
Роберт Бранд
