Началось все с того, что в 2022 году многим жителям моей страны пришлось задуматься о покупке VPN сервиса, чтобы оставаться в месте с цивилизованным миром. В связи с чем я познакомился с севисом Outline. Outline — очень простое приложение с функционалом: добавить сервер и вкл/выкл. Казалось бы что может быть проще и удобнее. Но немного попользовавшись приложением я понял, что не так все однозначно...
Запрос на функционал
Спустя некоторое время пользования приложением, мне надоело постоянно заходить в него ради нажатия одной кнопки. Вот был бы виджет и никаких проблем бы не было. И я решил проверить есть ли какие-то лайхаки, чтобы избежать входа в приложения, но все они оказались либо сложными либо небезопасными.
В недоумениях от отсутствия решения очевидной проблемы, я решил проверить много ли таких как я, кому нужен такой виджет. Нашел на реддите пост моего хоуми по несчастью и таких же людей в комментах. Там люди хотят добавить вообще одну кнопку в shortcuts (iOS) и в quick settings panel (Android). Полностью согласен с ними, но виджет это более универсальное решения с большими возможностями.
Ну и собственно поняв что запрос есть, я решил разработать данный виджет и отравить его ребятам из Jigsaw (создатели Outline), в надежде (хоть и сомнительной), что они займутся этим вопросом.
Процесс
Я никогда не разрабатывал виджеты и поэтому мне было необходимо изучить различные требования и best practice для их разработки как для iOS, так и для Android.
Ниже представлены основные интерфейсные требования для iOS:
Может кому пригодиться ( ͡ᵔ ͜ʖ ͡ᵔ)
При таком варианте виджета нужно сохранять margins в 16 points от края
А при таком варианте нужно сохранять margins в 12 points
Необходимо сохранить пропорцию радиусов внешней и внутренней рамки
Логотип всегда должен располагаться в правом верхнем углу и быть размером не больше контейнера 16х16. (Логотип может вообще отсутствовать, главное не лепить его куда попало)
Результат
Соблюдая все правила, я разработал виджет в трех размерах. Виджет очень простой. По сути вкл/выкл – это весь функционал. Я поместил всю предоставляемую информацию из приложения и перенес в виджет, плюс еще добавил таймер (количество времени использования сервера), посчитал что это может быть полезно.
Для Android можно было просто оставить виджет от iOS, т.к. он в целом соответствует гайдлайнам, которых особо то и нет. Но я решил немного изменить: перенес лого вниз и на маленькой версии виджета переместил кнопку в правый нижний угол, т.к. большинство людей держат смартфон правой рукой и так будет удобнее нажимать правым большим пальцем (сорри левши:). В iOS так сделать не получится из-за жестких правил консистентности.
Это был интересный опыт. Жду оффера от Jigsaw ( ͡ᵔ ͜ʖ ͡ᵔ)