Разработка мобильного приложения с локальным бэкендом: простое решение с TunnelHunt
Каждый мобильный разработчик сталкивался с этой ситуацией: вы пишете код для iOS или Android приложения, которое должно общаться с вашим бэкендом. Бэкенд отлично работает на http://localhost:8080
, но как вашему смартфону, подключенному по Wi-Fi, получить к нему доступ?
Ваш телефон и компьютер находятся в одной локальной сети, но localhost
для телефона — это сам телефон, а не ваш компьютер. Можно, конечно, искать локальный IP-адрес вашего компьютера и прописывать его в коде, но это неудобно, особенно если IP-адрес меняется.
Есть способ гораздо проще.
Создаем публичную точку входа для вашего API
С помощью TunnelHunt вы можете создать публичный, доступный из любой точки мира URL, который будет безопасно перенаправлять все запросы на ваш локальный сервер.
Шаг 1: Убедитесь, что ваш API запущен
Предположим, ваш бэкенд запущен и отвечает по адресу http://localhost:8080
.
Шаг 2: Создайте туннель
Откройте терминал на компьютере, где работает бэкенд, и выполните:
ssh -R 80:localhost:8080 -p 2222 nokey@tunnelhunt.ru
Сервис выдаст вам уникальный адрес, например: https://clever-fox-456.tunnelhunt.ru
.
Шаг 3: Обновите конфигурацию в мобильном приложении
Теперь самое главное. В коде вашего мобильного приложения (будь то Swift, Kotlin, React Native или Flutter) найдите место, где определяется базовый URL вашего API.
Замените http://localhost:8080
на ваш новый публичный адрес от TunnelHunt.
Пример для React Native с использованием Axios:
// было:
const apiClient = axios.create({
baseURL: 'http://localhost:8080/api',
});
// стало:
const apiClient = axios.create({
baseURL: 'https://clever-fox-456.tunnelhunt.ru/api',
});
Шаг 4: Пересоберите приложение и тестируйте!
Пересоберите ваше приложение и запустите его на реальном устройстве. Теперь все сетевые запросы из приложения будут идти на сервер TunnelHunt, а оттуда — прямиком на ваш localhost:8080
.
Преимущества такого подхода:
- Простота: Не нужно возиться с IP-адресами, настройками сети и прокси.
- Стабильность: URL не изменится, даже если вы подключитесь к другой Wi-Fi сети.
- Реалистичные условия: Вы тестируете приложение в условиях, приближенных к реальным, когда оно обращается к серверу через интернет.
- Отладка: Вы можете ставить точки останова (breakpoints) в коде вашего бэкенда и ловить запросы, приходящие с реального мобильного устройства.
TunnelHunt становится незаменимым помощником в цикле разработки мобильных приложений, делая взаимодействие с локальным бэкендом тривиальной задачей.