пятница, 13 декабря 2013 г.

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

Dave Nottage уверен, что почти все, кто разрабатывает приложения для мобильных устройств, натыкались на подобную проблему: средства редактирования расположены на экране достаточно низко и при отображении клавиатуры, элементы перекрываются ей.
Android и iOS не настолько умны, чтобы автоматически сдвигать скрытые под клавиатурой элементы в видимую область.
Пример такой ситуации вы можете видеть ниже (анимация):

Upd (30.01.14). Добавлено ещё одно решение.
Upd (23.04.14). Добавлена ссылка на второе решение в Delphi XE6

среда, 11 декабря 2013 г.

Update 2 для RAD Studio XE5, Delphi XE5 and C++Builder XE5

Приветствую всех посетителей.
Сообщаю вам о выходе обновления Update 2 для RAD Studio XE5, Delphi XE5 and C++Builder XE5.
Исправили много ошибок. Из 5 багов, о которых сообщил я, исправлено 2. Конкретно, это проблема с буквой «й» во всех компонентах и баг с медленной прокруткой в ListBox/ListView. Пока не проверял.

Скачать Update 1: http://cc.embarcadero.com/item/29595

Скачать Update 2: http://cc.embarcadero.com/item/29662
Release notes: http://docwiki.embarcadero.com/RADStudio/XE5/en/Release_Notes_for_XE5_Update_2

UPD. Проверил, два бага исправили.

воскресенье, 1 декабря 2013 г.

Проверка подключения к интернету на мобильных устройствах с Delphi XE5

Dave Nottage поможет нам решить эту задачу. Он разработал специальный класс для определения состояния подключения к интернету, класс работает как на Android, так и на iOS.

Класс умеет:
  • Определять состояние: Подключено к WIFI, мобильному интернету или вовсе не подключено.
  • Определять SSID.
Upd (23.04.14). Проверил код на Delphi XE6 и добавил информацию о необходимых изменениях.
Upd (3.10.14). Проверил в Delphi XE7 и Android 4.4.2.
UPD. (18.05.17) Добавил ссылку на свою версию данного класса. Проверена на Delphi (Berlin/Tokyo) 10.* Update *

пятница, 29 ноября 2013 г.

FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android'а #2

В предыдущей статье (FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android'а #1) я показал вам, как создать mp3 плеер с минимальным функционалом для Android’а и сказал, что возможно добавлю ещё несколько функций. В этой статье я представляю вам почти законченный плеер, о том почему «почти» я расскажу ниже.

Что нового:
  • Добавил кнопку «повторять все треки»
  • Добавил кнопку «воспроизводить случайный трек»
  • В коде: Вкл. и откл. кнопок управления плеером в зависимости от состояния
  • Чтение тегов ID3v1, ID3v2 (Название трека, Автор трека, Альбом, Жанр)
  • В коде: Таб по умолчанию
  • В коде: Обработка события FormKeyUp для кнопки "Назад"
  • Label c длительностью трека разделил на два Label’а и перенёс под трекбар
Upd (23.04.14). Проверено на Delphi XE6

понедельник, 25 ноября 2013 г.

Баги/фичи в Delphi XE5 на Android #1

В процессе изучения и практики в разработке приложений для Android, я наткнулся на несколько интересных багов (или фич). Я писал об этих багах/фичах на форуме сообщества (https://forums.embarcadero.com/index.jspa), но похоже разработчики и представители из Embarcadero не читают его…

Upd (23.04.14). Проверено на Delphi XE6, исправили ещё и третий баг.

суббота, 23 ноября 2013 г.

FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android'а #1

Сегодня предлагаю вам написать простой mp3-плеер для Android. Сразу следует оговориться, что в папке c примерами кода есть уже готовый плеер, написанный с использованием Android API. Мы же напишем плеер, используя только компонент TMediaPlayer.

Для начала составим список задач, которые плеер должен уметь выполнять:
1) Выводить список всех mp3 файлов на устройстве
2) Воспроизводить, ставить на паузу и останавливать выбранный трек
3) Переключать треки (предыдущий, следующий)
4) Отображать текущую позицию воспроизведения, перематывать трек
5) Автоматически переключать следующий трек
6) Выводить минимальное количество информации (название файла, время (всего/сколько проиграно))

UPD. Новая версия плеера тут: FMX.Media.TMediaPlayer или пишем свой mp3-плеер для Android'а #2

Upd (23.04.14). Проверено на Delphi XE6

четверг, 21 ноября 2013 г.

Изменение FireMonkey стиля во время выполнения приложения

В блоге уже был перевод статьи "Как загрузить пользовательские стили во время выполнения приложения" (Sarina DuPont). Эта статья от другого автора и содержит в себе достаточно полезной информации, чтобы опубликовать её здесь.

При установке RAD Studio или Delphi XE5, также устанавливаются кастомные стили, которые вы можете использовать в своих проектах. По умолчанию все эти стили лежат в папке "C:\Users\Public\Documents\RAD Studio\12.0\Styles". Помимо этих стилей, пользователи имеющие лицензию Delphi XE5 могут загрузить и использовать "премиум" стили(ID: 29598, Premium Style Pack for RAD Studio XE5 (v4 Oct 2013)). Копируем все "премиум" стили в папку "C:\Users\Public\Documents\RAD Studio\12.0\Styles", чтобы все стили были в одном месте. Теперь вместо того чтобы начинать разработку проекта с нуля воспользуемся уже существующими проектами, которые устанавливаются вместе с Delphi XE5. В папке "C:\Users\Public\Documents\RAD Studio\12.0\Samples\FireMonkeyMobile\Controls\" выберем проект "MobileControls".

среда, 20 ноября 2013 г.

Определяем, поддерживается ли наше устройство для разработки приложений

В официальной документации сказано:

RAD Studio поддерживает разработку приложений на устройствах с процессорным ядром 7 версии (ARMv7) и со следующими версиями Android:









Примечание: RAD Studio не поддерживает следующее:
  • Honeycomb (Android 3.x)
  • Gingerbread emulator
  • Tegra 2 devices (NEON support is required)
upd(18.04.14). Добавил списки поддерживаемых устройств.

среда, 6 ноября 2013 г.

Сохраняем настройки приложения, используя Shared Preferences

Приветствую всех посетителей.

Очень часто при разработке более-менее серьёзного приложения для Android требуется где-то и как-то сохранять настройки программы, чтобы они сохранялись после перезапуска приложения. Существует множество вариантов для решения данной задачи, например: сохранять всё в XML-файл; в SQL-базу; хранить настройки в интернете; использовать "Shared Preferences".
Сегодня я хочу рассказать вам, как сохранять простейшие данные в виде «ключ - значение» используя при этом API Android’а - "Shared Preferences".

понедельник, 4 ноября 2013 г.

Delphi XE5 iOS и Android, одна строчка кода - Map My Location

Michael Swindell поставил перед нами задачу создания мобильного приложения с помощью Delphi xe5 для iOS и Android, используя при этом только одну строчку кода. Подумав об этом некоторое время, вот моё первое приложение с одной строчкой кода, "Map My Location". Это приложение использует компоненты TLocationSensor, TToolBar, TLabel и TWebBrowser для создания Android и iOS приложения, которое отображает карты Google с моим текущим местоположением.

upd (20.04.2014). Добавил информацию о разрешениях.

суббота, 2 ноября 2013 г.

Delphi XE5 iOS и Android, поддерживаемые форматы медиа файлов

Просматривая исходный код FM, вы найдёте мультимедийные компоненты (TMediaPlayer, TMediaPlayerControl) и списки поддерживаемых форматов для каждой платформы.

Посмотреть исходный код можно только в версиях Professional и выше, исходный код не включён в версии Trial и Starter. Для этого необходимо пройти по пути "C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\source\fmx", в папке исходных кодов найдите файлы с таким шаблоном имени FMX.Media*.pas. Для XE5 это FMX.Media.pas, FMX.Media.Win.pas, FMX.Media.Mac.pas, FMX.Media.iOS.pas and FMX.Media.Android.pas.

среда, 30 октября 2013 г.

Как загрузить пользовательские стили во время выполнения приложения

Во время выступления на CodeRage, автор статьи кратко рассказала о том, как загрузить пользовательские стили во время выполнения. В этом примере мы создаём приложение для iOS и Android, которое использует "Jet Premium Style". Оба стиля добавлены через диалоговое окно ресурсов. Для загрузки стиля во время выполнения приложения используем "TStyleManager.LoadFromResource".

вторник, 29 октября 2013 г.

Создание выпадающего меню в приложении на Android

Во время выступления автора статьи на CodeRage 8, говорилось о создании Action Bar(TToolbar) с выпадающим меню, позже была написана эта коротенькая статья.
Выпадающее меню обычно используется для дополнительных пунктов меню на Android и доступно через кнопку "TSpeedButton" на Action Bar. Подобное меню создают, чтобы дать пользователю приложения возможность быстрого доступа к дополнительным /редко используемым функциям, которые обычно не доступны в основном меню.
В FireMonkey, вы можете легко реализовать выпадающее меню  с помощью "TListBox".

Delphi XE5 Android "Uses Permissions"

Разрешения (права доступа), требуемые для работы вашего приложения можно настроить в диалоговом окне "Uses Permissions" (меню Project > Options > Uses Permissions; Ctrl+Shift+F11).


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

понедельник, 28 октября 2013 г.

Создаём выдвижное боковое меню в приложении


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








воскресенье, 27 октября 2013 г.

Как закрыть приложение при помощи кнопки TButton или TSpeedButton

На данный момент тема "закрыть android приложение для Android с помощью кнопки(TButton или TSpeedButton)", очень актуальна. Я провёл тестирование некоторых способов и теперь подведу итог.

Upd (23.04.14). Проверено на Delphi XE6

Работаем с кнопками на Android устройствах

Часто при разработке приложения под мобильные устройства требуется обрабатывать нажатие на хардварные и виртуальные кнопки. В сообществе иногда появляются сообщения с вопросом как правильно обработать нажатие на кнопку "Меню/Назад" и т.п. . На самом деле всё очень просто, ниже я приведу список часто используемых кнопок (их коды для обработки), а также пример обработки нажатия на кнопку.

Update (7.04.14). Добавил ссылку на список всех кнопок

Upd (23.04.14). Проверено на Delphi XE6

Жизненный цикл мобильного приложения

Жизненный цикл мобильного приложения более сложный и отличается от настольных приложений. На мобильном устройстве приложение работает либо на переднем плане, либо в фоновом режиме. Если вы программист, то вам может понадобиться отслеживать изменения в состоянии приложения, например для сохранения текущего состояния (настроек и т.п.) приложения, когда приложение уходит в фоновый режим или обновление экрана, когда приложение возвращается на передний план.

Android полностью поддерживает многозадачность. Вы будете удивлены, как много приложений постоянно выполняется на вашем мобильном устройстве. Посмотреть список выполняемых приложений можно при помощи диспетчера задач. На Nexus 7 есть специальная кнопка справа от кнопки "Home", позволяющая увидеть список запущенных приложений.