Jump to content

Фаберлик Подарки - приложение для сопровождения постоянных покупателей


Recommended Posts

Название приложения: Фаберлик Подарки

Платформа: Android 32 bit, Android 64 bit

Поддерживаемые версии ОС: Android 5.0 и новее

Необходимое свободное место: до 80 Мб

Описание: Приложение "Фаберлик Подарки" предназначено для для сопровождения постоянных покупателей продукции Фаберлик.

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

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

Программа администрирования на Delphi 10.4.1 VCL компонентах.

Ссылка на приложение: https://play.google.com/store/apps/details?id=faberlic24.by

Screenshot_2021-01-12-15-00-34-766_faberlic24_by.thumb.png.167bdf662211b94f36218fc795423be4.png

Screenshot_2021-02-02-07-45-15-662_faberlic24_by.thumb.png.888d55c0d569e3f5edaa5b23c1b2ed33.png

Screenshot_2021-01-30-21-29-01-076_faberlic24_by.thumb.png.81a0817128d1be9479c5bbfed3738bac.png

Screenshot_2020-12-21-22-43-25-656_faberlic24_by.thumb.png.ac69513c2861ea3d3a4763bf53cb993e.png

 

Screenshot_2020-12-21-22-43-34-627_faberlic24_by.thumb.png.80bea058f4f9aa4c484abf15e2d8f8ab.png

Screenshot_2021-02-02-09-06-46-524_faberlic24_by.thumb.png.ebd77ec534b4c86dda4e9ecbd0513529.png

Screenshot_2021-02-02-09-25-44-589_faberlic24_by.thumb.png.0fdb3e067f6a4c441ea98488ffe81df7.png

Screenshot_2021-02-02-07-43-24-775_faberlic24_by.thumb.png.b2843464970cf64494c36548eb7a9561.png

 

 

111.png.dcc6fd27cab5eb633725644879a9a60d.png

112.png.c12a32e82960d5792863bb812d89d1cf.png

106.png.b3965e8246f8caeca048c1404a957346.png

107.png.cba1f2ec81c153ae79ac728b09dd6bbf.png

108.png.b8f011f9bf0bd9f88372a179bfa12503.png

109.png.6f49c6349bfcade8103583299c887b74.png

110.thumb.png.6c49b7a7c18d9a7821b4fa1b6d73f456.png

  • Like 5
  • Thanks 3
Link to post
Share on other sites

@Александр Клопоцкий Т.е. я как понял вы напрямую подключаетесь к базе и держите коннект? С Юнидаком не работаю, поэтому интересно как там это организованно, на сколько это стабильно? Почему не используете http?

Link to post
Share on other sites

Постоянно коннект не держу. Только в момент нажатия кнопки устанавливаю коннект, вставляю запись в таблицу, с сразу отключаюсь.

Чтение чата делаю раз в минуту и отключаюсь. http - будет прослойка, нужно будет все поля таблиц через нее прописывать, неудобно.

Хочется работать напрямую с SQL, пока ошибок с обрывом соединения в приложении не было.

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

 

114.png.973acb2bb896ad2dc67f84ae7d601f50.png

procedure TdmMain.Hoster_FL_REG_Insert;
var
  UniStoredProc: TUniStoredProc;
begin
  if ((PPL_SURNAME <> '') or (PPL_FIRSTNAME <> '') or (PPL_PHONE <> '')) then begin

    Hoster_Connect;         // Подключение к хостингу

    UniStoredProc := TUniStoredProc.Create(nil);
    try
      UniStoredProc.Connection := UniConnection;
      UniStoredProc.StoredProcName := 'st_reg_insert';
      UniStoredProc.PrepareSQL;

      UniStoredProc.ParamByName('P_APP_ID').ParamType := ptInput;
      UniStoredProc.ParamByName('P_APP_ID').DataType := ftInteger;
      UniStoredProc.ParamByName('P_APP_ID').AsInteger := StrToInt(APP_ID);

      UniStoredProc.ParamByName('P_PPL_SURNAME').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_SURNAME').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_SURNAME').AsString := PPL_SURNAME;

      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').AsString := PPL_FIRSTNAME;

      UniStoredProc.ParamByName('P_PPL_PHONE').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_PHONE').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_PHONE').AsString := PPL_PHONE;

      UniStoredProc.Execute;
    finally
      UniStoredProc.Free;
    end;

    Hoster_Disconnect;      // Отключение от хостинга
  end;
end;
procedure TdmMain.Hoster_Connect;
begin
  ScFileStorage.Path := TPath.GetDocumentsPath;  // Папка на Android
  ScSSHClient.Connected := True;
  ScSSHChannel.Connected := True;

  if ScSSHChannel.Connected then UniConnection.Connected := True
  else
    TfgDialogs.ShowMessage('SSH - Not Connected!');
end;
procedure TdmMain.Hoster_Disconnect;
begin
  ScSSHChannel.Connected := False;
  ScSSHClient.Connected := False;
end;

 

  • Like 3
Link to post
Share on other sites

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

Link to post
Share on other sites

Чат это дело второе, тут основной коннект напрямую идёт.

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

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

Link to post
Share on other sites
12 минут назад, knsg12 сказал:

Чат это дело второе, тут основной коннект напрямую идёт.

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

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

Я с прошлого года тоже стал использовать почти прямой коннект к БД. Через RemoteDB. Это в чистом виде как трехзвенка, но не через http, а напрямую в БД. Очень удобно! Причем это обернуто все в ssl и авторизацию. Пол года использую - кайфую). Но! На серваке надо ставить «переходник» в виде специального сервиса. А так как у меня свой виртуальный сервер - с этим нет пробем. 

Edited by Vitaldj
Link to post
Share on other sites
45 минут назад, knsg12 сказал:

RemoteDB это в поставке TMS? Наверное платная штука. Хорошо, спасибо за совет, гляну в эту сторону.

Да ТМS. Но работает как часы! Да платно. Но повторная через год подписка 30%. 

Link to post
Share on other sites

Помимо remotedb там в комплекте не менее замечательный инструменты, тот же sparkle и xdata, первый это кастомный кроссплатформенный веб-сервер, второе это restapi/api сервер подключаемый к sparkle одной строчкой в коде. Еще была репликация между 2 БД, кажется echo называется, но его не использовал.

Link to post
Share on other sites

Лично я юзаю HTTP запросы и на хостинге PHP или Python и норм. Всё отлично пашет. К тому же перенести скрипты и бд на любой дешевый хостинг заказчик может всегда. Но каждый сам танцует свою мульку. А приложение выглядит прикольно. Через годик думаю вообще будет как сказка пахать и выглядить! )

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...