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
154 Views Asked by alla At
0
There are 0 best solutions below
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in SQLITE
- How to insert values into Android SQLite Database?
- Inserting and returning autoidentity in SQLite3
- sqlite3 select statement fails with "parameters are of unsupported type
- Android database query not returning any results
- No such column error when column does exist
- Can't insert " character into Sqlite DB [Objective-C]
- How do I Insert a Previously Created SQLite Database into a Xamarin.Android App?
- Clearing database for emulator app so it acts like being run for the first time?
- SQLite UPDATE statement updates all row in table
- ActiveResource::ResourceNotFound: Failed. Response code = 404. Response message = Not Found
- Syntax error in rails database query
- Deleting and Updating values from a cusrsor adapter
- restrict sqlite-wal and sqlite-shm from icloud backup
- Recieveing Null Pointer Exception when trying to retrieve data from SQL database to listview android
- Scraping blog and saving date to database causes DateError: unknown date format
Related Questions in MVP
- How to apply MVP pattern to android project
- Searching for an example of class-binding by a interface
- MVP in WinForms ( presenter & program.cs)
- Maintaining different build flavors across modules in Android Studio
- Can I create View and Presenter in different Project in MVP Pattern
- Android MVP communications
- Android: MVP. Right way to communicaticate between components
- MVP, set the view of the presenter to null on destroy?
- MVP for android. Is it worth the effort?
- Dagger 2 multiple Retrofit instances built with different URLs for hitting different APIs using constructor injection
- Android : best case for communicating adapter with Activity/Fragment
- How to data-bind my View's button to the Model, via its interface in the Presenter
- How to test second activity started in instrumentation test in MVP?
- Android. Interact with menu from Presenter
- Android MVP architecture - communication between repository and view
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 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?