Nikolai
WebView приложение )
Nikolai
или TWA
Alexander
Создай игру на вебе, какие проблемы?)
Мне нужно будет заниматься маркетингом. Это уже не пассивный доход. А в случае с Play Market / App Store, так они ведь раскруткой сами занимаются. Мол оно в открытом доступе, а люди находят его без твоего вмешательства
Oleg
Мне нужно будет заниматься маркетингом. Это уже не пассивный доход. А в случае с Play Market / App Store, так они ведь раскруткой сами занимаются. Мол оно в открытом доступе, а люди находят его без твоего вмешательства
Как ты думаешь, без маркетинга через сколько секунд твое приложение улетит в анналы истории?) Ничем они не занимаются, есть же десятки статей на заборе про продвижение в Гугле и пасторе. Если что - мобильная разработка в основном также наемная работа, принципы заработка везде одинаковые.
Олександр
Мне нужно будет заниматься маркетингом. Это уже не пассивный доход. А в случае с Play Market / App Store, так они ведь раскруткой сами занимаются. Мол оно в открытом доступе, а люди находят его без твоего вмешательства
Оуу, в рекламу вкладываться по-любому надо будет 😁 Это как на Ютубе - всё доступно через поиск и рекомендации, но контента уже очень много и если выставишь и просто будешь ждать, то.. Не знаю, разве что поймать волну хайпа надеяться) А так - в рекламу канала нужно вкладывать. Так и здесь.
leksss
Кто может подсказать, как отключить (или обновить Detect..) я не знаю что это даже..
Andre
И как успехи спустя время?
Max
Привет Может кто-то сталкивался Зашел новый проект и как только я ухожу с активити она моментально валится в onDestroy А я тут как-бы result хочу получать) Флаг на телефоне выключен и новая активити находится в другом модуле
Mike
dafuq?
Vladislav
Никто не знает, можно ли отследить SwipeRefreshLayout находится в состоянии рефреш или нет?)
🦥Alex Fails
dafuq?
Извини, ошибся чатом
Александр
Извини, ошибся чатом
Трек норм, так что отпускаю тебе грехи
🦥Alex Fails
СПС)
Vyacheslav
Мне нужно будет заниматься маркетингом. Это уже не пассивный доход. А в случае с Play Market / App Store, так они ведь раскруткой сами занимаются. Мол оно в открытом доступе, а люди находят его без твоего вмешательства
на самом деле соглашусь с Олегом, если у тебя в Веб'е деньги не идут, то в мобилках будет примерно тоже самое. Единственный плюс который ты получишь 25 баксов и твои прилы бесконечно живут, в отличии от Веба где тебе надо платить за хостинг/домен. Но гугл это может поправить в любой момент + легкость доступа к сайту и приложению это две разные вещи.
⚡️Мухамед
Всем привет, подскажите пожалуйста можно ли на весь recyclerview присвоить или установить zoom
Turalllb
Cannot find local variable 'imageSet' with type kotlin.jvm.internal.Ref$ObjectRef кто нибудь поборол это гавно? Я эмулятор вайпнул, перезапустил, adb убил. все равно только у меня на проекте такая фигня.
Turalllb
в инете пишут про всякие атрибуты в градле, но у других то на проекте все работает. Да и не помогли мне эти атрибуты
Oleg
Привет Может кто-то сталкивался Зашел новый проект и как только я ухожу с активити она моментально валится в onDestroy А я тут как-бы result хочу получать) Флаг на телефоне выключен и новая активити находится в другом модуле
Какой result ты хочешь получить и где? и про какие флаги ты говоришь, тоже непонятно. Когда закрываешь активити - логично что вызывается onDestroy, посмотри жизненный цикл активити. Тебе нужен либо activity for result смотреть либо пересмотреть арзитектуру приложения, либо понять что вообще ты хочешь
Oleg
Всем привет, подскажите пожалуйста можно ли на весь recyclerview присвоить или установить zoom
а scrollview чем не устраивает? recyclerview нужен для других целей, точно не для зума
Сергей
Подскажите что может быть не так почему purchasesList может быть равен null object SubscriptionProvider : PurchasesUpdatedListener, BillingClientStateListener { lateinit private var playStoreBillingClient: BillingClient private lateinit var preferences: SharedPreferences private const val SUBSCRIPTION_ID = "*********" private const val HAS_SUBSCRIPTION = "has_subscription" private const val IS_APPROVED = "is_approved" var flag: Boolean = false fun init(context: Context) { preferences = context.getSharedPreferences("subscription", Context.MODE_PRIVATE) playStoreBillingClient = BillingClient.newBuilder(context.applicationContext) .enablePendingPurchases() .setListener(this).build() connectToPlayBillingService() } private fun connectToPlayBillingService(): Boolean { if (!playStoreBillingClient.isReady) { playStoreBillingClient.startConnection(this) return true } return false } override fun onPurchasesUpdated(billingResult: BillingResult?, purchases: MutableList<Purchase>?) { updatePurchases(billingResult) } private fun updatePurchases(billingResult: BillingResult?){ if (billingResult?.responseCode == BillingClient.BillingResponseCode.OK) { var hasSubscription = false val result = playStoreBillingClient.queryPurchases(BillingClient.SkuType.SUBS) if (result != null && result.purchasesList != null) { result.purchasesList.forEach { if (it.sku == SUBSCRIPTION_ID) { hasSubscription = true val params = AcknowledgePurchaseParams.newBuilder().setPurchaseToken(it.purchaseToken).build() playStoreBillingClient.acknowledgePurchase(params) { billingResult -> when (billingResult.responseCode) { BillingClient.BillingResponseCode.OK -> { preferences.edit().putBoolean(IS_APPROVED, true).apply() flag = true callback?.subscribe(true) } else -> { preferences.edit().putBoolean(HAS_SUBSCRIPTION, false).apply() callback?.subscribe(false) } } } } } } preferences.edit().putBoolean(HAS_SUBSCRIPTION, hasSubscription).apply() } } override fun onBillingServiceDisconnected() { } override fun onBillingSetupFinished(billingResult: BillingResult) { updatePurchases(billingResult) } fun hasSubscription() = preferences.getBoolean(HAS_SUBSCRIPTION, false) fun startSubscription(activity: Activity) { val params = SkuDetailsParams.newBuilder().setSkusList(arrayListOf(SUBSCRIPTION_ID)) .setType(BillingClient.SkuType.SUBS).build() playStoreBillingClient.querySkuDetailsAsync(params) { billingResult, skuDetailsList -> when (billingResult.responseCode) { BillingClient.BillingResponseCode.OK -> { if (skuDetailsList.orEmpty().isNotEmpty()) { skuDetailsList.forEach { val perchaseParams = BillingFlowParams.newBuilder().setSkuDetails(it).build() playStoreBillingClient.launchBillingFlow(activity, perchaseParams) } } } else -> { } } } } }
Код смотреть не буду. Почему что не так - см в BillingResult в onPurchase... . Там английским по белому. Обычно или сервер не запущен или приложение не выложено правильно или в нем версия старше/молже дебажной
George
Всем привет, подскажите плз, в рекуклере едит текст прыгает при переходе на след строчку, могу видос записать, изза чего это может быть и как можно пофиксить
Артем
Код смотреть не буду. Почему что не так - см в BillingResult в onPurchase... . Там английским по белому. Обычно или сервер не запущен или приложение не выложено правильно или в нем версия старше/молже дебажной
Версии совпадают, и выложено все хорошо, подписано теми же ключами, у меня лично такая ошибка вообще не появляется, но она есть у некоторых пользователей в метрике, а сервер в смысле у гугла проблемы?
Артем
Если у некоторых то х.з., нет идей. Но может биллингрезалт подскажет че. Или логи полные (verbose) еси удастся воспроизвести
В этом и проблема что не удается воспроизвести тогда бы я хоть знал в какую сторону капать( Если у меня тестовая подписка работает правильно то и обычная должна?
Anonymous
Как узнать в какой момент уничтожается Application?
Сергей
Ну... тестовых карт 4 вида в меню. А на реальной еще может какие экз.глюки могут быть. Я не помню в каком коллбэке билинга мне присылало нулл хотя по всем докам должно было прислать пустой список
Сашка
Добрый день! Я хочу использовать изменение фото профиля во фрагменте. Если использовать код к Активити то он работает а во фрагменте выбивает ошибку. Может кто-нибудь помочь в решение данной проблемы?
Сергей
Как узнать в какой момент уничтожается Application?
Перехватить onDestroy в application классе. Но при аварийном выходе или смахивании он скорее всего вызван не будет
Kirill
потому что обе переменные ссылаются на одну и ту же область памяти, где хранится массив
Kirill
посмотри в сторону Arrays.copyOf()
Mike
@javastart
Mike
посмотри в сторону Arrays.copyOf()
это для массивов, а тут лист. Аффтару нужен copy constructor
Kirill
это для массивов, а тут лист. Аффтару нужен copy constructor
да я такой же нуб )) просто никто не отвечал, решил сам помочь
Alexander
Есть вопрос, есть файлы в которых хранятся данные, по ходу приложения они будут изменятся. Изначально они сложены в папке assets, как при установке приложения переместить их в data/data/appName?
Max
пытаюсь изменить цвет для каждой кнопки, в стайле для radiogroup прописал для чекнутой кнопки бэкграунд, это вообще так работать должно?
Artyom
Всем привет! Гайз, в подкасте услышал новость, что во вьюмоделях появилась возможность не разделять лайв дату на две переменные (с доступом наружу на подписку, но изменения только внутри). Подскажите, как это называется?
Max
Colorlist кажется нужно делать
понял, посмотрю. спасибо
M
Всем привет. Посмотрел в инете высоту статусбара, = 24dp. Но после установки на эмуляторе высота как по дефолту, но на самсунге меньше выглядит. Есть возможность ее установить чтобы высота была как по дефолту на всех устройствах?
Viktor
Отличную доку по Room нагуглил :) https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0
Viktor
хауту, точнее)
Stunner // 🎄
Как можно сделать квадратную imagebutton, чтобы ripple нормальный был?
Stunner // 🎄
У меня только margin выставлены значениями
Stunner // 🎄
Просто как по мне это не очень красиво выглядит
Stunner // 🎄
Границы это padding, как я понимаю?
Stunner // 🎄
у меня студия ислам приняла, перезапустить?
Anonymous
всем привет. Сделал небольшую приложуху для скачивания файлов из сети. Скачиваю с помощью download Mаnager. При скачивании изобажения, всё ок, качает, показывает. Вопрос в другом, как скачать видео или музыку? Видосы, допустим с ютуба, тоже качает, но сохраняет их в каком то не понятном формате. Подскажите, в какую сторону копнуть?
Данил
Никто не посоветует, почему он подчеркивает?
Данил
Сергѣй
А такой вопрос, что может заменить в android GetPreferences PRIVATE_MODE - firebase database это по силам, знает кто ?
Ivan
По силам(даже очень), но суть там уже будет другая...
Aleksey
заменить-то хотья на fire storage можно, куда файликами класть нужное
Сергѣй
а с какой целью-то заменять?
Такая задача, надо именно чтобы дело ло тоже, но только не это
Сергѣй
Aleksey
Такая задача, надо именно чтобы дело ло тоже, но только не это
тогда используй то же самое, но немного другое 🤷
Сергѣй
Я и спросил про это - оно такое же или совсем иное =))
Stunner // 🎄
https://developer.android.com/reference/android/text/InputType.html
Aleksey
Я и спросил про это - оно такое же или совсем иное =))
нет, ты спросил, может ли Firebase заменить SP и ответ - да, может, но оно того не стоит
Данил
https://developer.android.com/reference/android/text/InputType.html
Эти edit-text заблокированы для изменения, поэтому не вижу использовать inoutType, который нужен только для того чтобы открывалась клавиатура
Aleksey
А почему не стоит ?
ну а какой смысл заменять key-value на базу данных? это как молотком посуду мыть
Sergey
Друзья, такой вопрос простой. Если приложение скрыто (свернуто), а мы а это время запускаем что-то на главном потоке, оно отработает?
Sergey
угу
Спасибо)
Evgeny
Кто нибудь сталкивался с такой ошибкой: E/dex2oat: Failed to create oat file: /data/dalvik-cache/x86/data@app@-2@base.apk@classes.dex: Permission denied Приложение собирается, но при запуске крашится
Stunner // 🎄
Как можно сделать что-то подобное без лишних либ? В Magisk manager используется какой-то markdown, который наследуется от непонятного класса, короче хз я че там написано