Комментарии

0
Иван Иван → Мобильное приложение - часть 2 9 месяцев назад

В смысле? ) Сырое приложение устанавливать? Это же не детский сад ) Если у кого то не просто сайты, а достаточно крупные проекты… Здесь тестировать на таких проектах — этом может пострадать репутация. Ну и к тому же автор заявил что в долгий ящик откладывает, это его выбор, но для теста это не серьёзно. Тест подразумеват проверил написал замечания правку сделали. А тут долгий ящик, без сроков и т.д. Может год, может 2 года. А за это время у автора интерес к разработке может изменится.  

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

Без претензий к автору. Но, даю свою обратную связь. 

0
Pechora.Dev 🐻 Pechora.Dev 🐻 → Поле - режим работы 9 месяцев назад

Ответил в ЛС

0
rshabalin rshabalin → Поле - режим работы 9 месяцев назад

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

0
Dublic Dublic → Мобильное приложение - часть 2 9 месяцев назад

верный подход. Заодно узнаешь кому-что надо и кто и сколько готов за это доплатить

+2
My-InstantCMS.Ru My-InstantCMS.Ru → Мобильное приложение - часть 2 9 месяцев назад

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

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

0
Иван Иван → Мобильное приложение - часть 2 9 месяцев назад

Есть понимание когда завершите приложение?

0
Иван Иван → Мобильное приложение - часть 2 9 месяцев назад

Соглашусь, нужно продумать сразу. 

0
Иван Иван → Мобильное приложение - часть 2 9 месяцев назад

Парвиз, если не складчина. Готов выкупить под себя открытый код. Только главное, чтобы в Rustore можно было выкладывать. Без открытого кода приложение никому не нужно удет, у приложений есть свойство необходимости обновлений. Вы же не будете под каждый пчих всё бросать и обновлять? Поэтому нужна автономия, только так можно быстро обновлять приложение.

+1
Dublic Dublic → Мобильное приложение - часть 2 9 месяцев назад

конечно можно в Рустор. Приложения на Flutter легко залетают хоть в рустор хоть в гугол хоть в яблоко

0
Dublic Dublic → Мобильное приложение - часть 2 9 месяцев назад

Я колебался между PWA и miniApp в ботах. Твоё приложение выбило вариант PWA. Флаттер встал между PWA и нативом. Хорошо получилось 

Теперь (пока на это есть время) колеблюсь между твоим приложением и miniApp в ботах.

Несколько вопросов:

1. шустро ли приложение работает с камерой? мне надо чтоб шустро фотки с камеры оптимизировались и на сервер улетали для распознавания объектов на этих фото.

2. Будет ли открыт исходный код при продаже (+WhiteLabel)? Т.к. мне под свои задачи надо дорабатывать, как минимум у меня будет 2-а API, одно в instantcms (допустим под твоё приложение) второе в nodejs + моя flutter-библиотека для обработки фото

0
pupsik pupsik → ZПоиск. Другой взгляд на поиск 9 месяцев назад

Да, год назад, я конечно «помню». Ваш компонент, вы и запомнили. Попросили протестить, я протестил. 

+1
Pechora.Dev 🐻 Pechora.Dev 🐻 → Поле - рецепты 9 месяцев назад

Внести изменения не составит труда, вы верно заметили. Но на данный момент реализация такова. Записал ваши предложения, возможно, если будет свободное время, внесу изменения. 

0
DeusSpa DeusSpa → Поле - рецепты 9 месяцев назад

Это ваше решение.

Внести изменения думаю для разработчика не составит труда.

Другие которые купили — Уверен будут рады данной функции — она улучшает весь процесс и не делает его просто книгой рецептов.

По поводу покупки — пока не знаю куда применить. Меня привлекло внимание, анализировал и подсказал. Реализовал.

0
Pechora.Dev 🐻 Pechora.Dev 🐻 → Поле - рецепты 9 месяцев назад

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

0
DeusSpa DeusSpa → Поле - рецепты 9 месяцев назад

И так пошагово:

Расширить существующее 

  1. const recipe = {
  2. steps: [
  3. {
  4. description: 'Нарезать овощи',
  5. duration: 180 // секунд
  6. },
  7. {
  8. description: 'Обжарить на сковороде',
  9. duration: 300
  10. }
  11. // ...другие шаги
  12. ],
  13. totalTime: 480 // общее время (сумма durations)
  14. };
  15.  

Интерфейс таймера (HTML + CSS):

дисплей текущего шага;
обратный отсчёт в формате мм: сс;
кнопки «Старт/Пауза», «Следующий шаг», «Сбросить»;
индикатор прогресса (полоска или круговой прогресс).

javascript

  1. class RecipeTimer {
  2. constructor(recipe) {
  3. this.recipe = recipe;
  4. this.currentStep = 0;
  5. this.timerId = null;
  6. this.isRunning = false;
  7. this.remainingTime = this.recipe.steps[0].duration;
  8. }
  9.  
  10. start() {
  11. if (this.isRunning) return;
  12. this.isRunning = true;
  13. this.updateDisplay();
  14. this.timerId = setInterval(() => {
  15. this.tick();
  16. }, 1000);
  17. }
  18.  
  19. pause() {
  20. clearInterval(this.timer Id);
  21. this.isRunning = false;
  22. }
  23.  
  24. nextStep() {
  25. this.pause();
  26. this.currentStep++;
  27. if (this.currentStep >= this.recipe.steps.length) {
  28. this.showCompletion();
  29. return;
  30. }
  31. this.remainingTime = this.recipe.steps[this.currentStep].duration;
  32. this.updateDisplay();
  33. }
  34.  
  35. tick() {
  36. if (this.remainingTime <= 0) {
  37. this.notifyStepEnd();
  38. this.nextStep();
  39. } else {
  40. this.remainingTime--;
  41. this.updateDisplay();
  42. }
  43. }
  44.  
  45. updateDisplay() {
  46. const minutes = Math.floor(this.remainingTime / 60);
  47. const seconds = this.remainingTime % 60;
  48. document.getElementById('timer').textContent =
  49. `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
  50.  
  51. document.getElementById('step-description').textContent =
  52. this.recipe.steps[this.currentStep].description;
  53. }
  54.  
  55. notifyStepEnd() {
  56. // Звуковое оповещение
  57. const audio = new Audio('/sound/beep.mp3');
  58. audio.play();
  59.  
  60. // Браузерное уведомление (если разрешено)
  61. if (Notification.permission === 'granted') {
  62. new Notification('Время следующего шага!');
  63. }
  64.  
  65. // Визуальный эффект
  66. document.body.classList.add('flash');
  67. setTimeout(() => {
  68. document.body.classList.remove('flash');
  69. }, 500);
  70. }
  71.  
  72. showCompletion() {
  73. alert('Рецепт готов!');
  74. this.reset();
  75. }
  76.  
  77. reset() {
  78. this.pause();
  79. this.currentStep = 0;
  80. this.remainingTime = this.recipe.steps[0].duration;
  81. this.updateDisplay();
  82. }
  83. }
  84.  

html

  1. <div class="recipe-player">
  2. <div id="step-description" class="step">Шаг 1: Нарезать овощи</div>
  3. <div id="timer" class="timer">03:00</div>
  4. <div class="controls">
  5. <button onclick="timer.start()">Старт</button>
  6. <button onclick="timer.pause()">Пауза</button>
  7. <button onclick="timer.nextStep()">Следующий шаг</button>
  8. <button onclick="timer.reset()">Сброс</button>
  9. </div>
  10. <div class="progress"></div>
  11. </div>
  12.  

css

  1. .flash {
  2. animation: flash 0.5s ease-in-out;
  3. }
  4.  
  5. @keyframes flash {
  6. 0% { background-color: #fff; }
  7. 50% { background-color: #ffeb3b; }
  8. 100% { background-color: #fff; }
  9. }
  10.  
  11. .timer {
  12. font-size: 2rem;
  13. font-weight: bold;
  14. margin: 1rem 0;
  15. }

Прогресс:

  1. updateProgress() {
  2. const total = this.recipe.totalTime;
  3. const elapsed = total - this.remainingTime;
  4. const percent = (elapsed / total) * 100;
  5. document.querySelector('.progress').style.width = `${percent}%`;
  6. }
  7.  

Инцилизация RecipeTimer при загрузке страницы:

  1. const timer = new RecipeTimer(recipeData);

как то так… тут можно по принципу прихода сообщения сделать как в чате звукового оповещения.

попробуйте

0
DeusSpa DeusSpa → Поле - рецепты 9 месяцев назад

1) Галочкам дать понятие — что всё таки оно означает вычёркивание. Думаю это не сложно. (на данный момент галочка а что делает...)

2) Почему же нельзя, не обязательно мобильное приложение. Всё делает на JS спокойно

0
Pechora.Dev 🐻 Pechora.Dev 🐻 → Поле - рецепты 9 месяцев назад

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

+1
Zau4man Zau4man → ZПоиск. Другой взгляд на поиск 9 месяцев назад

ответ на этот вопрос вы получили год назад… он есть выше. не вижу смысла дублировать.

0
Zau4man Zau4man → ZПоиск. Другой взгляд на поиск 9 месяцев назад

Есть желающие до анонса протестировать новую версию поиска?

Что нового:

1. дублей в поиске больше быть не должно
2. добавлен вывод поиска по фотографиям
3. обновлен внешний вид

Изображение

Скачать можно по ссылке disk.yandex.ru/d/IjEmfQO89JPAwA

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

На демо demo.bergorod.ru также стоит новая версия

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.