Сергей Брин и 10 заповедей Android API

Кого-то из вас может вполне удивить перевод статьи о программировании под Android у меня на блоге. В конце концов, при чем тут Android API (API – Application Programming Interface, системные вызовы, которые используют разработчики для создания приложений на определенной платформе)? Однако, все не так однозначно.
Ведь известно, что успех платформы зачастую зависит от того, насколько легко разработчикам писать приложения для этой платформы. Так вот, сталкиваясь в последнее время с темой создания приложений для iPhone, подумал, что кому-то может быть интересно узнать, как оно там, на альтернативной платформе.
Кстати, если кому-то надо приложения под iPhone, я знаю, кто их вам может написать 🙂 Обращайтесь.
—————–
Если и есть что-то, на что не влияет экономический спад, так это рынок мобильных телефонов. Этот феномен наиболее очевиден на вечеринках и в барах Сан Франциско, где существует хорошо известная, хотя и неозвученная традиция, что в любой группе тусующих, тот, у кого самый дешевый телефон, покупает первый графин Pabst Blue Ribbon.

Мы находимся в середине рецессии. А Google Android собирается ввойти на рынок, на котором быстро набирает обороты компания, специализирующаяся на создании клевых штук, которые, как вы думаете, вам нужны. Но я все равно практически уверен, что не зря потратил последние 6 дней моей жизни изучая Google API и создавая приложение для Android.
У вас есть API, теперь что?
Google выпустила Android SDK 1.0 в прошлом месяце, и никого это особо не волновало. Но кто-то должен сказать что-то хорошее о нем. Это открытый API, бесплатная документация, и Google не будет угрожать раскаленным утюгом рынку приложений, как это делает Apple. Основная приманка заключается в том, что Google старается облегчить множество проблем для начинающих разработчиков.
Одна из основных причин, по которой программисты любят создавать API, заключается в том, что они любят писать код, который не делает ничего полезного, и при этом все равно чувствуют, как будто они передали заповеди Моисею. Другими словами, проще нарисовать какую-то фигню на доске, чем написать программу, которую люди захотят использовать.
[ad#intext-inside]
В случае с телефоном под Android, вы получаете кучу всяких прикольных штук: сервис позиционирования по GPS, акселлерометр, WiFi, 3D-графику, и систему воспроизведения аудио и видео. Клево, но что с этим делать? Сергей Брин написал невероятную, поражающую программу, которая определяет, сколько времени телефон находится в воздухе, когда вы его бросаете. Типа обалдеть.
Определив свой рынок, как тусующую молодежь в Сан Франциско, я придумал такую идею. У людей в СФ есть проблема: когда они собираются за городом — в Напа для дегустации вина, к примеру, или на озере Тахо для сноубординга — у них есть высокая вероятность попасть в город, где обитают преимущественно республиканцы. Наткнуться на кого-то с противоположным мировоззрением либо благословление, либо проклятие для жителя Сан Франциско (зависит от того, у кого спрашивать), но в любом случае, было бы здорово, если бы что-то могло им сообщить, что они зашли на красную территорию.
У телефонов Google будет GPS, а Калифорния предоставляет статистику по регистрации голосующих, так что это – замечательное совпадение родом из Маунтейн Вью.
Десять баллов Гриффиндору
Вся разработка Android ведется на Java, и Google предоставила плагин для Eclipse в своем SDK. Интеграция очень простая, за исключением стандартной проблемы, где надо заставить работать JUnit с вашим проектом Android. Если вы попробуете написать приложение для Android без Eclipse, готовьтесь к трудностям: надо написать декларационные файлы, скрипты Python, которые надо запускать, чтобы создать определенный код, байткод, который надо реинтерпретировать, и кучу всякого другого барахла, с которым вы не хотите сталкиваться.
Google также предлагает эмулятор для устройства. Как это обычно происходит с эмуляторами, этот работает очень медленно, стартуя больше двух минут на моем 1.5GHz Athlon. К счастью, его можно не выключать и загружать в него новый код.
Сами API неплохие. Я поигрался с ними немного, чтобы понять, как находить нужные мне объекты, чтобы отрисовать эту чертову штуку, полистав Javadocs. Я использовал интерфейс geocoder вместе с location API, чтобы получить информацию в каком городе находится телефон, а затем наложить это на информацию про регистрацию голосующих для определения вероятности, что любой человек, которого вы встретите на улице — республиканец.
Разработка графического интерфейса в Android вначале напоминает об ужасных воспоминаниях разработки под Swing. Вы можете создать весь интерфейс программно, если хотите, но Android поощряет использование XML для дизайна интерфейса. Это позволяет создавать более аккуратный код и проще для тех, кто натер уже мозоли в веб-программировании за последние пару лет.
Превратите экран во что-то клевое
[ad#intext-inside]
Изначально я хотел написать программу, которая работает в фоновом режиме и постоянно мониторит ваши GPS координаты, реагируя в нужный момент. Используя примеры Google, я написал программу, которая может опрашивать GPS и проверять ваше местоположение каждый раз, когда вы ее запускает, но написание фонового процесса ускользнуло от меня. Я знаю, что это можно сделать, просто я подумал, что у меня нет времени, чтобы изучить всю программную модель Android. Почему? Потому что я любитель с небольшим объемом внимания.
Google надеется привлечь много разработчиков, используя открытую платформу, но мне кажется, что они не понимают, что очень многим разработчикам и так есть чем заняться, вместо заморачивания с мобильным телефоном. Особенно учитывая, что читать руководство так же весело, как и форму возврата налогов. Разработчики тоже пользователи. Нам нужен хороший интерфейс.
Первая часть руководства — это Hello, World. Как только я его прошел, я хочу сделать что-то прикольное. Вторая часть руководства — это программа-текстовый редактор. Редактор текста? Это мобильный телефон, со всякими примочками. Покажите мне, как заставить его бибикать и всякое такое. Цель документации заключается в том, чтобы напомнить мне, почему я трачу мое свободное время, сидя в своей компьютерной комнате, вместо того, чтобы сидеть на диване с пивом.
В любом случае, подход Google «если вы построите, то они придут» не совсем подходит для экономики, находящейся в упадке. Телефон будет стоить 179 долларов, но Google и T-Mobile смогут завалить рынок и откусить кусок у Apple только если они начнут принимать имущество, находящееся в залоге, вместо наличных денег.®
Оригинал