• Каким образом у меня получается работать с UI элементами используя Dispatchers.IO?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    сахар/синтаксис языка прячет от вас внутреннюю кухню.

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

    lifecycleScope.launch(Dispatchers.IO) {
    вот эту часть можно считать объявлением анонимной функции
    }

    progressBarDownload.progress - а здесь у нас замыкание

    в общем от Вас язык спрятал кучу рутины
    Ответ написан
    2 комментария
  • Как обфуцировать SDK?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    consumer-rules.pro
    -keep class your.sdk.** { *; }

    ** - сохранять все классы глубже your.sdk
    {*;} - сохранять методы
    Ответ написан
    Комментировать
  • Разница в доходах AdMob на iOS и Android?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Не смотрю видео. Не монетизирую через AdMob. Не публикую в App Store.
    Просто анализирую статистику из разных источников.

    Попробуйте загуглить
    1) Ios vs Android доля рынка по странам
    2) Toп стран по покупкам в сторах
    3) На каждый год можно найти статьи сколько всего денежек потрачено в сторах

    Подключить здравый смысл. Андроид - все ищут бесплатные (с рекламой)
    Яблоко - программы в основном платные
    Ответ написан
    1 комментарий
  • Почему activity долго закрывается?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    На подобные вопросы ответить можете только Вы как автор программы.
    А помочь с поиском проблемных мест может стрикт моде у приложения
    if (BuildConfig.DEBUG) {
                StrictMode.enableDefaults();
                StrictMode.allowThreadDiskReads(); // 1
                StrictMode.allowThreadDiskWrites(); // 2
            }

    1 и 2 очень много сообщений без них. Тут начнет ругаться на сохранение и востановление стейта у активитей, чтение шаред преференс.

    Посмотрите в логах на что будет ругаться. Может вы чего на UI треде делаете при деструктизации
    Ответ написан
    Комментировать
  • Как интегрировать СБП во Flutter приложение?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://github.com/MrOlolo/SbpPaymentsAndroid/blob...
    Тут в 12 андроиде запращивается поиск приложений, которые ассоциированы с сайтом.
    А вот приложениям банков, чтобы появиться в этом списке уже сложнее .
    Deep Link на сторонний https ресурс :(
    Тут проблема и в андроиде и у яблока. Чтобы открывалось четко на сайте должен лежать файл определенного формата . С его помощью происходит валидация может ли приложение открыть урл .

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

    Без диалога выбора вполне будет работать пакет url_launcher
    Так как суть простая попросить операционку открыть урл https://qr.nspk.ru...............

    Красивый выбор - не магия - а классно работавщий до 12го андроида инструмент
    Intent.createChooser() - рекомендованное решение. Иногда встречается свой велосипед вместо него. Опрос установленных на телефоне программ. Зарезано текущей редакцией правил гугл плея и новыми пермишинсами.

    p.s. Пробую решить обратную вашей задачу. Чтобы ссылки на чеки самозанятого открывались в моем приложении
    На чистом андроиде сделал. Сейчас переписываю на флаттере.

    p.s.
    У приложений перечисленных в специальном файле не должно быть проблем в 12м андроиде
    https://qr.nspk.ru/.well-known/assetlinks.json
    Ответ написан
    Комментировать
  • Почему Cron не влияет на работу сайта?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    fkn.ktu10.com/?q=node/10487
    Как проявляется проблема
    Проблема касается обычно обслуживания частых или одновременных запросов одного пользователя -- вы запрашивает скрипт, который долго "не отпускает" сессию, и все другие скрипты, запрошенные этим пользователем и тоже работающие с сессией виснут.
    Ответ написан
    Комментировать
  • Как правильно проверить по таймингу запись в БД?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Обычно для оплаты пользователя переадресовывает на страницу эквайринга. Если внедрять на свой сайт , то требуется сертификация по псд.

    Прехук перед платежом может быть или отсутствовать . Тогда пайлоад платежа идёт вместе с пост редириктом на оплату. У мерчантов два бак урла. Успех и отказ. Это обычно во внутреннем билинге проверяешь. Пречек полезной инфы не несёт так как реально приходит за несколько милисекунд до авизо.

    А вот авизо это уже не временные данные, как вы считаете, а главный метод биллинга. Деньги клиент заплатил .
    Ответ написан
  • Как исправить ошибку «exception occured while executing 'grant'» при использовании ADB?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Не совсем понимаю, что реально вы через это хотите сделать. В андроид многое дополнительно нельзя чисто юридически. Использование средств для людей с ограниченными возможностями в последней редакции ужесточили.
    Ответ написан
  • Как сделать так чтобы бот отправлял сообщения в заданное мною время?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Рассылка вопросов через Cron по базе данных
    tid подписчика, prefer_time, last_send
    выбрать из базы тех у кого last_send старее 22 часов от now и предпочитаемое времы меньше или равно текущему времени в формате hh:mm

    вторая часть реализация диалога о выборе времени
    тут уже ваша фантазия / валидное время записывается в таблицу
    Ответ написан
    Комментировать
  • Почему андроид "подвешивает" VPN?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Это андроид. У него даже системные службы виснут. 24на7на365 тут нет как класса.
    Ответ написан
    2 комментария
  • Две версии php на одном сайте без домена на одном ip на одном порту в разных папках?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    fast cgi обязательно ? Если нет, то
    https://stackoverflow.com/questions/12561203/how-t...
    положи в папку где нужна отличная от дефолтной версии
    Ответ написан
    Комментировать
  • Хочу заказать разработку приложения. Есть пару вопросов?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Первый вопрос к Вам
    У Вас уже есть аккаунты для публикации с гугл плей и аппсторе ?
    Или Вы знаете как решить проблему с оплатой их регистрации ?

    1) Будет отлично работать на всех платформах ?
    Зависит от того, какие зависимости придется подключить.
    Есть такой ресурс pub.dev (репозиторий готовых модулей)
    Официальные библиотеки (там где только код на Dart) имеют версии под 5 платформ
    Но например простейший встроенный броузер в приложение уже сплошное разочарование.
    Поддерживается только IOS и Android. И доступные методы урезаны до общего совместимого функционала.
    В общем если платформо зависимая вещь, то дай бог чтобы была реализация под яблоко и робота.
    Совсем специфичные - в версиях под одну платформу.

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

    4) Приложение подразумевает взаимодействие пользователей друг с другом.
    Вопрос два к Вам а штат модераторов готовы набрать ? Законы всех стран с требованиями к таким приложениям изучили ? Сочетания смайликов которые являются жутким оскорблением ?
    Ответ написан
    Комментировать
  • Как принимать данные по Bluetooth?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Жалко. Поэтому словами.
    Есть фоновая служба. В ней сиглетон тред сервера.
    В сервере
    // создаём серверный сокет, он будет прослушивать порт на наличие запросов
    serverSocket = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord("RAWBT", SPP_UUID);

    // запускаем бесконечный цикл, внутри которого сокет будет слушать соединения и обрабатывать их
    // создаем клиентский сокет, метод accept() создаёт экземпляр Socket при новом подключении

    Далее в бесконечном цикле, пока верен флаг что работаем

    принять соединение, если количество открытых соединений не превысило лимит.
    стартует тред взаимодействия

    public abstract class Connection extends Thread {
    BluetoothSocket socket; // сокет, созданный при подключении пользователя
    final OnDocumentReceived mDelegate;
    }

    В конкретной реализации этого класса потребуются
    final ExecutorService executor = Executors.newSingleThreadExecutor();
    private DataOutputStream stream;
    private DataInputStream dataInputStream;

    Экзекутор для рассылки сообщений с прочитанными данными
    так как чтение идет из еще одного паралейного треда.

    В общем врядли ваши примеры были настолько сложными
    Я еще про часть самого окна терминала ничего не написал. А там тоже накрутить кода пришлось
    Ответ написан
    2 комментария
  • Почему моя библиотека работает только при установке из NPM?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Комментировать
  • Как дождаться появления данных от асинхронной функции для экспорта этих данных?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    1) зачем в ретурне оппссс ?
    В смысле Кетч не нужен.
    2) чем плох промис ?
    Навесите в функции выше then
    Или из асинка выше подождёте через аваит
    Ответ написан
  • Хочу портировать игру из Юнити 2021 в windows phone 10?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://leonardo.osnova.io/62d18a1c-6a7e-536f-aca3...
    Посмотрите долю виндофонов (2015 проскакивает). А так некромат тоже профессия
    Ответ написан
    Комментировать
  • Можно ли писать андроид приложения на C#?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Java vs Kotlin - можно спорить, что лучше. Но это нативная разработка.
    Си шарп - кросплатформер.

    Поэтому выбор инструмента зависит от задачи. Серьезное приложение понятие большое.
    Я писал и пишу на яве. Но захотелось выйти за пределы одной платформы.
    Попробывал react native. Не понравилось. Пробую сейчас flutter (dart).
    К чему в результате хочу придти.
    Часть кода общая. Остальное в виде пакеджа и реализацией под конкретную платформу.
    Если еще осилю CPP , то это тоже будет почти общим с обертками над .so .dll
    Но учить до посинения.

    p.s. Сейчас попалось в статье разочаровавшегося ( по сути тот человек хотел сделать WebView приложение).
    Угу именна та часть, которую не реально обернуть для 5ти платформ (андроид иос макось винда линух)

    В каждом пакете Flutter может встретиться баг в коде Dart, или в коде Swift/Objective-C, или в коде Java/Kotlin. А то и в нескольких частях сразу. Его может сломать любое обновление Flutter, Dart, iOS или Android – а вместе с ним сломается и ваше приложение на одной или всех платформах. Если вы не владеет всеми тремя языками и всеми поддерживаемыми платформами, то, вероятно, не захотите искать и устранять проблемы самостоятельно.
    Ответ написан
    Комментировать
  • Как добавить пункт меню?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://github.com/YehiaAliYehia/Notes/blob/b4cc81...

    Студия исходники у Вас раскрасила как депрекайтед?
    Ответ написан
  • Как держать в таблице только последние 10 записей?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    странная задача. Может быть до 30 в минуту и больше. Блок Вы просматривали ?
    тут такой момент посетители сайтов бывают двух типов
    1) Случайно залетели в глубь сайта из поисковика (по прямой ссылке)
    средняя глубина просмотра 1,5 страницы
    2) Ведет себя как поисковый бот - смотрит кучу страниц

    Предложение Akina разумно для авторизованных пользователей
    В чистке по крону Дмитрий засада в случае редких просмотров. Как оставить именно не более 10 у каждого

    И общая проблема такого хранения в муське. Квери кеш идет лесом.

    Я бы задействовал хранение на стороне пользователя. И через аякс подтягивал блок по списку id
    Ответ написан