Ответ 1
Возможно, вы захотите проверить http://phonegap.com/
Есть ли стратегия или, по крайней мере, самая лучшая практика для написания приложения, которое работает на iPhone, BlackBerry и Android?
Я не знаю о средах разработки для BB и Android, но я предполагаю, что они поддерживают Java-приложения.
Я знаю, что iPhone потребует часть ObjectiveC (а также целый новый пользовательский интерфейс).
Кто-нибудь это сделал?
Возможно, вы захотите проверить http://phonegap.com/
Один метод, который подходит для определенных приложений, таких как справочные приложения: Используйте HTML/CSS/JavaScript и пишите компактные клиенты, которые используют объект просмотра HTML-платформы для, чтобы читать локально встроенный веб-контент.
Одним из способов написания кросс-платформенного приложения, работающего как на BlackBerry, так и на Windows Mobile, было написать все это в HTML. Мне пришлось использовать подмножество HTML и CSS, которые работали как на BlackBerry Browser, так и на Pocket Internet Explorer. Я также использовал небольшое количество JavaScript.
Я написал очень маленьких зрителей, которые запускали его встроенные HTML и изображения с использованием jar://(BlackBerry) и res://(Windows Mobile) URL. Я смог внедрить все файлы HTML и изображений в составе приложения BlackBerry, используя пользовательскую версию поля браузера и. Для Windows Mobile я смог использовать Pocket Internet Explorer в качестве встроенного ActiveX в моем приложении Windows Mobile.
Примечание. Для BlackBerry мне пришлось поддерживать устаревшие устройства под управлением ОС 4.2. Для этого я переработал много образцов кода RIM, таких как SecondaryResourceFetchThread.java, чтобы вытащить изображения, встроенные в приложение, и доставить их через специальный объект подключения, который реализовал HttpConnection, который я разработал для обработки jar://URL для внутреннего встроенных HTML/изображений в моем приложении BlackBerry. Было немного сложно понять. Для Windows Mobile это было более интуитивно понятным.
Существуют и другие способы сделать то, что мне нужно, но он отлично работал для медицинского справочного приложения, и я смог разработать отдельные файлы CSS для BlackBerry и для Windows Mobile, чтобы немного переформатировать контент для двух мобильных устройств. (Это было похоже на тестирование совместимости Netscape и Internet Explorer в старые времена.)
Это может не сработать для вашей ситуации, но если ваше приложение является "ссылкой" для веб-стиля, и вы хорошо знаете, как делать HTML, этот подход может работать.
В настоящее время мы изучаем это, и мы обнаружили:
Титан: http://www.appcelerator.com/products/titanium-mobile-application-development/
Kony Solutions: www.konysolutions.com/wore.php
Эти продукты имеют хорошие отзывы. Титан бесплатно для сообщества издание.
Еще один вариант - Rhodes, который является структурой Ruby.
При написании многоплатформенных приложений вам нужно решить, какую часть кода использовать. 2 варианта:
Второй подход, как правило, дает лучшие приложения, но это большая работа (при условии, что вам не нужно писать библиотеки кросс-платформен).
Сложная вещь с мобильным миром - это выбор языка. Прямо сейчас у вас есть
Вы можете перекрестно скомпилировать java для javascript и наоборот. Вы также можете скомпилировать java на C или использовать механизм javascript, который вы можете вызвать с C. Я не думаю, что вы можете запускать C на java/javascript телефоне. Это заставляет меня предлагать писать код в Java/Javascript. Кросс-компиляции (и языки смешивания вообще) имеют недостаток в отладке немного сложнее.
http://j2mepolish.org может быть хорошим выбором, однако iphone только в дорожной карте. Но андроид и BB уже поддерживаются, а также все другие телефоны j2me.
также, если вы пишете игры, посмотрите мое кросс-платформенное решение (iPhone, Android и т.д.), называемое движком каракатицы, на http://www.cuttlefishengine.com.
Кроме того, вы можете попробовать использовать Mobile Community Framework (MCF). Это кроссплатформенная среда, основанная на iPhone, Android, WinMobile, Symbian и BlackBerry. MCF обрабатывает операции сети, местоположения и близости для вас, в сети Wi-Fi Ad-Hoc или через выделенный прокси-сервер, если нет прямого подключения. Он имеет простой API, и он свободен в использовании. Таким образом, вы можете развить свой интерфейс приложения и логику отдельно на каждой платформе и использовать MCF для подключения экземпляров вашего приложения так, как вам нравится.
Дополнительная информация на http://uvamobiltec.com
Вы всегда можете написать приложение javascript в Интернете, и оно должно работать на всех трех. Конечно, это не устанавливается на телефоне.
Android имеет веб-представление, в котором работает Javascript. Я уверен, что другие платформы тоже. Если вы написали большую часть своей логики в javascript, вы могли бы повторно использовать этот javascript на разных платформах.
Еще одна структура - http://www.mosync.com/
Кажется, он поддерживает все основные платформы.
Если вы хотите написать кросс-платформенное веб-приложение, SenchaTouch (http://www.sencha.com/products/touch/) или Phonegap (http://www.phonegap.com/) - хороший выбор.
Если вы предпочитаете собственное приложение, лучшим кросс-платформенным решением является Titanium (http://www.appcelerator.com/). Используя Titanium, вы можете написать свое приложение в Javascript, и он компилирует JS в собственный код (Objective-C, Java...)
Adobe Flex и Flash Builder также выглядят многообещающими. Тем не менее, вы должны рассмотреть его патентованный, но с видео на веб-сайте своего разработчика, похоже, стоит того. Кстати, последняя версия в настоящее время поддерживает Android. Поддержка iOS должна выйти в июне 2011 года через обновление.