• iOS. Работа с сетью, когда приложение не запущено
    0
    Конечно, я про это и говорю. Работа background сессии происходит вне приложения, внутри системы. Туда нельзя запихнуть никакой кастомный код, включая расширения URLProtocol.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Нет, в данном случае проверку должен сделать сервер, а пуш должен присылаться с информацией «проверка прошла» или нет. Это то решение, которое корректно использует возможности iOS.

    В любом случае, по пушу небольшую работу в фоне сделать получится, но это будет самый обычный, foreground URLSession. То есть организовать «пуши чтобы проверялось» — вполне возможно, но не рекомендуется, так как если злоупотреблять фичей, можно получить от системы по лбу.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Это совсем другое. Для решения такой задачи я бы сделал сервер, который это делает так, как требуется, и отправляет пуши в приложение, когда что-то произошло.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Статья про то, как скачать/закачать данные на сервер в фоне (без использования приложения). Не про то, как держать в фоне соединение и реагировать на него. Это совсем другая тема. Насколько мне известно, это надёжно сделать невозможно.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    «for your app’s private use». Это не для background-сессии, увы.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Супер дополнение, спасибо. Мне это не требовалось, но вот я нашёл исследование по этому поводу: github.com/Alamofire/Alamofire/issues/1122#issuecomment-246562127

    What I found in the sample app is that with background sessions, server trust challenges are automatically evaluated. You'll never get called when performing the TLS handshake. iOS is just going to evaluate the cert and establish the connection if the cert chain is valid and fail if it's not. I tested both cases with httpbin.org/get and expired.badssl.com. The challenge delegate API just isn't called in either case running on a device or in the simulator. I am assuming this is for performance reasons. If you end up needing to do something like cert pinning or allowing a connection if the cert is invalid (self-signed certs), then you just can't use a background session.

    What was interesting is that the delegate is called on a basic-auth challenge. Now from what I can gather from the Handling Authentication docs is that basic-auth challenges are non-session-level challenges. I can only assume that these types of challenges are not automatically evaluated on background sessions, where session-level challenges are.

    Long story short, there's nothing we can do here. Server trust challenges are automatically handled by iOS with background session configurations. As such, I'm going to go ahead and close this issue out since there's nothing we can actually do about it in Alamofire.

    Thanks everyone for being patient here until we had time to get to the bottom of the behavior.

    Сам, повторюсь, не пробовал, и у Apple не увидел про это никакой информации.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Всё так. Причём это умеет делать и обычная, foreground-сессия, я упоминал вскользь об этой функции, когда говорил про http-кеширование. А upload-кеширования в стандартах не существует. Что не мешает некоторым компаниям придумывать свою схему аплоада, при которой возможно его частичное восстановление.
  • iOS. Работа с сетью, когда приложение не запущено
    0
    Я работал только с этими протоколами. Есть какие-то конкретные примеры, про которые хочется узнать? Ситуация с ними очень разная.
  • Enums + Associated Values = Swift
    0
    Цель статьи — не показать способы решения задачи, а продемонстрировать одну из возможностей языка.

    Про Стратегию. Чуть ниже обсуждают похожее решение. Конечно же, можно использовать и её, ни в коем случае не говорю, что нужно только так и описывать платёжные модели. Это просто пример. :-)
  • Enums + Associated Values = Swift
    +2
    Почему перечисления предполагается совмещать именно с int'ом? Какие недостатки у Свифтового подхода?
  • Enums + Associated Values = Swift
    0
    Какие именно дела имеются в виду?
  • Enums + Associated Values = Swift
    0
    Упс :) Спасибо!
  • Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
    +1
    Я обновил код до 0.9.12, он стал сильно стабильнее и умнее. Если будете пользоваться — лучше использовать именно эту версию.
  • Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
    0
    Добавил немного методов, чтобы проще было подключить методы редактирования UITableViewDataSource. (код в обновлении статьи про 0.9.12)
  • Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
    0
    Никаких обид, отличное предложение.

    Это можно сделать, вообще не вопрос. Не уверен только, что правильно. И вот почему.

    Дело в том, что NSFetchedResultsController был сделан для UITableView, и так себе, например, подходит для UICollectionView с его performBatchUpdates.

    Также разнится и источник изменений. В NSFetchedResultsController — внешняя сущность, CoreData. А у меня изменения должны вливаться в модель бизнес-логикой приложения. В этой ситуации проще применить сразу все изменения, нежели выдавать их по-одному.

    Другое дело, что, возможно, имеет смысл дать возможность подключить стандартные операции, которые приходят из UI (редактирование таблицы из UI, перемещение ячеек) — это интересная мысль, я подумаю, что тут можно сделать.
  • Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
    0
    Глянул. Ничего особо не должно препятствовать использованию ATableAnimationCalculator даже вместо NSFetchedResultsController. Конечно, мы потеряем события об изменении запросов, но если нужно обновлять по требованию пользователя, то будет даже немного проще.

    Ну, или подключиться к событиям, после чего заполнить результат вручную (я имею в виду ATableDiff, там достаточно простые поля), и в controllerDidChangeContent — сказать diff.applyTo(collectionView:collectionView).

    Впрочем, не уверен, что только ради второй части нужно использовать ATableAnimationCalculator :)
  • Боль и анимация таблиц для iOS. Фреймворк Awesome Table Animation Calculator
    0
    Нет, не смотрел. Не могу сказать, взлетит оно или нет, CoreData может внезапно поставить палки в колеса, но посмотрю.
  • KTV. Грабли на пути к маршалингу
    +1
    Почему фетиш? И почему всё? :-)

    Свифт, судя по-всему, это тот язык, на котором будут писаться все приложения для iOS в ближайшем будущем. Стоит ли при этом его изучать? По-моему, стоит.

    Для изучения языка мало просто прочитать книжки. Нужно попробовать решать на нем разные задачи. И чем более глубокие, непростые задачи приходится изучать, тем лучше узнаёшь язык.

    Поэтому вы, конечно же, правы. Но я отметил в статье, отмечу и тут. Это, главным образом, мой собственный образовательный эксперимент.
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Занятное решение. В чём-то мне оно очень нравится. Спасибо!
  • KTV. Новый JSON
    0
    Ммм. Занятный вариант, не думал пока про такое. Спасибо за идею!
  • Ångström Style System? Использование стилей. S2
    0
    В ваших комментариях нет критики :-)
  • Ångström Style System? Использование стилей. S2
    0
    Извините, я никак понять не могу. Вы в принципе не признаёте иных решений, кроме тех, которые знаете, или просто желаете набросить?

    Если вам требуется CSS, используйте конечно. Я ведь не заставляю использовать свою систему. Для этого и существуют разные варианты, чтобы иметь возможность выбрать нужный в конкретном случае. Впрочем, можно всегда пользоваться только микроскопом, это тоже валидное решение.
  • Ångström Style System? Использование стилей. S2
    0
    Короткий ответ — потому что он сделан для другого. Каскадность совершенно ни к чему, нет, как таковой, иерархии блоков, нет DOM'а, чтобы стили привязывать к элементам, лейаут делается совершенно по иным правилам. Это только те причины, которые на поверхности, реализовывать CSS для нативного использования тоже не очень приятно.
  • Ангстрем. Кучка сложностей в простой обёртке
    +1
    Разумный кейс. Подумаю, чем можно помочь.
  • Ångström Style System? Использование стилей. S2
    0
    Никаких сложностей, просто, по моему мнению, CSS не подходит для нативных UI мобильных устройств, чем я занимаюсь.
  • Ангстрем. Кучка сложностей в простой обёртке
    0
    поменять язык интерфейса, не меняя язык системы.

    Это из-за клавиатуры? Обычно, если интерфейс на английском, то и единицы удобно по-английски вводить, специально форсируется ASCII-клавиатура, чтобы не требовалось переключать.
  • Ангстрем. Кучка сложностей в простой обёртке
    +3
    Спасибо, в настоящий момент нас всё устраивает.
  • Ångström Style System? Использование стилей. S2
    0
    Про CSS я думал. Получилось, что они очень плохо ложатся на UI мобильных приложений. Впрочем, попытки применения CSS к ним уже были (например, https://nativecss.com).
  • Ангстрем. Кучка сложностей в простой обёртке
    0
    Можно поглядеть видео тут: http://ilyabirman.ru/projects/angstrom/
  • KTV. Новый JSON
    0
    Первая часть тут: https://habrahabr.ru/post/278787/

    Сейчас немного обкатаю код на Swift и через какое-то время выложу вторую часть, вместе со ссылкой на библиотеки и исходный код.
  • KTV. Новый JSON
    0
    Вы правы.

    Но, кроме указанных вами кейсов, существуют и другие, в которых решения, которые я применяю — более выгодны, чем применяемые вами. Для этого и существует множество форматов, которые используются в разных ситуациях.

    Но вы правы, всё перечисленное мной можно реализовать в JSON. Впрочем, и в простом тексте можно, и в XML, и в ещё многих-многих вариантах.
  • Ангстрем. Кучка сложностей в простой обёртке
    +1
    Информацию про Илью, чем он занимается и в каких проектах участвовал, можно посмотреть здесь: http://ilyabirman.ru, курсы, которые он ведёт, здесь: http://artgorbunov.ru/educenter/

    Расскажите, а что именно вы называете андроидовской стилистикой?
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Вы правы, пожалуй, стоило их включить.

    Впрочем, там многие форматы обсуждались. Чтобы разобраться, какие популярны, какие нет — я и сделал это голосование.
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Интересное решение. А какие задачи к нему привели?
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Мне кажется, что это, все-таки, про другое. Схемы нужны, но сейчас они обычно описываются в самих модельных объектах. Отдельные схемы нужны, когда формат требует жесткой валидации или используется в большом количестве компонент. Это — достаточно редкое требование в том мире, где, в основном, живёт JSON и компания.
  • iTrace. Как пишутся буквы?
    0
    Очень интересно. Пойду обсужу это всё с Михаилом, который, собственно, придумал и развивает iTrace (я технической частью заведую).
  • KTV. Новый JSON
    0
    Ага, спасибо, погляжу.
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Ага, спасибо, пойду смотреть.
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Я не стал перечислять все варианты, их много.

    Спасибо, что отметили!
  • Нужна ли замена JSON? По следам статьи про KTV
    0
    Понял, спасибо! Мне как раз и было интересно, где тратится время, это важный опыт.