Фото близкого на домашнем экране и как оно туда попадает
Человек, на которого вы подписаны, снял сегодняшний кадр. В следующий раз, когда вы посмотрите на телефон, его лицо будет в виджете. Ни уведомления, ни звука, открывать ничего не нужно — в этом весь замысел, и это же та часть, которая заслуживает честного объяснения, а не утверждения.
Что происходит на самом деле
Когда снимок дообработан на сервере, вычисляется, кому он может быть виден, — и это не отдельное правило, придуманное для виджета. Это то же правило, по которому работает лента, прочитанное наоборот: вы видите чужой кадр, если подписаны на человека, если у него публичный профиль и если кадр лежит в том альбоме, который он сам выставил.
Каждому из этих людей уходит пуш, который не несёт ничего. Ни фотографии, ни имени, ни даже того, какой это был кадр, — только сигнал, что что-то изменилось. Телефон тихо просыпается, спрашивает у сервера самый свежий кадр, который ему можно, скачивает одну картинку и кладёт её туда, откуда читает виджет.
Почему пуш пустой
Это наименее очевидное решение здесь и то, из-за которого фича вообще жизнеспособна.
Тихий пуш ничем не гарантирован. iOS их придушивает, особенно у приложений, которые редко открывают, и волен их выбрасывать и склеивать по своему усмотрению. Если бы пуш нёс фотографию, каждый выброшенный пуш означал бы кадр, которого вы не увидели: информация умирала бы вместе с сообщением.
Пустой пуш испортить нельзя. Какой бы из них ни дошёл, он спрашивает самое свежее состояние мира, поэтому три склеенных и один доставленный дают ровно тот же результат, что и четыре доставленных. Склейка перестаёт быть потерей.
Чего мы не обещаем
Сроков. Большинство кадров приходит за минуту-две. Некоторые опаздывают: телефон лежал в кармане в лифте, или iOS решила, что приложение не заслужило пробуждения. Открытие приложения чинит это сразу, и следующий кадр друга тоже.
Всякий, кто обещает мгновенную доставку в виджет на домашнем экране, либо ошибается, либо шлёт вам уведомление и не говорит об этом.
Что там, когда никто ничего не снял
Остаётся последний пришедший кадр, и на нём стоит его дата — «вчера», «три дня назад». Виджет не пустеет и не притворяется, что кадр сегодняшний.
Если вы пока ни на кого не подписаны, виджет показывает ваш собственный последний кадр. Пустая коробка на домашнем экране — не фича, а новому аккаунту показывать некого.
Чего он не делает
Не уведомляет. Не издаёт звуков. Не показывает посторонних, рекомендованные аккаунты и вообще ничего ранжированного — только самый свежий кадр того, на кого вы подписались сами. И тап открывает этого человека, а не рекламу приложения.
Он также не просит разрешений, которых вы не давали: чтобы вас увидел кто угодно, с вашей стороны нужны три отдельных действия, а выход из аккаунта очищает виджет на этом телефоне сразу, а не тогда, когда сеть позволит.
Поставьте лицо на домашний экран
Виджет живёт в iOS-приложении. Сам Selfeed уже открыт в браузере.
Что ещё стоит объяснить — здесь.
Открыть приложение