
Stanislav
12.02.2017
23:36:24
Вангую
Спиздят каждую идею для iOS 11

Dmitriy
13.02.2017
02:14:43
ребят, пару вопросов по MVVM:
1. Кто должен создавать ModelView для контроллеров? и кто должен владеть ModelView? В самых простых примерах видел, что его создают в appDelegate, и в контроллере weak ссылка на dataModel(непонятно почему, ведь в modelView нет strong ссылок на viewController и закольцованности не будет) вы все так делаете?
2. Как осуществляется асинхронный возврат данных из modelView к viewController? просто через делегаты/блоки/нотификейшины?

Google

Булат
13.02.2017
02:24:04
view controller знает про view model
поэтому он и создает view model когда пользователь этого захочет
2 - да

Engylizium
13.02.2017
03:21:14
Кто нибудь видел как из SMS ки код считывать на Swift?

Булат
13.02.2017
03:22:47
в смысле?

Engylizium
13.02.2017
03:28:30
Я однажды видел в каком то приложении фичу, типа приходит смс с кодом потверждения на номер, а приложение его сразу читает и вбивает себе

Булат
13.02.2017
03:29:33
Ну это точно не через смс реализовано
То есть смска приходит как запасной вариант

Engylizium
13.02.2017
03:29:54
Даже так?

Булат
13.02.2017
03:30:00
а сам функционал автозаполнения
скорее всего реализуется через пуш уведомление
которое втихую приходит, и из него прила достает код

Engylizium
13.02.2017
03:31:28
Не совсем понятно как это

Google

Булат
13.02.2017
03:31:56
Ну в пуш уведомлении можно присылать приложению информацию

Engylizium
13.02.2017
03:32:09
Угу

Булат
13.02.2017
03:32:22
пользователь вводит номер телефона
он отправляется на сервер
вместе с девайс токеном
сервер отправляет смску-подтверждение
с кодом
и пуш уведомление на девайс токен
с тем же кодом

Engylizium
13.02.2017
03:33:24
Ааааа

Булат
13.02.2017
03:33:29
если пуш приходит успешно - прила его ловит и автоматом заполняет поле кода

Engylizium
13.02.2017
03:33:31
Понял, спасибо

Булат
13.02.2017
03:33:44
если нет, пользователь все еще может прочитать смс и ввести код ручками
ну это как бы не соточка инфа, это я так предполагаю, как это могло быть реализовано)

Engylizium
13.02.2017
03:34:23
Ну да, я понял

Булат
13.02.2017
03:34:31
но шариться в смсках в поисках кода приложению точно никто не даст))
с другой стороны, такая реализация полностью убивает смысл смс авторизации
потому что так можно ввести чужой номер и залогиниться пушем на свой девайс

Engylizium
13.02.2017
03:36:17
Пойду угуглюсь, может накопаю чего

Булат
13.02.2017
03:36:43
ты точно такое видел именно в iOS приложении?

Google

Engylizium
13.02.2017
03:38:39
Да
Читать смс нельзя
Там какаято OTP верификация вроде

Betrayer
13.02.2017
03:39:34
А как можно втихую прислать пуш?

Engylizium
13.02.2017
03:40:19
Он наверное имел ввиду бэком ожидание кода с серва

Betrayer
13.02.2017
03:40:56
Какой смысл в OTP верификации тогда?

Engylizium
13.02.2017
03:42:00
Я хз что такое ОТP, просто нагуглил такое вот

Александр
13.02.2017
03:42:56
я подозреваю что у них это с учетом того что сервак знает твой текущий номер телефона

Engylizium
13.02.2017
03:43:41
Я такое вроде в мессенджере каком то видел

Александр
13.02.2017
03:43:42
сразу же

Engylizium
13.02.2017
03:43:50
Регистрация по номеру

Dmitriy
13.02.2017
05:39:08

Engylizium
13.02.2017
05:41:10
Тайна покрытая мраком ну
Раз так, то мне проще будет ¯\_(ツ)_/¯

Maxx
13.02.2017
06:12:37

Dmitriy
13.02.2017
06:13:29
незнаю что такое дип линк)) но так можно идентифицировать строго девайс) пока не снесут оську :)

Maxx
13.02.2017
06:20:09

Dmitriy
13.02.2017
06:26:31
ааааа)) нене
кейчейн просто хранит инфу даже после удаления приложения. и если аппка уже была заинсталена, в кейчейне может висеть номер телефона, он нужен для сверки и авторизации в будущем через пуш) после первой установки)

Maxx
13.02.2017
06:28:32

Google

Dmitriy
13.02.2017
06:42:17
ага) но это сработает ток после первого логина удачного)
такое костыльное решение, если прям совсем невозможно переубедить заказчика, что это невозможно)

Maxx
13.02.2017
06:47:50

Dmitriy
13.02.2017
07:40:29
Кто в блоках хорошо разбирается. есть такой момент:
Есть FirstClass и SecondClass.
В FirstClass есть метод, параметр которого есть блок, который возвращает массив.
В SecondClass я вызываю этот метод:
[self.modelView dataSourceWithBlock:^(NSArray *dataSource) {
self.dataSource = dataSource;
}];
Вопрос: это будет зацикленный блок и нужно ли делать weakSelf для такой записи? FirstClass добавлен в SecondClass как strong параметр

Maksim
13.02.2017
07:42:05
есть либа
крутая
щас скину
https://github.com/jspahrsummers/libextobjc
решает твою проблему
Easier use of weak variables in blocks, using @weakify, @unsafeify, and @strongify from the EXTScope module.

q210
13.02.2017
07:48:51
цикл был бы, если б ты блок хранил в проперти у self, например, но такое XCode ловит без проблем

Dmitriy
13.02.2017
07:50:45
понял, спасибо за подсказку!

Dmitry
13.02.2017
07:52:12

Alfred
13.02.2017
08:32:05

Ilkhom
13.02.2017
08:34:17

Dmitriy
13.02.2017
08:34:19

Engylizium
13.02.2017
08:54:18
Народ, сталкнулся с проблемой, может я криво все делаю?

Maksim
13.02.2017
08:55:45
если ты даже проблему не описываешь, то наверно
:D

? Райзя ?
13.02.2017
08:55:52

Andrey
13.02.2017
08:55:52
Он в процессе

Google

Engylizium
13.02.2017
08:56:01
В общем есть пиктограмка которую я хочу поставить как RightBarButtonItem. Засовываю. Большая. Меняю размер через инсеты, кнопка сьезжает куда то за экран

Andrey
13.02.2017
08:56:22
Не надо так

? Райзя ?
13.02.2017
08:56:31

Engylizium
13.02.2017
08:56:40
Как надо?

Dmitriy
13.02.2017
08:57:38
можешь для картинки пустые поля в фотошопе присабачить)

Andrey
13.02.2017
08:57:39

Engylizium
13.02.2017
08:59:08

? Райзя ?
13.02.2017
08:59:37

Andrey
13.02.2017
09:00:04
UIButton *button1 = [[UIButton alloc] init];
button1.frame=CGRectMake(0,0,105,30);
[button1 setBackgroundImage:[UIImage imageNamed: @"image1.png"] forState:UIControlStateNormal];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button1];

Engylizium
13.02.2017
09:00:10
Мне дизайнер скинул во всех трех ассеты

Maxx
13.02.2017
09:00:38

Dmitriy
13.02.2017
09:01:31
хм)

Olexii
13.02.2017
09:01:34

Dmitriy
13.02.2017
09:01:43
я все это делал просто в фотошопе дорисовывая прозрачные поля...

Andrey
13.02.2017
09:01:54

Dmitriy
13.02.2017
09:02:03
???

Andrey
13.02.2017
09:02:24
А проблемы верстки ты решаешь хардкодом?

? Райзя ?
13.02.2017
09:02:48
Uibarbuttonitem(image: image.imageWithRenderingMode(.AlwaysOriginal), style: .Plain, target: self, #selector(hdhfjkfjfkf))

Dmitriy
13.02.2017
09:02:48
конечно, if else под все экраны ?