WeVPN (2020)
Весной 2020 года я начал работать на клиентом для VPN-сервиса WeVPN. На тот момент у них была первая версия всего с одним стандартным для iOS протоколом.
Моей задачей было добавить новые протоколы и новый функционал, что оказалось не таким уж лёгким делом для iOS. Удалось реализовать:
- поддержка Wireguard;
- поддержка OpenVPN (TCP и UDP) на разных портах и разным MTU;
- поддержка Shadowsocks;
- поддержка DNSCrypt;
- логика для on demand rules;
- SSL pinning и Certificate Transparency;
- много работы с Network Extension Framework;
- логика для автоматического выбора протокола если какой-то из протоколов не сработал;
- установка в iOS профилей для DNS over TLS и DNS over HTTPS;
- кастомные команды для Siri (подключить к такому-то серверу);
- подсчёт трафика на стороне Network Extension;
- виджет для iOS/iPadOS;
- Unit-тесты;
- UI-тесты, которые проверяют, что регистрация, авторизация, онбординг и внутренние покупки работают.
В 2022 году сервис закрылся.
Swift, iOS, iPadOS, UIKit.
keyboard_return back