I write android app using MVP pattern. My question is regarding database layer. I want to make it maximally independent, so it will be possible to replace it with something else without code changing in Presenter in the future. I decided to use pure SQLite without ORM, since the user table is updated in different places with differenet fields (in some place I update user's name, in other place in code - token etc.). ORM (I used realm) doesn't allow to do it, you have to write separate method for updating name, separate - for token etc.
Another problem is with ContentValues: when you update user you have to specify the fields you want to change via ContentValues in Presenter, and then Presenter calls repository.updateUserLocal(contentValues), so my Presenter dependents on data layer (if I decided to add ORM to the project, I will need to go to every Presenter and remove ContentValues). So the architecture is bad. Can you please advice how to organize the architecture of the app in the best way?
Project structure issue (MVP): data layer
155 Views Asked by alla At
0
There are 0 best solutions below
Related Questions in ANDROID
- Creating global Class holder
- Flutter + Dart: Editing name of a tab shows up a black screen
- android-pdf-viewer Received status code 401 from server: Unauthorized
- Sdk 34 WRITE_EXTERNAL_STORAGE not working
- ussd reader in Recket Native module
- Incorrect display of LinearGradientBrush in IOS
- The Binary Version Of its metadata is 1.8.0, expected Version is 1.6.0 build error
- I can't make TextInput to auto expand properly in Android
- Creating multiple instances of a class with different initializing values in Flutter
- How to create a lottie animation
- making android analyze with coverity sast tool
- Flutter plugin development android src not opening after opening example
- I initialize my ViewModel in the Activity with several fragments as tabs, but the fragments(tabs) return null for the updated livedata
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- How I can use the shared preferences class?
Related Questions in SQLITE
- How to store a date/time in sqlite (or something similar to a date)
- How to copy data from SQLite to postgreSQL?
- When using a Room database on an Android application, is it possible to pre-populate data
- Expo Error - Android sqlite no such table
- how can debugg field id error in the database schema?
- How add array of authors for unique user in database in Goland IDE?
- Calculate SMA_Close10 and SMA_Close20 of minute data
- Transitioning from Static to Dynamic Data in React with Express Backend
- In SQLite, how to group ranges of values and sort the groups
- Issue with making python executable with local db, sqlite3, tkinter
- Calculating EuclideanDistance in SQL for Deepface facial embeddings?
- Problem with a simple query script used in RS Forms on Joomla 4
- Checking multiple user inputs to multiple fields in a sqlite3 database with python
- How to make that each seller has its own different set of products using sqlite and uwp
- peewee: SQLite - peewee Create() is forcing integer in PrimaryKeyField if leading character is numeric (even if there is a non-numeric in the middle)
Related Questions in MVP
- OCX and the MVP Pattern in Window Forms (Winform)
- MVP createing of child view
- relationship between View and Presenter in MVP
- Model-View-Presenter vs Model-View-ViewModel for embedded application in C++
- Encapsulating member variables of a raw C# class that was marked as serializable
- Tkinter - Managing background tasks in MVP GUI
- Unity MVP architecture
- How to architect a WinForms app for hardware control using the MVP pattern?
- Organizing Multi frame app using Tkinter and MVP architecture
- Guice and MVP pattern: decouple the view from the presenter
- Swift-MVP: Function is not called in the presenter delegate. What am I doing wrong?
- How to apply the Model-View-Presenter pattern in a WinForms app centered around a TabControl?
- The responsibilities of each component of the Model view presenter controller pattern (not to be confused with the MVC or MVP patterns)
- Please explain how object instantiation works here whilst it's not being used - seemingly
- UIElement Reference
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?