Как связать сайт с приложением?
Нет, сайт (именно интерфейс, клиентская часть) и мобильное приложение - это оба клиенты, а бэкенд с бд - это сервер, который должен предоставлять апи обоим типам клиентов.
В Xamarin есть  готовый тип проекта. Создается приложение и API заглушка. 
Все что вам нужно это прикрутить этот API к сайту. 

https://docs.microsoft.com/ru-ru/xamarin/xamarin-f...
А вот и пример приложения
https://docs.microsoft.com/ru-ru/samples/xamarin/x...

А вот пример сервиса доступа к данным онлайн / офлайн. Локальная копия хранится в sqlite

public async Task<PageItem> GetContent(string cat, bool offline)
        {
            try
            {
                if (offline)
                {
                    var catId = int.Parse(cat);
                    var ctx = DataContext.Instance;
                    var data = (await ctx.Content.GetItems())
                        .First(x => x.CatId == catId);

                    var result = _mapper.Map<PageItem>(data);
                    result.Tab1 = ReplaceImages(result.Tab1);
                    result.Tab2 = ReplaceImages(result.Tab2);
                    result.Tab3 = ReplaceImages(result.Tab3);
                    result.FavUrl = $"{cat}";
                    return result;
                }
                else
                {
                    //return $"{BaseUrl}content.php?cat={cat}&tab={tab}";
                    var da = new LoadDataAdapter();
                    var json = await da.GetJson(Settings.GetContent(cat));
                    var data = JsonConvert.DeserializeObject<PageItem>(json, new JsonBooleanConverter());
                    data.FavUrl = cat;
                    return data;
                }
            }
            catch (Exception ex)
            {
                throw new ArgumentNullException("Ошибка загрузки.", ex);
            }
        }