Блог О пользователеmobile-developer

Регистрация

Календарь

« Декабрь 2009  
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
1 |2
 

Мнэ… Еще один – Samsung Bada – Новая мобильная платформа


bada_logoВ зоопарке мобильных платформ пополнение. Samsung анончировал новую мобильную платформу Bada.


Bada в переводе с корейского значит «океан» и будет построен на linux-платформе с открытым SDK. Первые телефоны на этой платформе появятся уже в начале следующего года.


В отличии от нормальных людей Google и вслед за менее нормальными Nokia и Palm, Samsung собираются развивать новую платформу исключительно для собственных устройств.


Ранее компания объявила о планах использовать платформу Android для своих мобильных устройств и собиралась постепенно довести долю Android-устройсв до 30%. Теперь, видимо, нашим надеждам не суждено сбыться и для разработчиков, которые хотят позиционировать свои приложения для использования на аппаратах Samsung, прийдется изучать новый инструментарий.


На сколько можно судить из описания на официальном сайте платформы Bada, API будет сервис-ориентированным (наверное по аналогии с WebOS), что по словам Samsung позволит разработчику сконцентрировать усилия на своем приложении, не вдумываясь о внутренней реализации предоставляемых системой сервисов. Ну что же, посмотрим. Пока SDK не качал т.к. на данный момент он доступен только для партнеров, более подробно можно будет сказать после установки и более детального рассмотрения.


Вобще, создание новой платформы – очень очень странное решение. Вместо того чтобы унифицировать программные и пользовательские интерфейсы, компании придумывают все новые и новые велосипеды. Да, возможно использование новой платформы позволит создать ситуацию, когда пользователь не сможет отказаться от сервисов, которые идут в поставке для устройства на этой платформе и недоступны на других, но я более чем уверен, что, используя тот же Android, можно было бы достичь того же результата. так например поступает компания HTC, выпуская устройства с Windows Mobile – смотрят что GUI у WM немного ммм… неудобный и делают свою оболочку с намного более приятным user experience. За это пользователи и любят их устройства. На сколько я помню, для Android они делают то же самое.


В общем, ждем новостей по поводу Bada. Хотя бы публичных инструментов разработки и эмуляторов. Дальше будет видно.



Post from: Mobile-Developer.ru

Мнэ… Еще один – Samsung Bada – Новая мобильная платформа








Оригинал записи на mobile-developer.ru

 
Теги: bada|sdk|tools|news
 
 

Вышел MonoTouch 1.4


Вышла новая версия инструментария разработки .NET-приложений для iPhone – MonoTouch 1.4. MonoTouch


Нововведения вот какие:



  • Значительно увеличена скорость запуска MonoTouch-приложений
    1. На треть уменьшен размер результирующих бинарников
      1. Много улучшений в отладчике
        1. Куча полезных улучшений в коде, связывающем Objective C API с MonoTouch API;
          1. AudioToolbox — новый низкоуровневый API для работы с аудио (я так ждал этого!);
            1. Другие мелкие багфиксы.

С полным списком нововведений в MonoTouch 1.4 можно ознакомиться здесь.


Post from: Mobile-Developer.ru

Вышел MonoTouch 1.4








Оригинал записи на mobile-developer.ru

 
 
 

А может встретимся на LegalCamp?


LegalCamp0918 декабря 2009 в Киеве состоится первая конференция LegalCamp, которая посвященная актуальным правовым вопросам в Интернет индустрии.


Разрабатываете ПО «вагонными нормами» и хотите официально оформить свой бизнес? А может уже оформили, но есть «подводные камни», бороться с которыми самостоятельно не очень просто, и нужен дельный совет в решении проблемы? Тогда, скорее всего, темы, которые предложены для обсуждения на конференции, будут для Вас очень интересными. Для меня – точно интересны (как раз дожил до «вагонных норм» ;) ).


Тематика LegalCamp 2009 включает в себя три блока:


  1. Законодательное регулирование Интернет;
    1. Защита интеллектуальной собственности;
      1. Правовые аспекты интернет-бизнеса.

        Организаторами LegalCamp представленные следующие темы докладов:



        • Какую юридическую форму предприятия выбрать для ведения интернет-бизнеса?
          1. Правовая защита контента.
            1. Законодательное регулирование электронных денег.
              1. Законно ли получение прибыли с рекламы на сайте без регистрации СПД?
                1. Основные юридические проблемы, с которыми сталкиваются стартапы
                  1. Как защитить свой бизнес от недобросовестных сотрудников
                    1. Законодательное регулирование Интернет
                      1. Иностранная компания, как инструмент минимизации налогообложения
                        1. ИТ-стартапы в России. Юридические аспекты. Авторское право в России и за рубежом
                          1. Ответственность онлайн СМИ за неправдивую информацию.
                            1. Как защитить свой ИТ-продукт от пиратов.
                              1. Доменные имена. Как защитить доменное имя?
                                1. Перспективы правового регулирования электронной коммерции.
                                  1. Ответственность за незаконную предпринимательскую деятельность.
                                    1. Как защитить себя в технологическом бизнесе от недобросовестных партнеров и инвесторов.
                                      1. Правовые перспективы развития электронного документооборота.
                                        1. Закон 404, что нас ждет?
                                          1. Интернет-пиратство, мировые тенденции.
                                            1. Государственная регистрация интернет-сайтов в качестве электронных СМИ (сетевые СМИ).

        Про СМИ – это для меня пока сильно жестоко, а вот по поводу ведения бизнеса, проблем стартапов и защиты ПО от пиратов я бы с удовольствием узнал что-то новое.


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


        Если кто-то из читателей этого блога тоже планирует посетить сие действо, отпишите plz в комментариях или в почту, может там встретимся вживую и обсудим «насущные проблемы» за кружкой.. чаю или еще чего покрепче. На самом деле, я очень надеюсь что кто-то, все же, прийдет. :)


        Более детально с условиями участия в конференции можно ознакомиться на официальном сайте LegalCamp.


        Post from: Mobile-Developer.ru

        А может встретимся на LegalCamp?








Оригинал записи на mobile-developer.ru

 
Теги: news
 
 

ХабраКарма — пишем приложение на Python for S60


Хабрапользователь kAIST любезно предоставил нам статью о создании приложений для S60 на Python, использующих HabraHabr API.


После того, как мы разогрели аппетит к Python for s60 и начали учиться писать приложения, хочу предложить продолжить постигать программирование для symbain на замечательном языке программирования python.


На этот раз сделаем что нибудь полезное, а именно напишем приложение, которое будет показывать карму. Не просто показывать, а выводить поверх всех «окон» табличку, на которой будет значение кармы и разница с предыдущем значением. Помимо этого, программу будет издавать победный гонг при повышении кармы и крик отчаяния при ее понижении. Ко всему прочему, мы запустим ее, как сервер, то есть она не будет отображаться в списке запущенных программ.


Тем, кому больше важен результат, нежели процесс, милости просим в конец статьи, где вас ожидает готовое приложения HabraKarma 1.0 !!!


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



Общие принципы работы


Сама программа будет состоять из 2-х частей: сам сервер, который выполняет всю работу, и GUI, в котором мы будем настраивать работу сервера, запускать его и останавливать.


Сам сервер, запускается функцией start_server из модуля e32. Параметр у функции всего один — полный путь к питоновскому скрипту, который следует запустить в роли сервера. Да да, все так просто, но с некоторыми ограничениями.


Так как сервер работает в фоне, он не может использовать модуль appuifw, отвечающий за UI. Но нам это и не нужно, так как демонстрировать результат работы мы будет, используя модуль topwindow, который позволяет выводить изображения поверх всех «окон». Кроме этого, нам доступен еще один модуль, под названием globalui, который позволяет так же поверх всех «окон», выводить такие вещи, как разные запросы, предупреждения, уведомления и пр. Этим мы тоже воспользуемся, демонстрируя факт запуска и остановки сервера.


Еще одно ограничение, это невозможность доступа к файлам, размещенных в папке с приложением (x:/private/UID). Поэтому, если мы хотим использовать различные мультимедийные файлы, файлы настроек, мы должны положить это в какое нибудь нейтральное место, например в папку x:/system/data/AppName. Эта папка имеет атрибут «скрытый», поэтому помещенные туда картинки не будут видны в галереи, а аудио файлы в медиатеке.


Еще одна проблема, это «оторванность» сервера от основной программы. То есть запустить мы ее может, а вот узнать, запущена ли она, или остановить, при использовании стандартных модулей нельзя. В нашей программе мы поступим следующим образом:


Сервер, при запуске создает файл c названием habra_flag в корне диска D. При завершении работы сервера, этот файл удалим. Теперь, при запуске оболочки, проверим, существует ли искомый файл. Если да, значит сервер считаем запущенным. Кроме этого, нужна возможность остановки сервера. Для этого, в этот самый файл запишем, что нибудь, а на сервере, в цикле, будем проверять. Если длинна файла больше нуля, останавливаем работу.


У некоторых возможно появится вопрос, что за диск D, на который м собираемся писать файл habra_flag. Это ram диск, небольшого объема, который очищается при перезагрузки. Используя его, мы убиваем двух зайцев: при перезагрузки телефона, ручного завершения нашего сервера, файл с флагом исчезнет, и файловая система на ram диске имеет большую производительность. Для более сложного взаимодействия с сервером, можно использовать сокеты.


Пишем UI


Мордой приложения, которое будет запускаться по «клику» на иконку программы, будет класс Form, который практически от и до описан в этой вики статье. Выглядит это вот так:


ХабраКарма - GUI



#coding:utf-8
from appuifw import *
import e32
import os
# папка, в которой лежат файлы настроек, медиа файлы и пр.
data_path=os.getcwd()[]+u':\\System\\data\\HabraKarma\\'

class Main:
def __init__(self):
app.screen='normal'
# читаем файл настроек, который является словарем,
# тупо сохраненным через repr :)
self.settings=eval(open(data_path+'set.dat').read())
# Список полей для нашей формы, вставляем сохраненные значения в ее поля.
self.fields=[
(u'Хабраюзер','text',self.settings['user']),
(u"Автообновление (мин.)",'number', self.settings['time']),
(u"Включить звук?", 'combo', ([u'Да',u'Нет'], int(self.settings['sound']))),
(u"Считать разницу", 'combo', ([u'С начала работы',u'С последнего обновления'], int(self.settings['diff']))),
(u"Положение X",'number', self.settings['X']),
(u"Положение Y",'number', self.settings['Y']),

]
# создаем форму с флагами
self.form=Form(self.fields,flags=FFormDoubleSpaced|FFormEditModeOnly)
# задаем функцию, которая будет сохранять значения из формы
self.form.save_hook=self.save
# если сервер уже запущен, то в меню должно быть "остановить" и наоборот
if os.path.exists(u'd:\\habra_flag'):
self.form.menu=[(u'Остановить',self.stop)]
else:
self.form.menu=[(u'Запустить',self.start_server)]
# "выполняем" форму, то есть она будет показана на экране, до тех пор пока
# из нее не выйдем.
self.form.execute()
# после выхода из формы, проверяем запущен ли сервер и предлагаем его запустить
if not os.path.exists(u'd:\\habra_flag'):
if query(u'Запустить?','query'):
self.start_server()

def start_server(self):
# собственно функция запуска сервера
self.form.menu=[(u'Остановить',self.stop)]
e32.start_server(data_path+'server.py')

def stop(self):
# функция остановки сервера.
self.form.menu=[(u'Запустить',self.start_server)]
open(u'd:\\habra_flag','w').write('stop')

def save(self,arg=None):
# берем значения из формы и сохраняем их в файл настроек.
self.settings['user']=arg[][2]
self.settings['time']=arg[1][2]
self.settings['sound']=arg[2][2][1]
self.settings['diff']=arg[3][2][1]
self.settings['X']=arg[4][2]
self.settings['Y']=arg[5][2]
open(data_path+'set.dat','w').write(repr(self.settings))
return True

a=Main()

Осталось написать сервер :)



#-*-coding:utf-8-*-
import os
import e32
import sys
# перенаправляем ошибки в файл.
sys.stderr=open('d:\\err.txt','w')
import globalui as ui
import topwindow
from graphics import *
import urllib
import audio
open(u'd:\\habra_flag','w').write('')

data_path=os.getcwd()[]+u':\\System\\data\\HabraKarma\\'
# показывам, что мы запустились.
ui.global_note(u'Хабрастарт!')

class Habra:

def __init__(self):
# открываем изображения
self.habr_img=Image.open(data_path+'habr.png')
self.update_img=Image.open(data_path+'update.png')
# читаем настройки
self.settings=eval(open(data_path+'set.dat').read())
self.last_karma=eval(open(data_path+'karma.dat').read())
# открываем звука
self.bad_sound=audio.Sound.open(data_path+'bad.wav')
self.good_sound=audio.Sound.open(data_path+'good.wav')
self.loop=True
# создаем окно TopWindow
self.top=topwindow.TopWindow()
# указываем закругление
self.top.corner_type='corner5'
self.top.size=(170,35)
# ставим позицию из файла настроек
self.top.position=(self.settings['X'],self.settings['Y'])
self.top.show()
self.karma_screen()
self.mainloop()

def stop(self):
self.loop=False
self.top.hide()

def karma_screen(self):
# функция, вызываемая для обновления
self.update_screen()
e32.ao_sleep(0.2)
# тянем инфу с харба api
data=urllib.urlopen('http://habrahabr.ru/api/profile/'+self.settings['user']).read()
# меня наверное запинают, но я не хочу тянуть в этом
# случае библиотеку для парсинга xml
karma=float(data.split('')[1].split('')[])
# сравниваем новую карму со старой и
# в зависимости от ситуации собираем текст, указываем цвет
# и играем звук, если это задано в настройках
if self.last_karma karma_diff=u'(+'+str(abs(self.last_karma-karma))+u')'
karma_color=0x009f31
if not self.settings['sound']:
self.good_sound.play()
elif self.last_karma >karma:
karma_diff=u'(-'+str(abs(self.last_karma-karma))+u')'
karma_color=0xc30202
if not self.settings['sound']:
self.bad_sound.play()
else:
karma_diff=u''
karma_color=0xffffff

if self.settings['diff']:
self.last_karma=karma
open(data_path+'karma.dat','w').write(repr(karma))

# здесь мы узнаем, сколько пикселей по ширине бужет занимать текст
karma_width=self.img.measure_text(unicode(karma))[][2]
diff_width=self.img.measure_text(karma_diff)[][2]
# а дальше дело техники :)
self.img=Image.new((45+karma_width+diff_width,35))
self.top.size=(self.img.size[],35)
self.img.text((35,25),unicode(karma))

self.img.text((35+karma_width+5,25),karma_diff,fill=karma_color)
self.img.blit(self.habr_img)
self.top.add_image(self.img,(,))

def update_screen(self):
# это будет выводится во время обновления
self.img=Image.new((165,35))
self.top.size=(self.img.size[],35)
self.img.blit(self.update_img)
self.img.text((35,25),u'Обновляется')
self.top.add_image(self.img,(,))

def mainloop(self):
# и пускаем главный цикл сервера
interval=self.settings['time']*60
count=
while self.loop:
# если нам так приказали, останавливаем сервер
if open(u'd:\\habra_flag').read():
os.remove(u'd:\\habra_flag')
ui.global_note(u'Хабрастоп!')
self.loop=False
count+=1
# если пришло время, обнавляем карму.
if count >interval:
count=
self.karma_screen()
e32.ao_sleep(1)

habr=Habra()

Осталось собрать все это дело в sis и наблюдать за кармой :)


Исходники, вместе с картинками, звуками, иконкой можно взять ЗДЕСЬ. В ensymble в опциях сборки прописывать:
–extrasdir=data –lang=RU –icon=путь_к_иконке


И забираем результат…


Итак, представляю вашему вниманию приложение HabraKarma для symbain 9.x
Установите приложение, введите ваш username, настройте время обновления, положение окна. Теперь можно запустить сервер, который будет отображать поверх всех окон вашу карму. После этого, программу можно закрыть, окно останется до тех пор, пока вы его не выключите, зайдя опять в программу.


Скачиваем ОТСЮДА (sis, 56 кб, подписи не требует)


Не забывайте, что для работы необходим Python Runtime не ниже версии 1.9.7 (скачать).
Python и программу ставить на один и тот же диск!
©


Post from: Mobile-Developer.ru

ХабраКарма — пишем приложение на Python for S60








Оригинал записи на mobile-developer.ru

 
Теги: symbian|python
 
 

Открывать магазины приложений нынче модно. Intel тоже хочет сделать «это»


Intel Atom Developer ProgramВслед за Microsoft, Apple и Palm, Intel тоже решили создать площадку для продажи приложений. На сей раз это приложения для устройств с процессором Intel Atom. Желание, само по себе, понятно – всем хочется больше денег, но от этой пестроты возможностей уже начинает рябить в глазах.


Для привлечения разработчиков к новому своему детищу, Intel предлагают инициативу Intel® Atom™ Developer Program и в рамках этой инициативы инструментарий для разработчиков приложений, создающих программы для нетбуков на базе процессоров Atom – Intel® Atom™ Developer Program Software Development Kit (SDK) .


На данный момент SDK работает под Windows и Moblin, но обещают поддержку Adobe AIR и Microsoft Silverligh.


Открытие онлайн-магазина приложений запланировано на следующий год. Условия те же, что и у всех – Intel отбирает у разработчика 30% прибыли, ну и еще и ко всему «абонплата» за участие $99 в год. Кстати, на данный момент там есть временная бесплатная регистрация. Кому интересно – поспешите :) , я уже зарегистрировался.


Intel в среду заявил, что более чем 50 миллионов нетбуков будут проданы к концу 2009 года. Так что потенциальный рынок сбыта «нетбучных» приложений не так уж и мал.


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

Post from: Mobile-Developer.ru

Открывать магазины приложений нынче модно. Intel тоже хочет сделать «это»





src="http://pagead2.googlesyndication.com/pagead/show_ads.js">







Оригинал записи на mobile-developer.ru

 
Теги: netbook|sdk|news
 
 

Видео: Создание Flash-приложений для iPhone


На GotoAndLearn.com появился видео-урок, описывающий процесс создания Flash-приложения для iPhone с использованием Flash CS5. Видео также доступно для загрузки и оффлайн-просмотра.


В видео показазан процесс создания Flash-приложения с простейшей анимацией, написание обработчиков событий от акселерометра на Action Script, а также описан процесс настройки компиляции приложения в CS5 и загрузка на устройство.


Post from: Mobile-Developer.ru

Видео: Создание Flash-приложений для iPhone








Оригинал записи на mobile-developer.ru

 
Теги: iphone|flash
 
 

Больше половины разработчиков для Android недовольны своими доходами


Разработчиков мобильных приложений для платформы Google Android не устраивает работа онлайнового магазина приложений Android Market, говорится в исследовании аналитиков Skyhook Wireless, которые в октябре опросили 30 разрабочиков приложений под Android.



  • 57% не устраивает получаемый доход.
    1. 90% сообщили, что число загрузок их приложений не превышает 10000.
      1. 43% считают, что «Google Checkout» тормозит продажи приложений и требуют упрощения системы платежей.
        1. 82% не устраивает дизайн Android Market, так как он усложняет поиск старых и заметность новых приложений.
          1. 46% уверены, что разнообразие версий Android на выпускаемых устройствах существенно усложнит разработку, по причине проблем совместимости.

Ну и самое печальное для Android Market: 68% разработчиков сомневаются в целесообразности развития и поддержке своих Android-приложений.
pdf-версия исследования


За новость спасибо хабрапользователю Devd. ©


Post from: Mobile-Developer.ru

Больше половины разработчиков для Android недовольны своими доходами








Оригинал записи на mobile-developer.ru

 
 
 

Вышел .NET Micro Framework 4.0


Вышла новая версия .NET Micro Framework. В этой версии куча нововведений:



  • Поддержка HTTP и HTTPs как клиентской так и серверной части.
    1. Поддержка Multi-Touch. Для этого создана объектная модель и эта функция доступна в эмуляторе. Переработана поддержка жестов (gestures).
      1. Поддержка версионирования сборок.
        1. Поддержка SSL и HTTPS в эмуляторе.
          1. XML-парсер переработан и теперь использует native-код.
            1. Коллекции переведены в native-код.
              1. API для синхронизации времени с сервером.
                1. Поддержка различных разрешений экрана.
                  1. Поддержка нотификаций о сотоянии питания.
                    1. Кисти\градиенты
                      1. Различные оптимизации в ядре.

Узнать больше об этой версии .NET Micro Framework можно в блоге разработчиков.


Скачать .NET Micro Framework SDK 4.0 можно здесь.


Post from: Mobile-Developer.ru

Вышел .NET Micro Framework 4.0








Оригинал записи на mobile-developer.ru

 
 
 

Windows Marketplace for Mobile доступен для WM 6.0 и WM 6.1


Windows Marketplace for MobileКак известно, запущенный ранее Windows Marketplace for Mobile был направлен на работу с Windows Mobile 6.5, но теперь пользователи Windows Mobile 6.0 и 6.1 также смогут пользоваться этим сервисом.


Если у вас смартфон на базе Windows Mobile 6 и выше, то зайдя с него на адрес mp.windowsphone.com вы можете установить небольшой клиент, который позволит вам производить навигацию по магазину.


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


Для разработчиков, создающих программы для Windows Mobile, подобный шаг Microsoft поможет знач.ительно расширить целевую аудиторию для своих приложений. Надеюсь, в скором времени появится возможность позиционировать платные продукты и для российского рынка.


Post from: Mobile-Developer.ru

Windows Marketplace for Mobile доступен для WM 6.0 и WM 6.1








Оригинал записи на mobile-developer.ru

 

Вышел Palm Mojo SDK 1.3.1


Вышла новая версия средств разработки приложений для Palm WebOS – Mojo SDK 1.3.1.
В этой версии:



  • Улучшена поддержка Palm Pixi (у него экран по размерам меньше чем в Palm Pre).
    1. Появилось API для предотвращения затемнения экрана при простое.
      1. Добавлена автогенерирование сцены Help/Support
        1. Сделано много изменений и дополнений в документации.

С полным списком изменений можно ознакомиться здесь.


Скачать Palm Mojo SDK 1.3.1


Post from: Mobile-Developer.ru

Вышел Palm Mojo SDK 1.3.1








Оригинал

 
Теги: webos|sdk|palm|news
 
 

Вышел MonoTouch 1.2 – .NET для iPhone


Вышла новая версия средств разработки iPhone приложений на платформе .NET – MonoTouch 1.2. Наконец-то добавили нормальный отладчик с интеграцией в MonoDevelop и отлаживать теперь можно и в симуляторе и на устройстве.


MonoTouch 1.2 Debugger



  • Появился новый Binding API, который позволяет связывать библиотеки на Objective-C с приложением на .NET/MonoTouch.
    1. Добавлены пространства имен System.Timers.Timer, System.Threading.Semaphore, System.Threading.
      1. Исправлены ошибки, OpenTK обновлен до r2350
        1. Добавлено пространство имен System.Data и теперь можно использовать SQLite в своих приложениях.

Ссылки



©


Post from: Mobile-Developer.ru

Вышел MonoTouch 1.2 – .NET для iPhone








Оригинал

 
Теги: monotouch|sdk|iphone|news
 
 

Иконки для Android-приложений. Бесплатно!


Появился набор бесплатных иконок, доступных для коммерческого и некоммерческого использования в Android-приложениях. В комплетке 30 иконок + исходники в EPS-формате.


30 free icons for Android developers


Скачать иконки можно здесь.


Post from: Mobile-Developer.ru

Иконки для Android-приложений. Бесплатно!








Оригинал

 
 
 

Вирусописатели не дремлют. Появился эксплоит для Palm WebOS


Интереснейшую штуку обнаружил сегодня (хотя и немного с опозданием). Оказывается уже появился эксплоит для мобильной платформы Palm WebOS, которой от роду всего несколько месяцев:


Опасная уязвимость обнаружена в WebOS до версии 1.1 для коммуникатора Palm Pre.
Обнаруженная уязвимость позволяет злоумышленнику произвести атаку «отказ от обслуживания» (DoS) путем открытия специально сформированного HTML файла.
Использование уязвимости приводит к зависанию процесса графического интерфейса – LunaSysMgr, что вызывает необходимость перезагрузки коммуникатора.


Уязвимость не проявляется в режиме альбомного (landscape) просмотра, однако для устранения уязвимости рекомендуется обновить версию WebOS до 1.2 и старше, доступной на сайте технической поддержки коммуникатора Palm Pre.



Post from: Mobile-Developer.ru

Вирусописатели не дремлют. Появился эксплоит для Palm WebOS








Оригинал

 
Теги: webos|palm
 
 

Анонсирована поддержка Android Platform 2.0 в Android SDK


Android EclairИ вот, долгожданная новость. Google fнонсировала поддержку Android 2.0 в средствах разработки Android SDK. Добавлены новые API – программный интерфейс для синхронизации, работа с Bluetooth 2.0 и еще куча всякого. Теперь Android-приложения позволяют пользователям более простым способом общаться. Для этого в Android 2.0 есть Quick Contact API. Приложения могут поддерживать peer-2-peer соединения по Bluetooth, что может быть очень полезно в играх.



Post from: Mobile-Developer.ru

Анонсирована поддержка Android Platform 2.0 в Android SDK





src="http://pagead2.googlesyndication.com/pagead/show_ads.js">







Оригинал

 
Теги: google android|sdk|news
 
 

Доступна Java ME 3.0 Early Access for Mac


С сегодняшнего дня доступна Early Access версия инструментария разработки мобильных приложений Java ME 3.0 для Mac.


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


Java ME 3.0 Early Access for Mac


Скачать Java ME Early Access for Mac.
©


Post from: Mobile-Developer.ru

Доступна Java ME 3.0 Early Access for Mac








Оригинал

 
Теги: java me|sdk|news
 
 

Полноэкранный режим работы приложений в Palm WebOS


Работа в полноэкранном режиме на мобильном устройстве – полезная штука, особенно если вы пишете что-нибудь эдакое, например игру. Размер экрана и так небольшой, а панель состояния отбирает у приложения таоке драгоценное пространство.


WebOS позволяет приложениям работать в полноэкранном режиме. Вот об этой возможности мы и узнаем подробнее в этот раз.Итак, у нас задача – сделать приложение, работающее в полноэкранном режиме.


Создаем новый проект и в нем две сцены – main и fullscreen.


app/views/main/main-scene.html




FullScreen Test






app/assistants/main-assistant.js



function MainAssistant() {
}

MainAssistant.prototype.setup = function() {
this.controller.setupWidget("FullScreenSceneButton", {}, {label: "FullScreen Scene"});
this.controller.setupWidget("ExitButton", {}, {label: "Exit"});

Mojo.Event.listen($(FullScreenSceneButton), Mojo.Event.tap, this.onFullScreen.bind(this));
Mojo.Event.listen($(ExitButton), Mojo.Event.tap, this.onExit.bind(this));
}

MainAssistant.prototype.onFullScreen = function(event) {
this.controller.stageController.pushScene("fullscreen");
}

MainAssistant.prototype.onExit = function(event) {
this.controller.stageController.getAppController().closeAllStages();
window.close();
}

MainAssistant.prototype.cleanup = function(event) {
Mojo.Event.stopListening($(FullScreenSceneButton), Mojo.Event.tap, this.onFullScreen);
Mojo.Event.stopListening($(ExitButton), Mojo.Event.tap, this.onExit);
}

На нашей сцене – заголовок и две кнопки. Первая – открывает сцену fullscreen, а вторая – закрывает приложение.


app/views/fullscreen/fullscreen-scene.html




Sample Fullscreen Scene




Для перехода в полноэкранный режим у контроллера сцены есть метод enableFullScreenMode(), который принимает булевый параметр и благодаря которому тот же метод служит и для включения и для выключения полноэкранного режима.


app/assistants/fullscreen-assistant.js



function FullscreenAssistant() {
}

FullscreenAssistant.prototype.setup = function() {
this.controller.setupWidget("PopButton", {}, {label: "Close"});
Mojo.Event.listen($(PopButton), Mojo.Event.tap, this.onClose.bind(this));
}

FullscreenAssistant.prototype.activate = function(event) {
this.controller.enableFullScreenMode(true);
}

FullscreenAssistant.prototype.onClose = function(event) {
this.controller.stageController.popScene();
}

FullscreenAssistant.prototype.deactivate = function(event) {
this.controller.enableFullScreenMode(false);
}

FullscreenAssistant.prototype.cleanup = function(event) {
Mojo.Event.stopListening($(PopButton), Mojo.Event.tap, this.onClose);
}

Активацию полноэкранного режима нужно делать при активации сцены, а выход из полноэкранного режима – при деактивации сцены. Не надо переходить в полноэкранный режим внутри метода setup(). Из-за этого можно получить артефакты отрисовки. По этому поводу можно найти достаточно информации на официальном форуме WebOS-разработчиков. В общем, activate() и deactivate() – это как раз подходящие методы для этого.


После всего получаем такой вот результат (скрин из эмулятора):


WebOS Fullscreen


Скачать исходный код примера.


Post from: Mobile-Developer.ru

Полноэкранный режим работы приложений в Palm WebOS








Оригинал

 
Теги: webos|palm
 
 

Maemo 5 Final SDK доступно для скачивания


Доступна новая версия средств разработки приложений для платформы Maemo – Maemo 5 Final SDK.


В этой версии доступна возможность разрабатывать и отлаживать приложения в Linux (сборка приложений доступна для платформ X86 и ARMEL). Для установки инструментария и SDK есть готовые shell-скрипты. Из дистрибутива убраны старые пакеты и добавлены исходные коды некоторых приложений, которые могут понадобиться в качестве примеров. Дистрибутив также содержить приложения от Nokia и API для взаимодействия с ними. Из нововведений также хотелось бы отметить новый программный интерфейс – Sharing Plugin API.



Post from: Mobile-Developer.ru

Maemo 5 Final SDK доступно для скачивания








Оригинал

 
Теги: maemo|sdk|news
 
 

Управление электропитанием (Power Management) в Palm WebOS


В WebOS пользователь может вручную указать интервал, по истечению которого, если устройство не используется, оно переходит в спящий режим. Этот интервал может варьироваться вдиапазоне от 30 секунд до 3х минут.


В некоторых приложениях может возникнуть необходимость держать устройство включенным по истечению интервала, заданного пользователем (это может быть актуально, например, для приложений, воспроизводящих видео или аудио). Для поддержания устройства в активном состоянии в WebOS существует специальный API. О нем и пойдет речь в этот раз.


Итак, нам понадобится тестовое приложение. Создаем проект и в нем сцену main.


app/views/main/main-scene.html




Power Management Test









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



  • Переход в активносе состояние
    1. Выход из активного состояния
      1. Выход из приложения

app/assistants/main-assistant.js



function MainAssistant() {
}

MainAssistant.prototype.setup = function() {
this.controller.setupWidget("TimeoutPicker",
{
modelProperty: 'value',
label: 'Timeout (minutes)',
min: 01,
max: 15,
padNumbers: true
},
this.timeoutModel =
{
value: 1
});
this.controller.setupWidget("StartActivityButton", {},
this.startButtonModel = {label: "Start Activity"});
this.controller.setupWidget("StopActivityButton", {},
this.stopButtonModel = {label: "Stop Activity", disabled: true});
this.controller.setupWidget("ExitButton", {}, {label: "Exit"});

Mojo.Event.listen($(StartActivityButton),
Mojo.Event.tap, this.onStartActivity.bind(this));
Mojo.Event.listen($(StopActivityButton),
Mojo.Event.tap, this.onStopActivity.bind(this));
Mojo.Event.listen($(ExitButton), Mojo.Event.tap, this.onExit.bind(this));

this.counter = 0;
}

MainAssistant.prototype.onStartActivity = function(event) {
}

MainAssistant.prototype.onStopActivity = function() {
}

MainAssistant.prototype.onExit = function(event) {
this.controller.stageController.getAppController().closeAllStages();
window.close();
}

MainAssistant.prototype.cleanup = function(event) {
Mojo.Event.stopListening($(StartActivityButton), Mojo.Event.tap, this.onStartActivity);
Mojo.Event.stopListening($(StopActivityButton), Mojo.Event.tap, this.onStopActivity);
Mojo.Event.stopListening($(ExitButton), Mojo.Event.tap, this.onExit);
}

В результате получим такой внешний вид приложения:


WebOS Power Management Sample Application


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


Для запуска активного режима приложения необходимо вызвать метод activityStart сервиса palm://com.palm.power/com/palm/power.



MainAssistant.prototype.onStartActivity = function(event) {
this.counter++;
this.activity = /* "com.palm.app." + */
Mojo.appName + ".activity-" + this.counter;
this.controller.serviceRequest("palm://com.palm.power/com/palm/power",
{
method: "activityStart",
parameters:
{
id: this.activity,
duration_ms: this.timeoutModel.value * 60 * 1000
},
onSuccess: this.activityStartSuccess.bind(this),
onFailure: this.activityStartFailure.bind(this)
});
this.timer = setTimeout(this.onTimer.bind(this),
this.timeoutModel.value * 60 * 1000 / 2.0);
}

MainAssistant.prototype.onTimer = function(event) {
if(this.timer)
{
clearTimeout(this.timer);
delete this.timer;
}
this.onStopActivity();
}

MainAssistant.prototype.activityStartSuccess = function(event) {
this.startButtonModel.disabled = true;
this.stopButtonModel.disabled = false;
this.controller.modelChanged(this.startButtonModel);
this.controller.modelChanged(this.stopButtonModel);
$(info).update("Activity started: " + this.activity);
}

MainAssistant.prototype.activityStartFailure = function(event) {
$(info).update("Error:
" + Object.toJSON(event));
}

Параметры метода activityStart:



  • id – уникальный идентификатор вызова активного режима (можно использовать формат ID-приложения + ID-операции + счетчик).
    1. duration_ms – длительность активного режима в миллисекундах. Максимальное значение єтого параметра 900000, что соответствует 15ти минутам.

Возможные проблемы:



  • На эмуляторе вызов activityStart не дает видимого эффекта. Виртуальная машина остается активной всегда.
    1. На официальном форуме разработчиков WebOS-приложений неоднократно появлялась информация о том, что активный режим работает только для системных приложений (с идентификатором, начинающимся на com.palm.app). Также была информация что эту проблему исправили и активный режим доступен для разработчиков сторонних приложений, но без устройства это подтвердить нет никакой возможности.
      1. По окончанию активного режима приложение не получает никаких уведомлений, и в случае, когда активный режим завершился, а приложение все еще должно держать устройство включенным, надо перезапускать активный режим заново, указывая новый идентификатор вызова. В таком случае очень удобно пользоваться счетсиком. Для того, чтобы вовремя продлить активный режми, можно использовать таймер.

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



MainAssistant.prototype.onStopActivity = function() {
if(this.activity)
{
this.controller.serviceRequest("palm://com.palm.power/com/palm/power", {
method: "activityEnd",
parameters:
{
id: "com.palm.app.news.update-1"
},
onSuccess: this.activityStopSuccess.bind(this),
onFailure: this.activityStopFailure.bind(this)
});
}
}

MainAssistant.prototype.activityStopSuccess = function(event) {
this.startButtonModel.disabled = false;
this.stopButtonModel.disabled = true;
this.controller.modelChanged(this.startButtonModel);
this.controller.modelChanged(this.stopButtonModel);
$(info).update("Activity stopped: " + this.activity);
delete this.activity;
}

MainAssistant.prototype.activityStopFailure = function(event) {
$(info).update("Error:
" + Object.toJSON(event));
}

MainAssistant.prototype.onExit = function(event) {
this.controller.stageController.getAppController().closeAllStages();
window.close();
}

При выходе из приложения, автоматического останова активного режима не происходит, поэтому в методе cleanup() главной формы все вызовы активного режима должны быть завершены.



MainAssistant.prototype.cleanup = function(event) {
Mojo.Event.stopListening($(StartActivityButton), Mojo.Event.tap, this.onStartActivity);
Mojo.Event.stopListening($(StopActivityButton), Mojo.Event.tap, this.onStopActivity);
Mojo.Event.stopListening($(ExitButton), Mojo.Event.tap, this.onExit);
this.onStopActivity();
}

На этом все.


Скачать исходный код примера.


Post from: Mobile-Developer.ru

Управление электропитанием (Power Management) в Palm WebOS








Оригинал

 
Теги: webos|palm
 
 

Adobe обещает Flash 10.1 для мобильных устройств к концу года


Появился пресс-релиз Adobe, в котором заявлено появление Flash Player 10.1 для мобильніх устройств.  Версия для WebOS и Windows Mobile (Browser-based runtime), судя по пресс-релизу, должна быть доступна к концу года. Версия для Google Android и Symbian – в начале следующего года.


Flash Player 10.1 позволяет создавать сложные приложения со сложным контентом и высококачественным видео вне зависимости от платформы. Кроме этого, плеер активнее использует вычислительные мощности графических систем, одновременно сокращая потребление энергии и сокращая потребление ресурсов.


Для мобильных устройств обещают поддержку акселерометра, мультитач, жестов (gestures), изменений поворота экрана.


Устройства с поддержкой Flash Player 10.1 ожидаются в начале следующего года.



Post from: Mobile-Developer.ru

Adobe обещает Flash 10.1 для мобильных устройств к концу года








Оригинал

 
Теги: sdk|flash|news
 
 

Google меня пугает! Они обещают что смогут сами удалять ПО, установленное на телефонах пользователей


Сегодня ComputerWorld опубликовал такую штуку, от которой лично у меня до сих пор волосы дыбом!


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


Google may discover a product that violates the developer distribution agreement … in such an instance, Google retains the right to remotely remove those applications from your device at its sole discretion


Ну ничего себе они мне такое рассказывают! Как пользователь я бы очень не хотел чтобы “Большой Брат” сидел в моем телефоне и следил за тем как, когда и зачем я использую установленное ПО. И к тому же все это на “открытой платформе Android“. Ну надо же было так испоганить идею.


Напомню что подобная возможность, называемая “Remote Kill Switch”, ранее была обнаружена в телефонах Apple iPhone, что вызвало недовольство со стороны пользователей, обеспокоенных ущемлением их прав.


Вместе с тем, Google обещает что будет стараться вернуть деньги пользователю за удаленное ПО:


In addition, Google says that if it does remotely remove an application, it will try to get users their money back


Классно! Всю жизнь мечтал. Google именно “будет стараться”, никаких гарантий. Описание подобных “стараний” найти не удалось.


Как разработчика меня, возможно, устроил бы вариант с удалением пиратских копий моего ПО, но возврат денежек за пиратскую копию как-то… не радует.


Вот так из хорошего получается странное… А в том, как же это работает, нужно будет еще разобраться.





Share and Enjoy:


Digg
del.icio.us
Netvouz
description
ThisNext
MisterWong
Wists
Technorati
YahooMyWeb
Google
LinkedIn
Live








Оригинал записи на http://mobile-developer.ru

 
Теги: google android
 
1 |2