В первую очередь объективно посмотреть на задачу.
Контекст рассмотрения конкретного случая безопасности мне не понятен, защитить приложение от прослушки трафика самим юзером? Или же защитить юзера от возможных проводимых MiTM атак? Или же сделать ставку на фичу, и "сэкономить" на защите своей инфраструктуры/бэкэнда..
Используя популярные библиотеки, можно облегчить жизнь разработчику, и пропорционально облегчить задачу злоумышленнику. Можно использовать кастомные методы заворачивания исходников, усложнив задачу реверсинга, но не исключив успешность её.
Собственно если категорически важно сохранить формат общения с сервером, можно использовать туннелирования. Телеграм в пример. Но сорцы все равно выдадут точки выхода. Ну и на решение задачи уйдет больше сил, времени и знаний, но в целом нет не решаемых задач. Вопрос только времени.. Не сегодня так завтра будет пропущена обнова, опубликована 0day, и полетит все к чертям.
Можно глубже капнуть, можно потратить много финансов и времени на разработку как минимум не стандартной системы (на опыте встречал, время убито было порядочно, но сложность добавляя только интерес). Абсолютно идеально защищенной архитектуры к сожалению не существует.
Собственно решение - на первой строчке.