Перейти к содержанию
Brovin Yaroslav

[FGX Native] Первое опубликованное приложение в Google Play Market

Рекомендуемые сообщения

Хочу поделиться с вами знаковой новостью для развития библиотеки FGX Native. Официально выпущено первое Андроид приложение в Google Play Market. 

Это приложение разработано Станиславом(@sinuke) для учащихся лицея по специальности "Почтовая связь". Оно одновременно является и полным конспектом, который всегда под рукой, и системой проверки своих знаний.

Полностью разработано на Delphi и стандартных компонентах альфа версии FGX Native 0.9.7.0 в Delphi 10.3 Community Edition. Быстрые списки, гибкая разметка, продвинутая навигация, анимации переходов, поддержка тем и многое другое. Это лишь малая часть того, что было задействовано из текущих возможностей библиотеки.

Приложение опубликовано в Google Play Market. Вы можете уже прямо сейчас скачать и протестировать приложение самостоятельно, загрузив его по ссылке (https://play.google.com/store/apps/details?id=com.sinukeapps.post).

Оставляйте свои комментарии и предложения. Они помогут сделать приложение лучше, а FGX Native еще удобнее и стабильнее.

Релиз первого приложения с использование библиотеки FGX Native - это результат огромной работы, проделанной за эти годы. В тоже время, это сигнал того, что библиотека обладает достаточным минимумом для создания типовых Андроид приложений.

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

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

Следите за новостями.

00.png 01.png 02.png 03.png 04.png 05.png 06.png 07.png 

Поделиться сообщением


Ссылка на сообщение

Приложение не самое функциональное.

А где можно попробовать саму библиотеку?

На Токио будет работать?

Поделиться сообщением


Ссылка на сообщение

Не могу найти в поиске плей маркета. Оно точно там есть? Просто нет возможности перейти по самой ссылке.

Поделиться сообщением


Ссылка на сообщение
13 минут назад, Ariulas сказал:

Не могу найти в поиске плей маркета. Оно точно там есть? Просто нет возможности перейти по самой ссылке.

Оно там есть точно.

Поделиться сообщением


Ссылка на сообщение
20 минут назад, Ariulas сказал:

Не могу найти в поиске плей маркета. Оно точно там есть? Просто нет возможности перейти по самой ссылке.

Есть. может твоё устройство в списке неподдерживаемых?

Я утром установил, пощёлкал.

Довольно отзывчивый, симпатичный интерфейс.

Поделиться сообщением


Ссылка на сообщение
9 минут назад, Андрей Посметухов сказал:

Вес приложения оставляет желать лучшего. С чем это связано? С кучей картинок в тексте?

Да, действительно, подобная программа собранная в Studio полагаю не будет весить и 5 мб. Да и в FMX мне кажется тоже не больше 10-15.

Ведь на сколько я могу видеть никакого тяжелого контента там нет (видео, фото, музыка и т.д.), откуда тогда 51 мб....

Хотелось бы знать это особенность FGX или все-таки частный случай реализации?

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
52 минуты назад, Yarpda сказал:

Да, действительно, подобная программа собранная в Studio полагаю не будет весить и 5 мб. Да и в FMX мне кажется тоже не больше 10-15.

Ведь на сколько я могу видеть никакого тяжелого контента там нет (видео, фото, музыка и т.д.), откуда тогда 51 мб....

Хотелось бы знать это особенность FGX или все-таки частный случай реализации?

Стас говорил, что там много контента (картинки), а вес самого приложение 5-7 мб. 

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Андрей Посметухов сказал:

Вес приложения оставляет желать лучшего. С чем это связано? С кучей картинок в тексте?

именно из-за картинок. html + картинки = ~46Мб (это без учета картинок-иконок интерфейса). все изображения сжаты по максимуму

Отредактировал sinuke

Поделиться сообщением


Ссылка на сообщение
4 минуты назад, x11 сказал:

т.е. список - это просто браузер?

вывод информации - браузер

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

тесты - TfgScrollBox + TfgLabel + TfgRadioButton (TfgCheckBox) + TfgButton + TfgSpacer (заполнитель для того, чтобы кнопка "Ответить" была всегда внизу)

 

Отредактировал sinuke

Поделиться сообщением


Ссылка на сообщение
3 часа назад, x11 сказал:

Приложение не самое функциональное.

А где можно попробовать саму библиотеку?

На Токио будет работать?

Согласен. Не самое. Но и я не профессиональный разработчик - просто препод

Другими участниками альфа-тестирования готовятся другие приложения. Думаю скоро начнут появляться и более сложные продукты. Ведь это пока только начало

 

Поделиться сообщением


Ссылка на сообщение

ну хорошо, в ближайшее время - это когда? осенью или ещё через год?

и какая ценовая политика?

Поделиться сообщением


Ссылка на сообщение
5 минут назад, x11 сказал:

ну хорошо, в ближайшее время - это когда? осенью или ещё через год?

и какая ценовая политика?

Боюсь у меня нет ответов на эти вопросы

Отредактировал sinuke

Поделиться сообщением


Ссылка на сообщение

Тоже хотелось бы попробовать библиотеку в деле, сравнить ее с Alcinoe по скорости работы в различных режимах.

Поделиться сообщением


Ссылка на сообщение

Приложение хорошее, но оценить производительность FGX по нему сложно(, хотя отзывчивость заметна.

P.S. У иконки приложения неправильная тень: 

 

Поделиться сообщением


Ссылка на сообщение
6 часов назад, x11 сказал:

Приложение не самое функциональное.

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

6 часов назад, x11 сказал:

А где можно попробовать саму библиотеку?

Этим летом будет приватная бета по России и странам СНГ. О бете я сообщу отдельной новостью. Моё личное желание на счет даты начала беты это конец июня.

6 часов назад, x11 сказал:

На Токио будет работать?

Библиотека на текущий момент работает в 10.2 и 10.3. 

Поделиться сообщением


Ссылка на сообщение
5 часов назад, x11 сказал:

это ровно год назад обещали

Да, желание выпустить, как можно скорее остается.За последний год усердно работала группа альфатестирования , которая позволила улучшить и исправить большое количество ошибок. Но желание предоставить не просто релиз, а конкурентно способный продукт, который можно использовать в своих коммерческих проектах выше простого релиза. Объем проделанной работы за это время колоссальный. И еще огромное количество идей в запасе и "хотелок", чтобы использование библиотеки в своих проектах давало свои плоды и вызывало "привыкание", в хорошем смысле этого слова.  На текущий момент релиз с исправлениями и новыми фичами выпускается в среднем раз в неделю. А в последней месяц по два релиза в неделю.

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Ariulas сказал:

Не могу найти в поиске плей маркета. Оно точно там есть? Просто нет возможности перейти по самой ссылке.

Вчера приложение было опубликовано только в России, СНГ и Израиле. Сегодня это ограничение снято и теперь приложение можно установить с любой страны.

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Андрей Посметухов сказал:

Вес приложения оставляет желать лучшего. С чем это связано? С кучей картинок в тексте?

Да. Замеры, которые я делал 2 месяца назад были такими:

One Button application:

  • Debug - 6,3 Mb  /  16,1 Mb( APK / extracted) 
  • Release - 5,7 Mb / 10,3 Mb ( APK / extracted)

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

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

Поделиться сообщением


Ссылка на сообщение
5 часов назад, x11 сказал:

FMX+FGX?

Это приложение полностью написано на FGX Native. И на устройстве нету никаких юнитов FMX.

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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


  • Похожий контент

    • От zekelive
      Коллеги, здравствуйте. Помогите пожалуйста с работой потоков. При запуске потока, появляется индикатор и исправно крутится. В какой то момент он залипает и перестает крутиться и так до конца работы потока. Понимаю, что в потоке идет работа с визуальными компонентами, по этому скорее всего и залипает индикатор. Как исправить/оптимизировать код? Спасибо.
      DelOff = class (TThread) protected FOnTaskStarted: TThreadMethod; FOnTaskFinished: TThreadMethod; procedure DoStarted; procedure DoFinished; procedure load; procedure Execute; override; public property OnTaskStarted: TThreadMethod read FOnTaskStarted write FOnTaskStarted; property OnTaskFinished: TThreadMethod read FOnTaskFinished write FOnTaskFinished; end; procedure DelOff.DoFinished; begin Add.Layout1.Visible:=false; if Assigned (Add.FindComponent('Null') as TLayout) then (Add.FindComponent('Null') as TLayout).Free; end; procedure DelOff.DoStarted; begin Add.Layout1.Visible:=true; end; procedure DelOff.load; begin try ReOpen; ClientModule2.ServerMethods1Client.Number13(a,b,g,h); a:='1'; ReOpen; offerlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); a:='2'; ReOpen; sumofferlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); a:='3'; ReOpen; keyofferlist1.Lines.Text:=ClientModule2.ServerMethods1Client.Number12(a,b,g,h); ReOpen; offercount:=ClientModule2.ServerMethods1Client.Number11(a,b,g,h); except ANM.Show; Add.Visible:=false; ShowmessageToast('Ошибка загрузки',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; end; procedure DelOff.Execute; begin inherited; //Удаление из БД продукта try try Synchronize(DoStarted); updatecount:=StringReplace((Add.FindComponent('LabelIntro') as TLabel).Hint, 'Rec', '', [rfReplaceAll]); a:=(Add.FindComponent('NameProduct'+updatecount) as TLabel).Hint; di:= TZDeviceInfo.Create; b:=StringReplace(di.DeviceID, '=', '', [rfReplaceAll]); if(internet='true') and (server='true') then begin EditCase:='false'; Add.PSB.AutoCalculateContentSize:=false; Add.PSB.EnabledScroll:=true; Add.PSB.AutoCalculateContentSize:=true; synchronize(load); if Assigned (Add.FindComponent((Add.FindComponent('LabelDel') as TLabel).Hint)) then begin (Add.FindComponent((Add.FindComponent('LabelDel') as TLabel).Hint) as TRectangle).Free; (Add.FindComponent('RecEdit') as TRectangle).Free; end; Add.PSB.ScrollTo(0,0,true); for countload:=0 to StrToInt(offercount)-1 do begin (Add.FindComponent('XRun'+IntToStr(countload)) as TFloatAnimation).Enabled:=false; (Add.FindComponent('x'+IntToStr(countload)) as TImage).Opacity:=0; (Add.FindComponent('VRun'+IntToStr(countload)) as TFloatAnimation).Enabled:=false; (Add.FindComponent('v'+IntToStr(countload)) as TImage).Opacity:=0; end; end else begin ShowmessageToast('Нет интернета',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; finally Synchronize(DoFinished); end; except ANM.Show; Add.Visible:=false; ShowmessageToast('Ошибка загрузки',TJToast.JavaClass.LENGTH_LONG); Value := Trim('10,500'); if Add.CheckPermission then if Value.Contains(',') then TVibratorHelper.vibrate(Value.Split([',']), -1) else TVibratorHelper.vibrate(Value.ToInt64); end; end;  
    • От Malstream
      Недавно решил написать небольшое приложение под андроид, которое будет в удобном виде показывать расписание моего ВУЗа (они нам передают 20 летний привет в виде экселя), ну и задно изучить FMX.
      Написал за пару дней парсер, все более менее работает. Встал вопрос - какими компонентами все это удобно и красиво отобразить? Перечитал кучу инфы по стандартным компонентам и, кажется, они мне не подойдут
      Для того чтобы было понятно, чего именно я хочу - набросал схему. Границы для наглядности. 
      Каким компонентом это можно реализовать? Если все-таки коробочные тоже годятся, то ткните лицом куда читать :)
      Заранее спасибо.

    • От ComAlex
      Господа Delphi-программисты под Android (FireMonkey),
      Нужна ваша помощь или совет в направления решения в несложной, достаточно типичной и прозрачной задаче:
      Я хочу выполнять некоторые вычисления (или выдавать Toastы) через каждые 30 сек. в Android-приложении.
      Что-то типа сервиса (службы): Приложение запускает задание и может закрываться, 
      но периодические вычисления продолжаются (результат сохраняется, допустим, в ini - не важно пока), т.е. служба работает.
      Я не знаю, как это решить:
      1. Организовал как сервис.
          Сервисы убиваются androidом ... И это политика androidов: экономить батарию и т.д.
      2. Сделал через AlarmManager.
          Тоже это не работает на MI 9T (Android 10: API 29). На старых (Android 4...: API 19) всё работает.
      3. Хотел использовать job scheduler: добавлять задания и удалять исполненные. Но не знаю как. ничего не нагуглил под Firemonkey. Может кто знает?
      Какие ещё варианты и вообще, это решается на Firemonkey Delphi XE 10.3.3?
      На поиск решения мною потрачено много время - сдвинуться не могу.
      Если Delphi это не умеет, так и скажите - перепрыгну на другую платформу.
          Может Delphi об этом думает, чтоб это скоро реализовать? В интернете тишина.
      Если Delphi это умеет, просьба дать идею или совет или пример ...
    • От Игорь Маринин
      поделитесь пожалуйста пустым проектом, готовым к публикации для TV устройств.
      что-то никак не получается опубликовать, сейчас отклонили с такими ошибками:
      APK:8
      No Now Playing notification [card]"
      Your App does not contain a “Now Playing” notification [card] for when the user has selected the HOME button within the app. Please refer to our Displaying a Now Playing Card documentation for more details.
      APK:8
      Play/Pause key event is not respected during playback
      Your media apps that play video or music content must respect the play/pause key during playback. Please refer to our Media Play/Pause documentation and Update the Playback State documentation for details.
      Missing DPad functionality
      Your app requires user interaction for menus or app navigation. Please make sure that all menus and app navigation are fully functional using a DPad. Please refer to our DPAD Control and Hardware Declaration documentation.
      ну и баннер не прилепил
      No full-size app banner
      Your app does not contain a full-size app banner or is it not visible in the launcher. We are targeting 1080P, which we consider xhdpi. Apps should include the banner in the xhdpi (320 dpi) drawables folder with a size of (320px × 180px). Please refer to our Home Screen Banner and UI Patterns documentation.
      The title should help users identify apps in the launcher. Please refer to our Visual Design and User Interaction documentation for more information.
      был бы очень благодарен за рабочий пустой костяк с манифестом.
       
    • От krapotkin
      В процессе разработки столкнулся с очень странной ситуацией, корни которой до сих пор неясны, но решение нашлось.
      Итак. Делфи 10.3.3. Чистое приложение - пустая форма и кнопка. Отлично работает на разных устройствах кроме Samsung Galaxy Tab A (2016). Android 5.1.1
      Программа падает, не успев даже загрузиться. Любая. При этом она же, скомпилированная на другом компе, запускается нормально. И даже после изменения SDK/NDK на нем, ничего не падает.
      LogCat дает крайне странную картину
      java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.embarcadero.Project1-1/libProject1.so
      Начинаем экспериментировать с SDK, NDK и т.д. Поставил также хотфиксы для 10.3.3.
      Сразу скажу, SDK/NDK ставились отдельно через Android studio, не скачивались вместе с Delphi. Не торопитесь бросать чтение на этом месте!)) На другом компе, где все работает, все ставилось точно так же.
      Короче, очень много комбинаций версий SDK/NDK проверено.
      Результат такой. При постепенном понижении версии NDK все взлетело при NDK v22.

      При этом версия SDK видимо такого большого влияния не имеет, потому что этот вариант нормально работает

      Повторюсь. На других устройствах все работало и на более новых Ndk. Xiaomi Mi Pad4 , Samsung Galaxy Tab A (2019), Xiaomi Redmi 5 и 5Plus
       
      Спасибо за участие и помощь в разборе завалов @Andrey Efimov
       
    • От krapotkin
      У меня в работе два приложения, и оба они не предназначены для Play market, так как имеют ограниченный круг использования, по сути, чисто внутрикорпоративные. Так что нежелательно и выкладывание их и на альтернативные магазины приложений. 
      Автоматически возникает вопрос обновления. Если в  первый раз мы можем установить приложение сами при помощи админов, то обновлять их не так просто. А контингент пользователей не справится с "скачайте APK по ссылке, найдите, куда его скачал браузер, и запустите вручную именно последний скачанный, а не какой попало"...
      Простейший способ - дать приложению скачать свежую копию с сайта и натравить на полученный файл системный инсталлер.
      Вот только свежие Andoird делать это напрямик запрещают. Нужен filepropvider. Целый день шуровал по мануалам и YT,
      Вот то что получилось  в результате.
      Если у вас 10.3.3 как у меня, уже можно не вносить <provider>...</provider> в манифест и свой файл file_paths.xml (или как вам его советуют назвать в интернетах) в деплой.
      Теперь все это делается хоть несколько странно и однобоко, но автоматически, путем установки галочки Secure File Sharing

      после этого в манифесте автоматически пропишется один из вариантов размещения файлов, которые вы можете найти в интернете. Используется алиас external-path
      файл, показанный на рисунке, создается автоматически самой делфи.

      теперь остается отгадать, какой путь реально подставится вместо "."
      Как показала практика, все пути выглядят не так, как кажется, если исходить из простого здравого смысла. Целый день использования GetHomeDir и других полезных методов TPath завел меня совсем в тупик.
      Оказалось все проще (?)
      st:TMemoryStream; OutputDir: JFile; ApkFile: JFile; ApkUri: Jnet_Uri; path, filename: string; ... OutputDir := TAndroidHelper.Context.getExternalCacheDir(); path := JStringToString(OutputDir.getAbsolutePath); filename := path+'/ASDroid2.apk'; ApkFile := TJfile.JavaClass.init( StringToJstring(filename)); FApkUri := TAndroidHelper.JFileToJURI(ApkFile); st.Position := 0; st.SaveToFile(filename); обратите внимание, в provider_paths мы задаем external-paths, а в коде ищем ExternalCacheDir.!!!  (For.Unbelievably.Creative.Knowers!)
      Потом все просто. FApkUri передаем в интент и запускаем 
      итоговый код примерно таков. (скачивание в потоке с использованием небольшого собственного API, но там ничего важного, можно не обращать внимания)
      procedure TasdSettingsFrame.bDownloadClick(Sender: TObject); begin {$IFDEF ANDROID} bDownload.Enabled := False; DownloadAndRun(); {$ENDIF} end; {$IFDEF ANDROID} procedure TasdSettingsFrame.DownloadAndRun(); begin ttask.Run(procedure var aapi:TasdAPI; st:TMemoryStream; OutputDir: JFile; ApkFile: JFile; ApkUri: Jnet_Uri; path, filename: string; begin st := TMemoryStream.Create; aapi := TasdAPI.Clone(_API); try aapi.OnReceiveData := OnReceiveData; aapi.getApk(st); if aapi.Err.Code=0 then begin OutputDir := TAndroidHelper.Context.getExternalCacheDir(); path := JStringToString(OutputDir.getAbsolutePath); filename := path+'/ASDroid2.apk'; ApkFile := TJfile.JavaClass.init( StringToJstring(filename)); FApkUri := TAndroidHelper.JFileToJURI(ApkFile); st.Position := 0; st.SaveToFile(filename); TThread.Synchronize(nil,procedure begin bDownload.Enabled := true; StartActivity(FApkUri); end); end; finally st.Free; aapi.Free; end; end); end; procedure StartActivity(ApkUri: Jnet_Uri); var Intent: JIntent; begin Intent := TJIntent.Create(); Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK or TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP or TJIntent.JavaClass.FLAG_GRANT_WRITE_URI_PERMISSION or TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Intent.setDataAndType(apkuri, StringToJString('application/vnd.android.package-archive')); TAndroidHelper.Activity.startActivity(Intent); end; procedure TasdSettingsFrame.OnReceiveData(const Sender: TObject; AContentLength: Int64; AReadCount: Int64; var Abort: Boolean); begin tthread.Synchronize(nil, procedure begin pb1.Max := AContentLength; pb1.Value := AReadCount; end); end; {$ENDIF} Вопросы остались конечно, почему так странно с каталогами, но выяснять пока нет желания. Работает - не трожь.
      Всем удачи.
      UPD.
      Для того, чтобы системный инсталлер запускался, нужно не забыть отметить еще одну галочку

       
       
       
       
       
    • От Дмитрий Потапов
      Приветствую. На просторах интернета нашел BASS-библиотеку для Android и соответственно обертку для нее под Delphi.

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

       
      PAnsiChar(BASS_GetConfigPtr(configId)) и получаем значение. BASS_SetConfigPtr(configId, PAnsiChar(value)) и задаем значение. Но вот под Android такой способ не проходит, как минимум по одной причине - он не понимает, что такое PAnsiChar. На docwiki.emarcadero.com, есть вот такая статейка. В которой написано, что PAnsiChar нужно заменить одним из трех: System.String, System.MarshalledString или System.SysUtils.TStringBuiler
      Только вот, если использовать MarshalledString, то при попытке получить значение приложение просто намертво зависает и все.
      Потом я подумал, так как библиотека написана на Java (вероятно), то может стоит попробовать использовать JNI в работе с ней, так как в Java файле, который прилагался вместе с библиотекой. Там я нашел объявления этих функций и заметил, что тип возвращаемого значения Object (ну, не зная Java я просто предположил, что это тоже просто ссылка на значение, например как PAnsiChar в Delphi на Windows).

      Но, при попытке как-либо использовать это натыкаюсь на проблемы в виде ошибки компиляции, либо очередном зависании приложения.
      Так как возвращается Object, то решил попробовать вариант с JObject и JString, но ни один вариант не хочет работать, опять ошибки на стадии компиляции, либо зависание приложение. Может быть, я что-то не так делаю.

      В общем, буду признателен за помощь!
    • От Yarpda
      Доброго времени!
      Есть идея сделать возможность резервирования данных приложения на Google drive под текущим аккаунтом пользователя. Ничего подобного я на форуме не нашел, может быть кто-то уже пытался решать подобную задачу? Интересует работа с Gdrive  в первую очередь.
    • От Ali Ezzeddine
      65/5000       Уважаемые,
      Есть ли способ вызвать сервис Java из приложения Delphi FMX?
    • От Эрик Шакиров
      Привет всем! Кто нибудь может подсказать как реализовать анимацию переходов между формами в Android без использования TabControl? Или подсказать в какую сторону "рыть"
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...