Есть веб-сайт с БД на MySQL как сделать для него оффлайн андроид-приложение?
Здравствуйте!
Есть сайт-каталог на mysql-Базе, хочу сделать оффлайн андроид-приложение.
Чтобы человек ставил приложение и потом оффлайн смотрел каталог.
А например раздел -новости- через приложение он бы уже подгружал с инета онлайн...
И например... раз в неделю... в приложении бы появлялась кнопка...
"Обновить базу данных"... и при нажатии обновлялась база оффлайн-приложения...
скажите как это можно сделать? желательно ссылки на методы) т.к.
я не очень продвинутый профи, а еще учусь)
Может уже готовые есть методы для этого?
Всем спасибо!
Экспортируете базу в sqlite. Пишите приложение которое будет делать выборку и отображать.
( developer.android.com/training/basics/data-storage... )
Запоминаете время последнего обновления. Если прошла неделя то предлагаете обновить с инета. При этом правильным будет не всю базу по новой лить, а только изменения (для этого у себя на сервере ведете контроль версий базы и отдаете тока diff)
Вместо готовых методов поищите опенсурс приложения с подобным функционалам на github`е
Андрей Субботин: Ох. Начните либо с поиска в гугле видимо (если ссылка на документацию по андроид оказалась тяжелой), либо если у вас нет навыков программирования под android то с каких-нить азов.
Мне подсказали, что на мобилке используется SQLite база... в связи с этим, мне нужно онлайн конвертить MYSQL в SQLite и передавать пользователю? я верно понимаю или нет?
А базу mysql кто пополняет и как? и как часто?
Конвертировать нужно первый раз, потом как я писал желательно хранить и передавать только историю изменений. Тут все от самой архитектуры базы зависит.
Андрей Субботин: ну вот. уже легче. Если экспортированные данные весят не много, то тогда можно обойтись без системы различий и просто раз в сутки делать экспорт под sqlite, архивировать. Ну и в android app при загрузке новых данных чистить базу и загружать как с нуля.
Игорь: Я понял вас. Но вот такой вопрос, вот вы пишите, что базу конвертнутую брать. А где ее хранить? На сервере? Т.е. в первый раз человек ставит приложение из ПлэйМАркета со старой базой(так получается) и потом приложение предлагает обновиться и тогда база грузится с сервера?
Андрей Субботин: совершенно верно. при первом запуске должно попросить обновиться. а затем вручную или предлагать по расписанию. так все и делают. хранят на сервере (к примеру на сайте архив хранят).
тока учитывайте что экспортировать вы должны только общедоступные (открытые, не секретные) для приложения данные. юзверя, логины, пароли, какието системные таблицы для сайта экспортировать не нужно.
Игорь: Понял вас. А например, человек залогинился и избранные материалы с сайта и другие личные данные из личного кабинета я так понимаю будут браться уже онлайн с сайта на сервере?
Андрей Субботин: да. но советую хорошо проработать этот вопрос.
1. вы писали что offline приложение (я так понимаю это главное)
2. тогда нужно чтобы online функции не мешали работе приложения.
Ну и если Вы хотите online|offline версию одновременно, то стоит немного изменить архитектуру вашей базы с сайтом, чтобы данные в android app были максимально синхронизированы.
я бы условно сделал примерно так: при внесении изменений в базу через сайт или в online через android ввелся (в отдельной таблице) лог изменений. он бы и подгружался в android базу. (с перемещением указателя на последнее изменение, в итоге можно получать последний (наивысший) id и сравнивать с тем что храниться в android). но ето работает только если у вас немного изменений в день. иначе процесс будет долгим