03 May 2011

I Have An App For That! (Pt. III)

(продолжение, вторая часть тут)


Энтузиазм


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

Нынешние творцы полагают, что Федор Михайлович вряд ли пытался бы рассчитаться по долгам брата писательством в эпоху либрусека и флибусты.

Вокруг меня есть множество примеров, когда люди делают что-то общественно полезное бесплатно, и мотивы при этом у них очень разные. Один мой хороший знакомый тратит кучу времени, работая над материалами для википедии (кстати, подумайте о самом феномене этого ресурса!). Другой пример -- мой коллега по работе почти каждый день рисует и правит карты Одессы и Одесской области в рамках проекта travelGPS. У него это хобби. Или я сам -- не первый год трачу кучу времени и сил на ведение блога, который не приносит мне ни копейки денег. Ну а тот факт, что, в свое время, я создал и пустил в массы несколько бесплатных приложений для Windows  Mobile как раз и подводит нас к тому моменту, ради которого я затеял весь этот разговор. Ибо процесс создания программ тоже попадает под категорию творчества и, иной раз, тот или иной софт пишется на голом энтузиазме, с почти альтруистическими порывами, вроде желания написать какую-то удобную штуку для себя, или даже просто разобраться как работает та или иная штука в свежекупленном смартфоне.

Иной раз GNU трудно выжить в мире хищного капитализма

Насколько значимым и мощным может быть это необъяснимое желание просто творить много говорить не буду, скажу только два слова -- GNU Project. Конечно, я не такой наивный, и хорошо знаю, что во многие направления свободного программного обеспечения вливаются десятки миллионов долларов от капиталистических монстров IT, и, тем не менее, это не отрицает того факта, как много всякого хорошего и полезного было сделано исключительно силами добровольцев и энтузиастов.


Выше я уже рассказывал о тех славных временах, когда рассуждать о программах для мобильных платформ можно было только в контексте двух операционных систем -- Symbian и Windows Mobile. И, собственно, последняя могла похвастаться рядом очень мощных бесплатных программ, и отличных примеров этого есть множество -- от одной из лучших мобильных книгочиталок того времени AlReader’а, до open source проекта медиаплеера TCPMP, который был настолько мощным и всеядным, что и сегодня является недостижимым идеалом для многих владельцев современных устройств на Android или iOS (и это при том, что проект больше пяти лет не поддерживается!).

Мне кажется, что с появлением App Store взгляд на мобильные приложения со стороны умеющих программировать людей очень сильно изменился. Эпоха романтизма ушла. Конечно, какие-то раскаты грома гремели и ранее. Можно, например, вспомнить придумку Nokia с сертификатами, когда, с определенного момента, появилось нововведение -- любое мало-мальски серьезное приложение обязательно должны было быть подписано финнами, иначе пользователь не сможет его установить в свой смартфон. Преподносилось это все как забота о пользователях, попытка отгородить его, несчастного, от вирусов и прочих зловредных программ, а по факту, делалось в рамках крестового похода против пиратства, как попытка привлечь тех, кто хочет зарабатывать на своих программах... Но на фоне тех изменений, которые пришли в мир мобильного софта с появлением в нем Apple, это все были только цветочки. С одной стороны, появился дух наживы, воздух наполнился манящим запахом легких денег. С другой -- и разработчика, и пользователя связали по рукам и ногам. То нельзя, того не делай, это “дублирует встроенную функциональность” и вообще.

Концепция тотального контроля и над пользователем, и над разработчиком, стала выглядеть сегодня настолько привлекательной, что магазины приложений не только шагнули из мобильного мира iOS на Mac OS X, но и передалась вирусным путем в головы главного конкурента Apple. Новая мобильная ОС от Microsoft, Windows Phone 7, один в один скопировала закрытую и монополизированную модель распространения приложений. Дальше -- больше, в Сети ходят упорные слухи о том, что магазин приложений появится и в грядущей большой Windows 8.
Осталось сделать последний логичный шаг -- запретить установку приложений на большой компьютер из мест, отличных от магазина создателя вашей ОС.

… и неизменные “Angry Birds”. Магазин без них, как “сильпо” без горилки

На обратной стороне всей этой истории у нас находится Android. Нет, магазин приложений есть и тут, но, у пользователя всегда есть возможность поставить приложение из любого источника, хоть бы и из файла, скачанного с крайне сомнительного места. Кстати, сам магазин отличается просто неприлично высоким процентом бесплатных приложений.

Трудно сказать, как долго будет длится этот “беспредел”, потому что на Google, уверен, идет сильное давление со стороны производителей смарфтонов, на которых, в свою очередь, давят мобильные операторы. Ведь о чем говорит история с закрытыми “на какое-то время” исходниками Honeycomb? О том, что крупные вендоры сильно попросили Google сделать такой ход, дабы получить на рынке фору в конкурентной борьбе с noname планшетами китайского производства. Это с одной стороны. А с другой, открытые исходники и демократическое поведение Google, приводит к тому, что производители крайне фривольно обращается с платформой. Они не только меняют в ней поисковик Google на Bing, но и закрывают root доступ к системе, ставят альтернативные магазины приложений, и никто не помешает им завтра, по вполне понятным мотивам, закрыть возможность установки приложений из любых apk файлов.

Новые правила игры в области мобильных приложений самым прямым образом бьют по GNU философии. Широко известный прецедент с VLC плеером для iOS вскрыл суть проблемы -- GNU лицензия и правила игры, по которым функционируют магазины приложений, вроде App Store или Windows Marketplace, прямым образом противоречат друг другу. Выходит, что миру свободного программного обеспечения и новомодному мировоззрению в области мобильных приложений совсем не по пути...

Для тех, кому интересно, что происходит с открытыми платформами, могут посмотреть на движение, образовавшиеся вокруг Nokia N900. Конечно, есть огромная пропасть между гиковскими линукс штучками вокруг этого смартфона, и интересами среднестатистического пользователя, который заходит в единый магазин приложений и в один клик тратит кровно заработанные $1.99 на новую игрушку серии “Angry Birds”. И, тем не менее, сам факт появления некоторое время назад VLC плеера для iOS говорит нам о том, что направленная в нужное русло энергия энтузиастов приносит плоды, интересные самым широким группам пользователей.

Ну и закрыть тему энтузиазма я хотел бы вопросом “быстрого старта”.

С одной стороны, владельцы всех мобильных платформ понимают, как важно привлечь на свою платформу максимальное число разработчиков, и поэтому, например, стоимость средств разработки зачастую весьма условна. Но с другой, если мы попытаемся разыграть в голове сценарий более менее реальных действий, которые надо сделать энтузиасту, чтобы увидеть на экране своего устройства свое первое приложение, то мы заметим интересные вещи.

Hello, Kitty!

Если девятикласснику Васе вдруг пришло в голову попробовать что-то написать для своего Android смартфона, то он поставит себе Google App Inventor и уже через полчаса будет наблюдать на экране своего телефона собственноручно написанный “Hello, World!”. Кстати, зрелище это обычно сильно воодушевляет, и Вася захочет новых подвигов и свершений.

Если Васе не повезло, и он является счастливым владельцем iPod Touch, то тут начинаются проблемы, о которых я уже писал. У нашего Васи почему-то унылый компьютер с Windows, а не православный Mac, а значит с запуском Xcode у нашего школьника есть проблемы. Еще у Васи нет банковского счета, и нет кредитки, с которой он может перевести кровные $99 за то, чтобы стать “настоящим” разработчиком. Скажу больше, даже если Вася и выклянчит эти деньги у своих родителей, то процесс прохождения регистрации может запросто растянуться на месяц или даже больше... Согласитесь, довольно тернистый путь для человека, который в один прекрасный день просто решил попробовать силы в написании чего-то простенького для своего гаджета.  

Счастье -- дело техники  


Ну вот, наконец-то я добрался до более-менее объективной штуки в вопросах разработки -- до технической составляющей.

Собственно, в технической плоскости всё, что связано с вопросами создания приложений, очень часто называют одной абривеатурой -- SDK. Давайте посмотрим из чего конкретно состоит этот зверь.

Первое -- используемые языки программирования (ЯП) для создания приложений. На этом моменты мы остановимся подробнее в следующем разделе.

Дальше -- API. Это некие примитивы для доступа к функционалу, реализованному на уровне операционной системы. Теоретически, язык программирования и сопутствующая ему стандартная библиотека это те вещи, которые должны работать на множестве платформ. А вот API, это вещи, специфические для конкретной ОС или платформы. Однако на практике очень часто язык программирования практически не отделим от своих библиотек, которые часто называют в этом случае фреймворком, а сам фреймворк при этом бывает практически намертво привязан к конкретной платформе или ОС.

Дальше -- IDE, т.н. интегрированная среда разработки. Это программа для ПК, в которой происходит полный цикл разработки -- написание исходного кода, его компиляция, запуск на эмуляторе или реальном устройстве, процесс отладки. IDE очень большая и сложная программа. Удобство работы в этой программе играет огромную роль в удобстве разработки в целом.

IDE -- приблизительно это выглядит вот так

Следующий момент -- документация. Думаю, этот момент понятен без особых объяснений. Его важность не стоит преуменьшать.
Сюда же можно отнести и примеры приложений, которые обычно входят в состав SDK, и наличие хороших сетевых комьютнити и форумов, и наличие бумажной литературы по теме.

На этом, пожалуй, всё.
Ниже я более подробно остановлюсь на каждом этом аспекте, применительно к современным мобильным платформам.
(продолжение тут)

No comments:

Post a Comment