Как-то расплывчато.
Что бы делал я.
Задача максимально сохранить код в том виде в каком он написан под Web.
1) Если нужно будет переносить UI, то эту часть придется переписывать.
2) Геолокация. Представим что обращение к ней сильно различается по синтаксису и данные возвращаются в ином виде.
Тогда подключаем библиотеку в отдельный файл и пишем класс обёртку, которая сделает нужные запросы и вернёт ответ в нужном виде для кода с веб.
Гипотетический пример.
На Web синтаксис:
GEO.getLocation(function(result){
});
А на React Native:
let geo = await System.getGeo();
let location = await geo.getLocation();
Как можно адаптировать:
class Geo {
static async getLocation(callback) {
try {
let geo = await System.getGeo();
callback(await geo.getLocation());
} catch(e) {}
geo = null;
}
}
Этим примером я хотел показать, что разность реализации можно скрыть классом обёрткой.