︹︺ ВАДИМ ︺︹
Триал
Ну... со 100% бесплатным функционалом... так?
︹︺ ВАДИМ ︺︹
Какой у тебя сервис, что в нем можно?
Один из, CRM для малого бизнеса..
Деда
Один из, CRM для малого бизнеса..
Один проект в ней с полным функционалом, хочешь второй, перейди на платный план
Деда
Есть ещё место для файлов, дай гигабайт, выше - платный план
Dmitry
что-то я упустил момент когда в нашей стране малый бизнес появился
︹︺ ВАДИМ ︺︹
Так идея в том что, за пару месяцев данные какие то внесут, поработают...
︹︺ ВАДИМ ︺︹
И честно получается...
Александр
А если первопроходцам скидку большую давать? Но с тем самым красным текстом о том, что халява не вечна
︹︺ ВАДИМ ︺︹
А с ширпотребом (игры, свистелки всякие, перделки) как эффективнее? Фримиум, реклама ? Реклама встроенная вообще работает?
Александр
Тогда в головах отложится, что не буду платить - данные, что так долго вбивал, останутся недоступны
︹︺ ВАДИМ ︺︹
Dmitry
Подробнее можно...
Посмотрел ролик получил день работы бесплатно.
Vladimir
Подробнее можно...
Ну в играх, когда за просмотр получаешь внутриигровую плюшку
Vladimir
Или так, да
Dmitry
пролонгация триала действительно хороший мотиватор для просмотра рекламы.
︹︺ ВАДИМ ︺︹
Деда
😂
Dmitry
короче Apple вообще ебанулся, он и в категориях и в All-time все нахер поменял. Жесть.
Dmitry
Если это умышленно, то рейтинги сейчас все по нулям. Кто первый вольет деньги в рекламу, тот и в топе будет. Если это сбой, то наверно вернут.
Деда
Ты в курсе что мы с тобой братки? Так окрестили вчера
Donna
Один из, CRM для малого бизнеса..
Для бизнес решений надо продавать единый доступ ко всем платформам. Можно говорить: платите за десктоп, мобильный бесплатно, но главное чтобы доступ был по одному ключу. Обязательно триальный период, для crm месяца два-три. Бесплатно бизнес решение лучше вообще не давать работать: задолбаешься с беспланинками. Количество установок имеет смысл отслеживать только если это важно для бизнеса - то есть если например с мобильными ходят кладовщики то количество мобильных имеет смысл регулировать. Если главное - доступ к серверу, то проще разные тарифы по другим принципам считать.
Donna
Подписка для бизнеса вещь крайне тонкая - люди могут побояться переводить чувствительные данные в систему, которая зависит от ежемесячной оплаты: там лучше блоками например на год продавать.
Donna
Ощущение надёжности выше, если ты не Майкрософт и не Адоб ;)))
Деда
🤷‍♂️
bosozoku
Anonymous
Я немного, но там сложна
bosozoku
о, любитель обжс)
Sergey
Sergey
Добрый день. Как в willFinishLaunchingWithOptions в AppDelegate открыть нужный мне VC не прибегая к смене rootVC?
Sergey
подумываю взять
скидка закончилась(((
Serhii
Добрый день. Как в willFinishLaunchingWithOptions в AppDelegate открыть нужный мне VC не прибегая к смене rootVC?
Какой информативный вопрос) Ну засеть своему навигейшену стэк контроллеров
Sergey
Нужно делать короче через Nav Controller?
Serhii
про информативный сарказм?
ну серьезно, ты же не описал свой кейс
Sergey
ну серьезно, ты же не описал свой кейс
Мне нужно при открытии приложения в определенные случаи, например когда у меня есть access_token открывать сразу экран работы, а не экран логина
Serhii
ну а чем плоха смена рута?
Sergey
она ломает мне переход unwindSegue
Sergey
на экран Логина
Serhii
то есть у тебя логин скрин всегда висит в стэке?
Sergey
Мне нужно к нему возвращаться, например когда пользовательно хочет разлогиниться
Sergey
кидает на экран логина
Tarik
кидает на экран логина
А в чем проблема вызвать при разголине?
Sergey
Вызвать?
Tarik
Я обычно вообще в отдельный ксиб их выношу
Александр
А в чем проблема вызвать при разголине?
Unwind segue работает только при наличии dest controller в стеке
Tarik
Ну да self.present(Vc, animated:book)
Александр
А выход вижу в собственной системе роутинга
Александр
С segue кейс очень костыльно делать. Тут либо из экрана логина сразу делать переход после проверки (что не оч выглядит при дефолтной анимации), либо вкорячивать костыли с ручным роутингом. Но лучше тогда весь роутинг тогда вручную делать
Serhii
кидает на экран логина
ну точно так же изменишь рут, например
Sergey
Спасибо
Деда
Что мешает рут оставить рутом а поверх него показывать экран с логином
Деда
rootViewController, в нем модально покажи экран с логином, когда пользователь сделает все что нужно, закрой его
Bagdat
Добрый вечер ребята! У меня вопрос, можно костомизирвать Incoming call screen???
Bagdat
Никак
сам IOS не разрешает да?
Sergey
А, кажется вроде понял
Dry
доброго вечера. могу сумбурно сформулировать, но постараюсь. есть класс, который вызывает некоторый метод с комплишеном из некой структуры. в комплишене захватывается self. должен ли я использовать weak/unowned?
Serhii
rootViewController, в нем модально покажи экран с логином, когда пользователь сделает все что нужно, закрой его
Тут тоже есть свои нюансы. Если в руте лежит какая логика, хэндлит нотификейшены, отображение загружаемой на логин скрине инфы. Все зависит от извращения разраба)
Dry
Ок. я бы еще просто понять хотел )
Nikita
Ок. я бы еще просто понять хотел )
Проблема может возникнуть, если комплишн представляет из себя escaping closure и, таким образом, будет держать ссылку на твой self в течение фиг знает какого периода времени, порождая retain cycle. Так что да, если не уверен, используй weak/unowned
Dry
так и есть. Ок, спасибо. а если вместо класса была бы структура? Тогда не актуальна проблема?
Денис
objC. Есть некий протокол и нужно объявить второй точно такой же, но с измененным типом одного из параметров функции. @protocol MyProtocol … -(void) foo: (id<OtherProtocol>) obj; @end Нужнен второй протокол с уточненным типом параметра: @protocol MyProtocolSpecified … -(void) foo: (id<OtherProtocol, SecondOtherProtocol>) obj; @end Как это реализовать? Как я понимаю, наследование и переопределение функции с изменением типа параметра это есть плохой путь. —————— Нашел вот что: In general, Objective-C doesn't support contra- or co- variance (changing type of return value or arguments for the same method signature). In practice, it works as long as the arguments are of the same general type/size, but you'll run into problems (like the need to cast often). It is best to avoid doing this. Т.е остается копипаст и дублирование кода?
Serhii
Ок. я бы еще просто понять хотел )
Так оф дока всегда рада помочь тебе) Класс А (объект класса) держит структуру Б. Пока живет А, будет жить и Б (если только принудительно не занилить). У Б есть замыкание, в котором происходит захват Класса А. При захвате класса, количество ссылок на него увеличивается на 1. Получается структура Б не умрет, пока живет класс А. Класс А не умрет пока живет структура Б
Serhii
так и есть. Ок, спасибо. а если вместо класса была бы структура? Тогда не актуальна проблема?
структуры при присвоении копируются, соответственно, да не актуально. Но вот проблемы возникают, когда ты в структуре держишь объекты класса, вот тут уже можно допустить утечки
Serhii
Ну тут все стандартно
При разлогине нужно почистить все стейты, чтобы при повторном логине не вылезло какашек. В случае деинита всего стека - все гораздо проще.
Serhii
Не, конечно если рут это просто навигейшен то все ок, а если таббар, то появляется доп работа, если заранее не заложился на это