
Anton
02.12.2016
21:11:44
Сейчас ты после смены констрейнтов вызываешь апдейт, но легко сделать так, чтобы система сама это делала
Почему нет?
Immutable data structures в констреинтах
и пожалуйста

Google

Anton
02.12.2016
21:12:44
делай что хочешь в фоне
потом скорми новый набор движку

Pavel
02.12.2016
21:16:11
чтобы посчитать layout нужны не только констренты но и вся иерархия вьюшек в которых выставлены такие вещи как текст, картинки, паддинги итп. чтобы за кэшировать резултаты надо быть увереным что иерархия не изменится при следующем проходе, а она может

Anton
02.12.2016
21:16:25
Вот есть браузер. На вход подается грубо говоря XML, на выходе - картинка в окне.
Твой xib файл - тот же xml
пожалуйста, меняй иерархию, если у тебя весь стейт представлен в виде данных
потом отдашь движку новую иерархию целиком
он применит

Pavel
02.12.2016
21:18:17
не ну так можно конечно, если полность сделать новый tableview, жесткое api
но с текущим не выйдет
там правилам никто не следует
по-крайней мер нет гарантий, что следуют

Anton
02.12.2016
21:18:55
ну смотри - иерархия в виде данных у тебя уже есть

Google

Anton
02.12.2016
21:19:05
это твои UIView

Pavel
02.12.2016
21:19:32
как пользователь tableview я могу накодить вообще без данных
или пихать в ячейки рандом всякий

Anton
02.12.2016
21:20:11
Ну да
Это твой новый стейт
У тебя был старый стейт, стал новый
можно посчитать диф и отрендерить
диф можно стчитать в бекграунде
так же как и новые значения для геометрии view
Представь, что ты на каждом фрейме копируешь всю иерархию view
потом меняешь копию в своих контроллерах
потом из старой и новой можно дифы считать, кэшировать итд

Pavel
02.12.2016
21:30:21
что-то уже смешались дифы и кони. диф это набор операций чтобы превратить состояние_1 в состояние_2. дифы нет смысла кэшировать, они не используются дважды. диф это к примеру - 1. удалять row1 2. обновить секцию3 3. установить новый title

Anton
02.12.2016
21:30:48
Ты можешь закэшировать старое состояние
Дифы это просто чтобы не обновлять всю иерархию


Pavel
02.12.2016
21:41:45
ладно пример. вот инженер apple, а вот есть tableview, как ему в нем закэшировать layout ячеек, чтобы автоматом у всех пользователей заработало в ios11. всё что он может делать это вызывать cellForIndexPath в фоне для невидимых ячеек, а также heightForRow, willDisplay, сделать ячейке layout, и вот он ок, таки получил слепок вьюшек. теперь он может не вызывать cellForIndexPath а использовать из кэша. но это полная жопа, то что этот инженер сделал. во-первых в фоне никто не ожидал что вызовется cellForIndexPath ,. а даже если с божьей помощью приложение не упало и вернуло норм данные, то где гарантии что пока доскролишь до закэшированого данные не поменялись и ячейка должна быть совсем другая. нюансов тысячи, апи tableview абсолютно не готово справиться с такой задачей в одиночку
всё что я хочу сказать, что с текущим апи ничего не сделаешь и надо городить аля asyncdisplaykit если хочешь кэшировать и считать вещи в фоне
может быть apple что-то выкатит
но это будет даже не uikit


Anton
02.12.2016
21:56:54
погоди погоди

Google

Anton
02.12.2016
21:57:11
причем тут cellForIndexPath
и что ты хочешь закешировать
layout для несуществующих ячеек?
Это невозможно

Pavel
02.12.2016
22:08:08
Так а для видимых ячеек чего кэшировать, они уже видимые. Ну можно конечно и их кэшировать, потом пригодится, но в первый проход скроллом будет тормозить

Тимур
02.12.2016
22:09:21
А что вы хотите сделать то? Сейчас же забирает немного ячеек вперед и так.
На практике, правда, улучшений не заметил. Может если у кого лейаут такой, что в строке 100 ячеек, которые одновременная появляются что-то и улучшится.

Pavel
02.12.2016
22:15:30
Есть либки разные, типа asyncdisplaykit. Которые стараются по максимуму все кэшировать и вынести расчёты в фон. Лэйауты бывает сложные, как у Facebook фид к примеру и в главном треде не хватает мощи их рисовать в 60 фпс.
Asyncdisplaykit ещё и рендерит в фоне
Сомнительное удовольствие, но они могут себе позволить
Хватает триков и без фоновых подсчётов
В симуляторе есть галочка misaligned что то там

Pavel
02.12.2016
22:18:47
Можно включить и глянуть, будут подсвечены плохие вьюшки
Случается если фрейм у вьюшки не кратный пикселям
Ещё очень здорово помогает alamorefireimage
Там есть хорошая штука грузить картинку и ресайзнуть её
Если знаем размер imageview, то запрашиваем картинку именно такого размера, что сильно быстрее рисуется, чем если картинка не в размер, а больше
Там ещё можно сразу круглую запрашивать
Или с краями скруглёнными
Советую посмотреть

Google

Pavel
02.12.2016
22:29:16
Искать по всему что связано с ImageFilter

Тимур
02.12.2016
22:46:03
Ну это понятно, хотя как по мне, то больше всего педалит текст.

Pavel
02.12.2016
22:47:05
Ну вот его и можно в фоне посчитать
Я про размеры

Булат
02.12.2016
22:52:41
такой вопрос
С сервера приходит строка, и иногда в ней бывают всякие " вместо кавычек. В идеале их прила должна как-то обрабатывать или сервер не должен такое присылать?

Тимур
02.12.2016
22:56:51
Если он тебе присылает HTML, то это твоя проблема. Если просто текст, то они должны поправить.

Булат
02.12.2016
22:58:37
ну там JSON объект:
"message" : {
"id": 1,
"message_text": "-тут текст который иногда со всякими "-"
....
}

Тимур
02.12.2016
23:01:09
И что? Там может быть и <b>text</b>.

Admin
ERROR: S client not available

Тимур
02.12.2016
23:01:31
Нужно смотреть спеки или спрашивать у ребят с сервера.

Булат
02.12.2016
23:02:20
ну это же уже HTML, а у нас по ТЗ это просто как бы плейн текст
рич форматирования нет

Евгений
03.12.2016
00:24:25
Пацаны, нубский вопрос.
Кто может на пальцах объяснить в чем разница struct и class?
Я сути глубокой не понимаю
Из того, что я понял, структуры выглядят пизже чем классы. Но ведь для всего своё применение. Вот этого я осознать чот не могу. В практическом смысле
То есть где применять структуру, а где класс.

AZ
03.12.2016
03:16:52
привет
всем
я никогда не программировал под яблочные продукты.
Подскажите пож-та, об аккаунте разработчика эпл. Как происходит передача ios приложения к другому разработчику? переданному разрабу нужна аккаунт разработчика или под одно приложение есть один логин/ пароль для внесения обновления?
На сайте эпла трудно найти интересующую инфу ибо лид дизайн
ок, сначала создам аккаунт)

Google

AZ
03.12.2016
03:46:34
#whois откусанная часть куска яблока
если серьезно, больше знаний в сторону веба

Leila_rmz
03.12.2016
04:14:27
Leila_rmz R_Magomedova:
Добрый день. Кто нибудь не подскажите как убрать пароль с планшета, у которого ОС виндовс8. Пароль забыли. А на биос Настройках тоже пароль стоит , его не знаем.

Anton
03.12.2016
06:17:48
Используйте reactivex

Александр
03.12.2016
06:24:38
Pizdato driven development

Roman
03.12.2016
06:27:58

Mr.
03.12.2016
06:30:33
Ребятки)
Вк закрывает доступ к аудио через API)))
https://vk.com/dev/audio_api

Александр
03.12.2016
06:33:12
Наконец-то

Mr.
03.12.2016
06:33:46
Сами бы еще закрылись
Вообще заебок бы было
Мы понимаем, что в результате Ваше приложение может полностью перестать работать или лишиться значительной части своих возможностей. И в абсолютном большинстве случаев мы не сможем предложить альтернативу.
Лол
Орнул

Александр
03.12.2016
06:35:40
Двачую, Паша дал им телеграф, нет, не хочу телеграф, хочу в веселого фермера играть

Mr.
03.12.2016
06:37:13
Они если подписку введут
Чтоб за бабосик музыку слушать