Софт-Портал

Как Создать Приложение Для Телефона

Рейтинг: 4.8/5.0 (951 проголосовавших)

Категория: Android

Описание

Пишем софт для телефона

Пишем софт для телефона 1. Технология J2ME

Ситуация, сложившаяся сегодня в мире мобильного программирования во многом напоминает обстановку конца 80-х, когда на рынке ПК существовало несколько практически несовместимых между собой устройств. Стараясь выжать из железа максимум и как можно быстрее запустить в продажу новые модели, производители не особо заботятся даже о совместимости собственных устройств, что уж говорить о совместимости между устройствами разных производителей. Когда мобильные телефоны являлись просто средством коммуникации, несовместимость не вызывала особых проблем. С течением времени телефоны стали превращаться в сложные функционально насыщенные устройства. Возникла потребность в разнообразном и качественном софте. Осознавая, что сторонние разработчики не будут тратить время на написание программы для единственной модели телефона, производители стали создавать платформы, позволяющие запускать одну и ту же программу на различных устройствах. В настоящее время существует несколько решений, но в России по настоящему большое распространение получила только Java 2 Platform Micro Edition (J2ME).

Основная идея J2ME проста: программист компилирует программу в промежуточный код, который затем выполняется специальным эмулятором – виртуальной Java машиной (VJM). VJM выступает посредником между программой и прошивкой телефона. Таким образом, основную часть работы по адаптации приложений к конкретной модели берет на себя производитель. Кроме того, VJM решает проблему безопасности, поскольку приложения не имеют прямого доступа к памяти и ресурсам телефона.

На практике VJM разных производителей не всегда выдают одинаковый результат. Из других недостатков J2ME можно отметить неспособность ее работать с вещественными числами (не актуально для CDLC 1.1), а также проблему с исходными кодами. Поскольку в результате компиляции получаются промежуточный, а не машинный код, он легко может быть переведен обратно в java исходник.

2. Рабочая среда

Для того чтобы начать разрабатывать мидлеты (так принято называть J2ME приложения для мобильных телефонов) Вам необходимы три вещи:

  • Java 2 Standard Edition (J2SE) SDK version 1.4.2 или выше - компилятор и утилиты для создания Java архивов;
  • J2ME Wireless Toolkit (WTK) 2.2 - набор утилит и эмуляторов для создания и отладки мидлетов;
  • текстовый редактор или IDE.

Все эти компоненты абсолютно бесплатны и доступны по адресам: http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html, www.netbeans.org. (При использовании SDK версии 3 и выше в установке WTK нет необходимости)

2.1 Создание нового проекта

Запустите WTK KToolbar. Для создания нового проекта выберите пункт меню File>New Project. В появившемся окне заполните поля "Project Name" и "MIDlet Class Name". Введите, например, SampleSuite и SampleMIDlet. После заполнение этих полей Вам будет предложено настроить параметры проекта. Ничего не меняйте, просто нажмите кнопку OK. В папке [WTK]\apps\ будет создан новый каталог SampleSuite. Каждый проект содержит стандартный набор каталогов:

  • bin - сюда попадают .jar и .jad файлы после упаковки проекта;
  • lib - сюда следует поместить файлы подключаемых библиотек;
  • res - файлы ресурсов (например. png. txt);
  • src - файлы .java с исходным текстом программы;

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

2.2 Открытие и запуск примера

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

Для переноса приложения на телефон, необходимо его упаковать. Для этого после компиляции надо выбрать пункт меню Project>Package. В папке bin проекта появятся файлы .jar и .jad. Файл jar является Java архивом, содержащим файлы проекта, а jad - так называемым дескриптором приложения. Дескриптор содержит вспомогательную информацию о классах архива. Эта информация используется телефоном для эффективного управления ресурсами. Именно эти два файла нужно копировать в телефон.

3. Простейшее приложение

Особенностью программной модели мидлета является возможность вмешательства операционной системы в ход выполнения программы. Работа приложения может быть в любой момент прервана каким-нибудь внешним событием, например входящим телефонным звонком. Это обстоятельство требует постоянного контроля системы над ходом выполнения программы. Реализуется этот контроль с помощью специального управляющего софта, называемого AMS (Application-Management Software).

Каждый Java программист знает, что работа программы начинается с запуска метода main(). В J2ME этот метод недоступен. Вместо него предлагается использовать startApp().

Запущенное приложение может находиться в трех возможных состояниях: paused: мидлет запущен, но не активен; active: мидлет активен и destroyed: мидлет остановлен и готов к завершению.

Рассмотрим жизненный цикл мидлета. Сразу после запуска он находится в состоянии paused. Прежде чем перейти в активный режим, он должен выполнить инициализацию. Мидлет не имеет специального инициализационного метода и все необходимые действия выполняются внутри startApp(). Через некоторое время после запуска программы, AMS вызывает метод startApp(), в результате приложение переходит в состояние active. Если при запуске возникли какие-нибудь ошибки, управление передается методу javax.microedition.midlet.MIDletStateChangeException, который переводит мидлет в состояние destroyed.

В любое время AMS может прервать выполнение мидлета и перевести его в состояние paused. При этом AMS вызывает метод pauseApp(). Для того чтобы перевести приложение в состояние destroyed и закрыть его, AMS вызывает метод destroyApp().

Мидлет не способен перевести сам себя из одного состояния в другое. Он может только послать соответствующий запрос AMS, воспользовавшись одним из методов: notifyDestroyed() - запрос на завершение работы; notifyPaused() - запрос на дезактивацию и переход в состояние паузы; resumeRequest() - запрос на реактивацию и переход в активное состояние. AMS решает, нужно ли удовлетворить запрос, и если нужно, то когда это сделать. После запроса resumeRequest() ASM вызывает метод startApp(). В ответ на notifyPaused() и notifyDestroyed() AMS напрямую переводит мидлет в требуемое состояние.

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

4. Пользовательский интерфейс высокого уровня

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

Разработка программ на основе высокоуровневого интерфейса сводятся к двум этапам: созданию окон и настройке команд.

4.1 Создание окон

Высокоуровневый интерфейс определяет четыре типа окон: Alert, TextBox, List и Form.

Alert - окно служебных сообщений. При создании требует четыре параметра: заголовок окна, текстовое сообщение, рисунок и тип сообщения (ALARM, CONFIRMANTION, ERROR, INFO, WARNING). С помощью метода setTimeout можно установить время (в миллисекундах), через которое окно будет закрыто.

TextBox - окно-редактор текста. При создании требует, чтобы ему передали заголовок, начальный текст, максимальный размер текста и ограничения. В качестве ограничений можно использовать константы: ANY - ограничений на текст нет, EMAILADDR - ввод e-mail адресов, NUMERIC - ввод чисел, PASSWORD - ввод пароля, PHONENUMBER - ввод телефонных номеров, URL –ввод URL адресов.

Для получения введенного текста можно воспользоваться либо методом getChars(char[] chAr), который записывает текст в переданный массив символов chAr; либо getString(), который возвращает строку. С помощью метода size() можно узнать размер введенного текста.

List - окно-список элементов. При создании список требует четыре параметра: заголовок списка, тип списка, массив строк и массив картинок для элементов списка. Два последних параметра можно опустить, но тогда для формирования списка нужно использовать метод append(String str, Image img).

В J2ME реализованы четыре типа списков. Тип EXCLUSIVE предназначен для пометки одного элемента из списка (соответствует TRadioButton в Delphi); MULTIPLE предназначен для пометки нескольких элементов (соответствует TCheckBox); IMPLICIT позволяет выбрать один элемент из списка (cоответствует TListBox).

Чтобы узнать, какие элементы выбрал или пометил пользователь, нужно воспользоваться одним из следующих методов. getSelectedIndex() - возвращает номер выбранного элемента. getSelectedFlags(boolean[] selArr) - записывает в переданный массив selArr состояние всех элементов списка.

Form. Форма - это контейнер, куда можно помещать различные визуальные элементы управления. Если элементы формы не умещаются на экране телефона, создается вертикальная полоса прокрутки. Для добавления элемента на форму используется метод append(). В качестве единственного параметра ему нужно передать либо строку, либо картинку, либо один из визуальных компонентов класса Item.

ChoiceGroup - группа элементов для выбора. Этот элемент аналогичен List. Как и List он позволяет создавать EXCLISIVE и MULTIPLE списки. Вместо типа IMPLICIT нужно использовать POPUP, который создает список в виде выпадающего меню.

DateField - элемент предназначен для установки даты и времени. При создании требуется передать три параметра: заголовок, режим даты (DATE, TIME или DATE_TIME) и часовой пояс. Последний параметр можно опустить.

TextField - поле для ввода текста. Этот элемент очень похож на TextBox, но, в отличие от последнего, не занимает весь экран.

StringItem - элемент предназначен для добавления на форму статических строк текста, кнопок и гиперссылок. При создании требуется передать три параметра: строку-метку, строку текста и форматирование текста. В качестве последнего параметра используются константы: BUTTON - для создания кнопки, HYPERLINK - для гиперссылки, LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_TOP, LAYOUT_LEFT, LAYOUT_RIGHT - для определения положения текста на экране.

Spacer - элемент предназначен для создания свободного пространства указанного размера. Используется для позиционирования других элементов на форме. В качестве параметров при создании задаются ширина и высота области.

ImageItem - элемент предназначен для размещения изображения на форме. При создании требуется передать пять параметров: текст над рисунком, объект класса Image с загруженным рисунком, расположение рисунка (LAYOUT_LEFT, LAYOUT_RIGHT, LAYOUT_CENTER), текст под рисунком и форматирование. Последний параметр аналогичен рассмотренному в StringItem и также может быть опущен.

J2ME гарантированно умеет работать с рисунками в формате PNG. Все рисунки проекта должны быть расположены в папке res. Код загрузки и использования рисунка нужно обязательно помещать в try<…>catch<…> скобки, в противном случае при сборке проекта возникнут ошибки. Для загрузки изображения из файла используется метод Image.createImage("/файл.png").

Guage - элемент для отображения полос состояния. При создании требуется передать три параметра: метку, флаг типа boolean, указывающий на то должна ли полоса быть интерактивной; значение, соответствующее заполненной полосе, и начальное значение. Для установки текущего положения используется метод setValue(int value).

Помимо указанных элементов, под заголовком окон TextBox, List и Form можно поместить бегущую строку с текстом. Для этого нужно создать объект класса Tricker и вызвать метод setTricker окна, указав в качестве параметра созданный объект.

4.2 Создание и настройка команд

Для перехода между окнами используется метод Display.setCurrent(Displayable d). Обычно переход выполняется после какого-то действия пользователя. Для настройки реакции на действие, необходимо: 1. создать команду;
2. связать ее с экраном или элементом управления;
3. связать с экраном или элементом класс, реализующий обработчик событий;
4. внутри метода commandAction запрограммировать реакцию на данную команду;

Для создания команды необходимо создать объект класса Command

Первый параметр определяет строковое представление команды, второй - тип команды, третий - ее приоритет. В качестве типа используется одна из: BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, STOP. Тип команды лишь указывает ее предполагаемое назначение и не влияет на функциональность.

Для связи команды с экраном используется метод Displayable.addCommand(Command cmd), а для связи с элементом управления - Item.setDefaultCommand(Command cmd).

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

Класс может обрабатывать команды, только если он реализует интерфейсы CommandListener и ItemCommandListener:

Для связи обработчика с экраном используется метод Displayable.setCommandListener(CommandListener cl); для связи с элементом формы - Item.setItemCommandListener(ItemCommandListener cl). В качестве параметра нужно указать объект, реализующий обработчик событий. Если обработка команд выполняется внутри класса, откуда вызывается метод, то в качестве параметра можно использовать слово this.

При выполнении команды система вызывает метод commandAction(Command c, Displayable d) для окна и commandAction(Command c, Item i) для элементов формы. Вызвавшая метод команда передается в параметр c. Внутри этого метода необходимо идентифицировать команду и написать код ее обработки:

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

Александр Ледков
Мпр ПК 2006 №2

Please enable JavaScript to view the comments powered by Disqus.

как создать приложение для телефона:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Лучший интернет-сервис для создания iPhone

    Soft Settings Лучший интернет-сервис для создания iPhone/Android приложений

    Как создать просто, быстро и при этом бесплатно мобильное приложение? Если вас волнует данный вопрос советуем обратить внимание на интернет-сервис, конструктор для создания мобильных приложений iBuildApp.

    iBuildApp — интернет-сервис, который на данный момент является мировым лидером по числу зарегистрированных клиентов и созданных приложений в iBuildApp. Интересно заметить, что за последние два года пользователи создали более 500 тысяч мобильных приложений для всех популярных моделей смартфонов и планшетов (iPhone, Android, iPad, Android Tablet).

    Актуальность и функциональность iBuildApp сложно переоценить, данный интернет-сервис позволяет создавать качественные мобильные приложения в считанные минуты!

    Плюсы iBuildApp:

    Создание мобильных приложений при помощи iBuildApp совершенно бесплатно. а платные тарифные пакеты представлены расширенным функционалом и относительно недорогими ценами;

    Лёгкий, удобный, интуитивно понятный интерфейс конструктора мобильных приложений;

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

    Очень широкие функциональные возможности конструктора мобильных приложений (будут подробнее описаны ниже);

    Более 1500 бесплатных темплейтов для оформления, более 30 виджетов и более 15 готовых решений (малый бизнес, музыка, услуги и пр.);

    При желании можно расширить стандартный функционал и оформление;

    Созданное мобильное приложение можно опубликовать в каталоге iBuildApp, iTunes и Google Play;

    Русскоязычные интерфейс и служба поддержки.

    Минусы iBuildApp:

    на данный момент можно отметить невозможность создавать приложения для ОС Blackberry, однако, это есть в ближайших планах разработчиков .

    Тарифные пакеты iBuildApp:

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

    Базовый — 290 руб. в меc.;

    Бизнес — 990 руб. в мес.;

    Корпоративный — 2490 руб. мес.

    Расширенные возможности платных пакетов:

    Пишем софт для телефона на JAVA

    Пишем софт для телефона на JAVA

    1. Технология J2ME
    Ситуация, сложившаяся сегодня в мире мобильного программирования во многом напоминает обстановку конца 80-х, когда на рынке ПК существовало несколько практически несовместимых между собой устройств. Стараясь выжать из железа максимум и как можно быстрее запустить в продажу новые модели, производители не особо заботятся даже о совместимости собственных устройств, что уж говорить о совместимости между устройствами разных производителей. Когда мобильные телефоны являлись просто средством коммуникации, несовместимость не вызывала особых проблем. С течением времени телефоны стали превращаться в сложные функционально насыщенные устройства. Возникла потребность в разнообразном и качественном софте. Осознавая, что сторонние разработчики не будут тратить время на написание программы для единственной модели телефона, производители стали создавать платформы, позволяющие запускать одну и ту же программу на различных устройствах. В настоящее время существует несколько решений, но в России по настоящему большое распространение получила только Java 2 Platform Micro Edition (J2ME).

    Основная идея J2ME проста: программист компилирует программу в промежуточный код, который затем выполняется специальным эмулятором – виртуальной Java машиной (VJM). VJM выступает посредником между программой и прошивкой телефона. Таким образом, основную часть работы по адаптации приложений к конкретной модели берет на себя производитель. Кроме того, VJM решает проблему безопасности, поскольку приложения не имеют прямого доступа к памяти и ресурсам телефона.

    На практике VJM разных производителей не всегда выдают одинаковый результат. Из других недостатков J2ME можно отметить неспособность ее работать с вещественными числами (не актуально для CDLC 1.1), а также проблему с исходными кодами. Поскольку в результате компиляции получаются промежуточный, а не машинный код, он легко может быть переведен обратно в java исходник.

    2. Рабочая среда
    Для того чтобы начать разрабатывать мидлеты (так принято называть J2ME приложения для мобильных телефонов) Вам необходимы три вещи:

    Java 2 Standard Edition (J2SE) SDK version 1.4.2 или выше - компилятор и утилиты для создания Java архивов;
    J2ME Wireless Toolkit (WTK) 2.2 - набор утилит и эмуляторов для создания и отладки мидлетов;
    текстовый редактор или IDE.
    Все эти компоненты абсолютно бесплатны.

    2.1 Создание нового проекта
    Запустите WTK KToolbar. Для создания нового проекта выберите пункт меню File>New Project. В появившемся окне заполните поля "Project Name" и "MIDlet Class Name". Введите, например, SampleSuite и SampleMIDlet. После заполнение этих полей Вам будет предложено настроить параметры проекта. Ничего не меняйте, просто нажмите кнопку OK. В папке [WTK]\apps\ будет создан новый каталог SampleSuite. Каждый проект содержит стандартный набор каталогов:

    bin - сюда попадают .jar и .jad файлы после упаковки проекта;
    lib - сюда следует поместить файлы подключаемых библиотек;
    res - файлы ресурсов (например. png. txt);
    src - файлы .java с исходным текстом программы;
    Название .java файла должно соответствовать имени расположенного внутри него класса. Не забудьте, что язык Java чувствителен к регистру букв.

    2.2 Открытие и запуск примера
    После написания кода программы, как правило, наступает этап тестирования. Сначала приложение отлаживается на эмуляторе, а затем непосредственно на телефоне. Давайте откроем один из стандартных примеров (например, UIDemo). Чтобы запустить проект в окне эмулятора, нужно его откомпилировать (кнопка Build), а затем нажать Run на панели инструментов.

    Для переноса приложения на телефон, необходимо его упаковать. Для этого после компиляции надо выбрать пункт меню Project>Package. В папке bin проекта появятся файлы .jar и .jad. Файл jar является Java архивом, содержащим файлы проекта, а jad - так называемым дескриптором приложения. Дескриптор содержит вспомогательную информацию о классах архива. Эта информация используется телефоном для эффективного управления ресурсами. Именно эти два файла нужно копировать в телефон.

    3. Простейшее приложение
    Особенностью программной модели мидлета является возможность вмешательства операционной системы в ход выполнения программы. Работа приложения может быть в любой момент прервана каким-нибудь внешним событием, например входящим телефонным звонком. Это обстоятельство требует постоянного контроля системы над ходом выполнения программы. Реализуется этот контроль с помощью специального управляющего софта, называемого AMS (Application-Management Software).

    Каждый Java программист знает, что работа программы начинается с запуска метода main(). В J2ME этот метод недоступен. Вместо него предлагается использовать startApp().

    Запущенное приложение может находиться в трех возможных состояниях: paused: мидлет запущен, но не активен; active: мидлет активен и destroyed: мидлет остановлен и готов к завершению.

    Рассмотрим жизненный цикл мидлета. Сразу после запуска он находится в состоянии paused. Прежде чем перейти в активный режим, он должен выполнить инициализацию. Мидлет не имеет специального инициализационного метода и все необходимые действия выполняются внутри startApp(). Через некоторое время после запуска программы, AMS вызывает метод startApp(), в результате приложение переходит в состояние active. Если при запуске возникли какие-нибудь ошибки, управление передается методу javax.microedition.midlet.MIDletStateChangeException, который переводит мидлет в состояние destroyed.

    В любое время AMS может прервать выполнение мидлета и перевести его в состояние paused. При этом AMS вызывает метод pauseApp(). Для того чтобы перевести приложение в состояние destroyed и закрыть его, AMS вызывает метод destroyApp().

    Мидлет не способен перевести сам себя из одного состояния в другое. Он может только послать соответствующий запрос AMS, воспользовавшись одним из методов: notifyDestroyed() - запрос на завершение работы; notifyPaused() - запрос на дезактивацию и переход в состояние паузы; resumeRequest() - запрос на реактивацию и переход в активное состояние. AMS решает, нужно ли удовлетворить запрос, и если нужно, то когда это сделать. После запроса resumeRequest() ASM вызывает метод startApp(). В ответ на notifyPaused() и notifyDestroyed() AMS напрямую переводит мидлет в требуемое состояние.

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

    //файл SampleMIDlet.java
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;

    public class SampleMIDlet extends MIDlet <
    private Display display;
    public SampleMIDlet()<>

    protected void destroyApp( boolean unconditional ) throws MIDletStateChangeException
    <
    exitApp(); // вызывает уборщик мусора
    >

    protected void pauseApp()
    <
    // Сюда следует добавить код, который надо выполнять непосредственно
    // перед переводом приложения в режим паузы.
    >

    protected void startApp() throws MIDletStateChangeException
    <
    if( display == null )
    <
    // Этот код выполняется при запуске мидлета
    initApp();
    >
    // Сюда следует добавить код, который надо выполнять непосредственно
    // перед переводом приложения в активный режим.
    >

    private void initApp()
    <
    display = Display.getDisplay( this );
    // Сюда добавляется код инициализации приложения
    >

    public void exitApp()
    <
    // Сюда следует добавить код, который будет выполняться
    // при закрытии приложения.
    notifyDestroyed(); // уничтожение MIDlet-а
    >
    >

    4. Пользовательский интерфейс высокого уровня
    В состав J2ME входит пакет javax.microedition.lcdui, в котором реализованы классы пользовательского интерфейса. Принято различать низкоуровневые и высокоуровневые классы. В рамках данной статьи мы рассмотрим только последние. Программы, написанные с использованием только высокоуровневого интерфейса, практически не требуют адаптации при переносе на различные модели телефонов.

    Разработка программ на основе высокоуровневого интерфейса сводятся к двум этапам: созданию окон и настройке команд.

    4.1 Создание окон
    Высокоуровневый интерфейс определяет четыре типа окон: Alert, TextBox, List и Form.

    Alert - окно служебных сообщений. При создании требует четыре параметра: заголовок окна, текстовое сообщение, рисунок и тип сообщения (ALARM, CONFIRMANTION, ERROR, INFO, WARNING). С помощью метода setTimeout можно установить время (в миллисекундах), через которое окно будет закрыто.

    Alert myAlert = new Alert("Заголовок сообщения","сообщение",image,AlerType.ALARM);
    myAlert.setTimeout(1000);

    TextBox - окно-редактор текста. При создании требует, чтобы ему передали заголовок, начальный текст, максимальный размер текста и ограничения. В качестве ограничений можно использовать константы: ANY - ограничений на текст нет, EMAILADDR - ввод e-mail адресов, NUMERIC - ввод чисел, PASSWORD - ввод пароля, PHONENUMBER - ввод телефонных номеров, URL –ввод URL адресов.

    Для получения введенного текста можно воспользоваться либо методом getChars(char[] chAr), который записывает текст в переданный массив символов chAr; либо getString(), который возвращает строку. С помощью метода size() можно узнать размер введенного текста.

    TextBox myTb= new TextBox("Введите текст", "", 255,TextBox.ANY);
    .
    String strRes=myTb.getString();
    List - окно-список элементов. При создании список требует четыре параметра: заголовок списка, тип списка, массив строк и массив картинок для элементов списка. Два последних параметра можно опустить, но тогда для формирования списка нужно использовать метод append(String str, Image img).

    В J2ME реализованы четыре типа списков. Тип EXCLUSIVE предназначен для пометки одного элемента из списка (соответствует TRadioButton в Delphi); MULTIPLE предназначен для пометки нескольких элементов (соответствует TCheckBox); IMPLICIT позволяет выбрать один элемент из списка (cоответствует TListBox).

    Чтобы узнать, какие элементы выбрал или пометил пользователь, нужно воспользоваться одним из следующих методов. getSelectedIndex() - возвращает номер выбранного элемента. getSelectedFlags(boolean[] selArr) - записывает в переданный массив selArr состояние всех элементов списка.

    String st=<"Элемент 1", "Элемент 2", "Элемент 3">;
    List myList=new List("Элементы",Choice.IMPLICIT,st,null);
    .
    int index=myList.getSelectedIndex();
    Form. Форма - это контейнер, куда можно помещать различные визуальные элементы управления. Если элементы формы не умещаются на экране телефона, создается вертикальная полоса прокрутки. Для добавления элемента на форму используется метод append(). В качестве единственного параметра ему нужно передать либо строку, либо картинку, либо один из визуальных компонентов класса Item.

    ChoiceGroup - группа элементов для выбора. Этот элемент аналогичен List. Как и List он позволяет создавать EXCLISIVE и MULTIPLE списки. Вместо типа IMPLICIT нужно использовать POPUP, который создает список в виде выпадающего меню.

    DateField - элемент предназначен для установки даты и времени. При создании требуется передать три параметра: заголовок, режим даты (DATE, TIME или DATE_TIME) и часовой пояс. Последний параметр можно опустить.

    TextField - поле для ввода текста. Этот элемент очень похож на TextBox, но, в отличие от последнего, не занимает весь экран.

    StringItem - элемент предназначен для добавления на форму статических строк текста, кнопок и гиперссылок. При создании требуется передать три параметра: строку-метку, строку текста и форматирование текста. В качестве последнего параметра используются константы: BUTTON - для создания кнопки, HYPERLINK - для гиперссылки, LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_TOP, LAYOUT_LEFT, LAYOUT_RIGHT - для определения положения текста на экране.

    Spacer - элемент предназначен для создания свободного пространства указанного размера. Используется для позиционирования других элементов на форме. В качестве параметров при создании задаются ширина и высота области.

    ImageItem - элемент предназначен для размещения изображения на форме. При создании требуется передать пять параметров: текст над рисунком, объект класса Image с загруженным рисунком, расположение рисунка (LAYOUT_LEFT, LAYOUT_RIGHT, LAYOUT_CENTER), текст под рисунком и форматирование. Последний параметр аналогичен рассмотренному в StringItem и также может быть опущен.

    J2ME гарантированно умеет работать с рисунками в формате PNG. Все рисунки проекта должны быть расположены в папке res. Код загрузки и использования рисунка нужно обязательно помещать в try<…>catch<…> скобки, в противном случае при сборке проекта возникнут ошибки. Для загрузки изображения из файла используется метод Image.createImage("/файл.png").

    Guage - элемент для отображения полос состояния. При создании требуется передать три параметра: метку, флаг типа boolean, указывающий на то должна ли полоса быть интерактивной; значение, соответствующее заполненной полосе, и начальное значение. Для установки текущего положения используется метод setValue(int value).

    Помимо указанных элементов, под заголовком окон TextBox, List и Form можно поместить бегущую строку с текстом. Для этого нужно создать объект класса Tricker и вызвать метод setTricker окна, указав в качестве параметра созданный объект.

    ChoiceGroup myCG=new ChoiceGroup("Элементы",Choice.POPUP);
    DateField myDF=new DateField("Дата и время",DateField.DATE_TIME);
    TextField myTF=new TextField("Введите текст", "", 20,TextField.ANY);
    StringItem mySI1=new StringItem("Ф.И.О.", "Иванов Иван Иванович");
    StringItem mySI2=new StringItem("URL",
    "www.MobiLab.ru",Item.HYPERLINK);
    StringItem mySI3=new StringItem("OK", "", Item.BUTTON);
    Spacer mySp=new Spacer(50,0);
    Gauge myG=new Gauge("Идет процесс",true,100,45);
    try<
    Image img=Image.createImage("/mobilab.png");
    ImageItem myII=new
    ImageItem("Логотип",img,ImageItem.LAYOUT_CENTER,"www.mobilab.ru");
    myForm.append(myII);
    >catch(java.io.IOException ex)<>
    myForm.append(myCG);
    myForm.append(myDF);
    myForm.append(mySp);
    myForm.append(myTF);
    myForm.append(mySp);
    myForm.append(mySI1);
    myForm.append(mySI2);
    myForm.append(mySI3);
    myForm.append(myG);
    Tricker myTR=new Tricker("Это бегущая строка. ");
    myForm.setTricker(myTR);

    4.2 Создание и настройка команд
    Для перехода между окнами используется метод Display.setCurrent(Displayable d). Обычно переход выполняется после какого-то действия пользователя. Для настройки реакции на действие, необходимо:
    1. создать команду;
    2. связать ее с экраном или элементом управления;
    3. связать с экраном или элементом класс, реализующий обработчик событий;
    4. внутри метода commandAction запрограммировать реакцию на данную команду;


    Для создания команды необходимо создать объект класса Command

    private Command MyCommand=new Command("Моя команда",Command.SCREEN,2);
    Первый параметр определяет строковое представление команды, второй - тип команды, третий - ее приоритет. В качестве типа используется одна из: BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN, STOP. Тип команды лишь указывает ее предполагаемое назначение и не влияет на функциональность.

    Для связи команды с экраном используется метод Displayable.addCommand(Command cmd), а для связи с элементом управления - Item.setDefaultCommand(Command cmd).

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

    Класс может обрабатывать команды, только если он реализует интерфейсы CommandListener и ItemCommandListener:

    public class Navigator extends MIDlet implements CommandListener, ItemCommandListener<…>
    Для связи обработчика с экраном используется метод Displayable.setCommandListener(CommandListener cl); для связи с элементом формы - Item.setItemCommandListener(ItemCommandListener cl). В качестве параметра нужно указать объект, реализующий обработчик событий. Если обработка команд выполняется внутри класса, откуда вызывается метод, то в качестве параметра можно использовать слово this.

    При выполнении команды система вызывает метод commandAction(Command c, Displayable d) для окна и commandAction(Command c, Item i) для элементов формы. Вызвавшая метод команда передается в параметр c. Внутри этого метода необходимо идентифицировать команду и написать код ее обработки:

    //Обработка команд от окна.
    public void commandAction(Command c, Displayable d)<
    if (c==command1) <
    //Сюда помещаем код, выполняющийся при
    //возникновении команды command1
    >
    if (c==command2) <. >
    . >

    //Обработка команд от формы
    public void commandAction(Command c, Item i)<
    if (c==comForm1) <
    //Сюда помещаем код, выполняющийся при
    //возникновении команды comForm1
    >
    . >
    В данной момент Вы располагаете всей необходимой информацией для написания полноценного мобильного приложения. Давайте в качестве упражнения разработаем небольшую программу-тестирование. Программа будет иметь окна четырех типов: заглавное окно с логотипом программы, окно для ввода информации о пользователе, окна с вопросами и окно с результатом теста. Исходный код с комментариями и откомпилированное приложение прикреплены внизу сообщения.

    MirPC2.rar - 244,94 KB
    Файл скачен или просмотрен 1335 раз.

    Как создать мобильное приложение

    Как легко создать мобильное приложение

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

    Сегодня мобильное приложение установлено почти у каждого кто имеет гаджет в виде мобильного устройства с операционной системой Android и iOS. Например, у меня есть приложения, с которыми я постоянно работаю, которые помогают мне в спорте (Run Keeper),вызов такси (Get Taxi), и т.д.

    Что же такое мобильное приложение?

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

    Если взять статистику то можно посмотреть и проанализировать что 93% всего рынка мобильных устройств приходится на Android и iOS. Чаще пользуется спросом операционная система андроид, из за своей дешевизны и большим выбором приложений. У каждого пятого пользователя в Росии есть iPhone. у каждого второго – Android.

    Небольшая статистика того что происходит на рынке мобильных приложений, за последние 3 года :

    • Продано 500 000 000 телефонов на системе Android.
    • Продано 300 000 000 iPhone.
    • Загружено 20 000 000 000 приложений посредством обеих систем.

    В чем разница между приложениями и платформами?

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

    • Владельцы Андройдов использую Google Play
    • Владельцы Apple использую AppStore

    Если опробовать в работе оба устройства, и запустить приложение,то в принципе сильно больших отличий вы не найдете. И тот и другой гаджет будет работать отлично. Но вот в AppStore приложение, сделанное как говорится (на коленке) модерацию не пройдет, условия там кончено очень и очень жесткие. Приложение во-первых должно быть понятным, с красивым оформлением, и самое главное простым.Google Play конечно уступает приложениям на AppStore,как вы поняли это конечно же качество!

    Если же говорить в целом об отличиях между операционными системами iOS и Android,то стоит сказать следующее:

    • Android – это открытая операционная система, которую используют 90% производителей смартфонов. iOS поддерживается только продукцией Apple: iPhone, iPad, iPod Touch и.т.д
    • ТОП модели телефонов, которые работают на Android, ничем не уступают продукции Apple, иногда даже превосходят ее.
    • Ну и цена, как вы видите на прилавках магазинов отличается.

    Давайте поговорим о более интересных вещах

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

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

    Сравните эти данные и приподнимите брови от удивления:

    • Средняя открываемость e-mail писем: 6-9%
    • Средняя открываемость PUSH-уведомлений: 92-97%

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

    Где же все все таки используются мобильные приложения?

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

    Как с помощью мобильного приложения можно решить проблему своего бизнеса?

    1. PUSH уведомления- ваши клиенты будут узнавать о ваших услугах первыми (новости,скидки,акции)
    2. Быстрая подача необходимой информации (если изменились условия акции,скидки и.д.)
    3. Мобильное приложение всегда с тобой.
    4. Показать маршрут к вашей компании в навигаторе.
    5. Оптимизировать бизнес под мобильный трафик.

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

    Когда вы ищете подарок на web сайте, где вам приходиться все приближать, расширять,кликать на ненужные ссылки, ждать секунд по 10, пока все это дело загрузится.


    Открыть мобильное приложение, где все ясно и понятно, а самое главное-просто. Цены,отзывы,описания. Всего лишь в 3-4 клика мы оформляем заказ и вуаля-все готово. Согласитесь что второй вариант намного лучше.

    Ну что, мы почти дошли с вами до самого как говорится вкусного, и интересного, а сейчас читайте внимательно:

    Предлагается 2 возможных пути:

    1. Стать реселлером компании AppGlobal и сделать приложение самостоятельно, на специальном удобном конструкторе мобильных приложений.
    2. Заказать у разработчиков (программистов).

    Здесь конечно есть свои недостатки и преимущества:

    Давайте в начале разберем вариант заказа мобильного приложения у разработчиков:

    1. Минимум 50,000-60,000 тысяч рублей за самое простое приложение.
    2. Времени уходит у разработчика на это не мало и ждать придется минимум месяц.
    3. Как вы написали техническое задание своему разработчику, так он вам все и сделает, а если в процессе использования вам понадобиться изменить какую-нибудь фишку (дополнить меню, изменить цвет, добавить страницу и.т.д.) в приложении, то это обойдется Вам в районе от 100 до 200$, нормально, да?
    4. Все эти мелкие правки исправляются тоже не быстро, на это надо время, а не каждый броситься на ваше исправление, у разработчика заказы, и он вам будет все время отодвигать сроки.

    А теперь про наш замечательный конструктор AppGlobal, какие преимущества он нам дает:

    1. Создание мобильного приложения на конструкторе AppGlobal абсолютно бесплатно нужно будет лишь оплатить лицензию разработчика, 25$ GooglePlay и 99$ AppStore за публикацию приложения.
    2. Приложение создается за 1 день, да, это не шутки, эта правда, я видел записи вэбинара, где участники создавали тестовое приложение за один вэбинар.
    3. Любая правка исправляется за считанные минуты.

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

    Сервис молодой, работает около года может чуть побольше, и многие просто не знаю об этом сервисе ничего, но даже если и узнают об этом сервисе, то разработчики без работы не останутся, так как на конструкторе можно создавать только БИЗНЕС-ПРИЛОЖЕНИЯ .

    Игры,социальные сети,фотостоки создать — НЕ ПОЛУЧИТЬСЯ!

    Однако…
    Создать приложение для малого, среднего и крупного бизнеса,
    которое в разы увеличит продажи и станет убойнешим имиджевым
    инструментом – легко!

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

    Если вы еще сомневаетесь насчет конструктора AppGlobal, то приведу вам еще один пример, и ваши сомнения надеюсь, развеются:

    1. Если вы закажете мобильное приложение у разработчика, то вся работа по публикации собранного приложения, ляжет на ваши плечи, включая переписку на английском языке с модераторами.
    2. Если приложение будет сделано с помощью сервиса AppGlobal, то специалисты AppGlabal сделают все сами,вам не придется беспокоиться за все нюансы которые я описал в первом пункте.
    3. После создания мобильного приложения, и одобрения модераторами оно попадет в AppStore и Google play. Оттуда и начнется закачка вашего приложения. Если у вас есть свой сайт или блог, и вы хотите чтобы ваше приложение имело большое количество загрузок, то вам придется разместить:
    4. Разместить информацию о своем приложение (например во всплывающем окне, людям будет интересно узнать, и что у вас появилось свое собственное мобильное приложение).
    5. Напечатать QR-коды на визитках, листовках, буклетах.
    6. Заказать рекламу (рассылку) на чужих сайтах, у блоггеров.
    7. Сообщить всем своим клиентам.
    8. Дать людям скидку или какое-нибудь интересное предложение за загрузку приложения.
    Если удастся в первые дни получить по 100-200 загрузок в день, ваше приложение окажется в ТОПе маркетов, и оттуда его тоже начнут качать люди.

    Интерфейс сервиса настолько простой и понятный, что даже человек, который в первые сядет за компьютер разберется в нем без труда. А если возникнут проблемы, то техническая поддержка сервиса придет к вам на помощь.
    Давайте разберем работу сервиса на примерах:

    • Добавление вкладке в приложение, где пользователи будут просматривать PUSH-уведомления. Нажимаем, «Добавить новую вкладку»

    • После того как вы открыли вкладку, вам остается ввести имя, выбрать тип, в данном случае это PUSH уведомление. Убедится что включена опция «Активная вкладка. А дальше определяемся с иконкой их очень и очень много свыше 300 или загрузить свою.

    Вот такими простыми манипуляциями мы добавили новую вкладку, которая уже работает, и отображается на все мобильных телефонах, которые скачали ваше приложение. Очень быстро и без задержек, если бы вы отдали исправить или добавить что-нибудь разработчику, пришлось бы подождать.

    Как видите с конструктором AppGlobal работать очень и очень легко.

    Как создать свое дело на этом новом и перспективном рынке создания мобильных приложений?

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

    Что делаете именно вы:
    1. Выбираете компанию, которой хотите сделать приложение.
    2. Заходим на ее сайт
    3. За минут 10 создаем мобильное приложение (тестовое)
    4. Загружаете на свой телефон программу по демонстрации приложений, которых еще нет в маркетах.
    5. Закидываете туда созданное на коленке приложение и приходите в гости.

    Вообще правильнее сказать на встречу, но поверьте, в следующий раз вас уже будут встречать, как гостя.

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

    Вы сообщаете, что в целом разработка приложений стоит от 2500$, вы же можете его сделать за 1000$. Плюс ко всему, не нужно ждать 2 месяца, все будет готово уже на следующей неделе. Да, мы помним, что говорили, мол, приложение можно создать за день. Но если вы скажете, что все будет готово завтра, это может немного насторожить заказчика. Далее вы рассказываете о всех преимуществах мобильного приложения. У клиента начинается слюноотделение, и он жмет вам руку.

    Хотели бы зарабатывать в районе 1000$ в день?


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

    Как же начать зарабатывать таким способом?

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

    Реселлеры – это люди, которые перепродают услугу, в нашем случае разработку мобильных приложений, от своего имени, или имени своей компании. Вы будете вести бизнес по модели «White Label». То есть вам не придется ссылаться на AppGlobal и как-то от него зависеть. Вы создаете свой бизнес и занимаетесь привлечение клиентов, а всю головную боль в виде технической части этого бизнеса берет на себя AppGlobal. Вот почему эта модель в десятки раз выгоднее других.

    Например, вы решили провести какую-то акцию, поднять или снизить цены на свои услуги, ввести свою бонусную программу и так далее, вы смело это делаете. В ваш бизнес никто не лезет, вы ни от кого не зависите, и не с кем по этому вопросу не советуетесь. Возможно, вы задаетесь вопросом, в чем же тогда выгода AppGlobal? Здесь все просто…
    За использование конструктора AppGlobal берет абонентскую плату. К слову, продажа одного приложения, перекрывает абонплату в 3 раза, об этом чуток ниже.

    Сколько на этом можно зарабатывать?

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

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

    Вы хотите построить бизнес на создании мобильных приложений, выполните следующие простые действия:

    Поделиться в соц.сетях:

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

    Интересная тема. Я если честно когда открывал думал тут как у всех будут описываться достоинства и недостатки плагинов для разработки мобильной версии. Ан тут о как загнули, интересно, один раз потратить 124 доллара, замутить себе приложение, а потом еще и зарабатывать на этом. даже интересно стало. А особенно после того, как гугль заявил что будет понижать в выдаче сайты без мобильных версий. Если бы я себе адаптивный шаблончик не присмотрел может быть и воспользовался бы, но пока благо не надо

    Очень хорошая статья! И вроде бы как всё идеально, Но не все в курсе что есть более функциональные конструкторы, которые не берут плату за процесс создания приложений. Например на Конструкторе SeattleClouds можно делать более разнообразные приложения, простые игры, вообще там функций больше, включая так же, пуш сообщения. которые можно отсылать и по отдельным геозонам, а также делить их по темам, если захотите. Есть русский представитель этого конструктора, и он предоставляет доступ ( mobiledomination.ru ) наверно, по самой низкой цене из всех конструкторов, которые я знаю ( всего 5000 руб в год за неограниченное количество приложений для андроида и эппл). Причем, если потом вы не будете платить за доступ — с вашим приложением ничего не случиться, оно не исчезнет, вы только не сможете его обновлять и отправлять пуша-уведомления, а так все будет работать прекрасно. По моему мнению, App Global берет не обосновано высокую цену за доступ к конструктору, причем не к своему, а компании Biznessapps. Купить франшизу за 60000 руб, а потом еще и платить по 15000, а может и больше, ежемесячно — это накладно!