iammert / androidarchitecture Goto Github PK
View Code? Open in Web Editor NEWRecommended architecture by Android
Recommended architecture by Android
First, thanks for such a good work!!
I've a question for you, i don't know whether it's a feature request, suggestion or else. The API you're querying is protected by Tokens. In your application, your Token is hardcoded. What happens if your application needs the user to log in?
The token issue complicates and is a real world use case. Some people try to store tokens within SharedPreferences, but I don't think it's a good idea. I'm tackling it by using Android Accounts and Authenticator API. This is a good practice to manage accounts and tokens, since it provides mechanisms to update tokens in different situations.
It'd be nice that you could provide any example, in this project or in another. I understand this one is solely aimed to explaining the usage of MVVM arch.
Thank you again!
It seems NetworkBoundResource works on the bases that, the data is stored in the DB. I have data I want to fetch from an API, however this data won't be stored in the DB as it does not need to live longer than the activity's lifecycle. How could we still use NetworkBoundResource in this case?
theres some issues, one of them is there
s no
drawable/ic_stars_green_24dp
drawable/ic_language_green_24dp
I had to get rid off it from mark up
05-31 15:38:50.877 24942-25015/iammert.com.androidarchitecture E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: iammert.com.androidarchitecture, PID: 24942
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List iammert.com.androidarchitecture.data.remote.model.MoviesResponse.getResults()' on a null object reference
at iammert.com.androidarchitecture.data.MovieRepository$1.saveCallResult(MovieRepository.java:36)
at iammert.com.androidarchitecture.data.MovieRepository$1.saveCallResult(MovieRepository.java:32)
at iammert.com.androidarchitecture.data.NetworkBoundResource$2.doInBackground(NetworkBoundResource.java:71)
at iammert.com.androidarchitecture.data.NetworkBoundResource$2.doInBackground(NetworkBoundResource.java:67)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Hi mertsimsek. I am just following this example. i have create a app to get user detail from github service.
I have added everything that you added in di,data, packages. but i was getting null response from the retrofit. this is my repo link my-mvvm-sample check it and let me know where i was wrong.
Thanks in advance
I have a pull request that will update all the dependencies and all the deprecated methods
In the layout activity_movie_detail.xml,
android:src="@drawable/ic_language_green_24dp" android:src="@drawable/ic_stars_green_24dp"
are missing
Since now RxJava2 is popular in many Android projects.
Just a quick one, why is it a requirement, to run Android studio 3.0 for this repo ?
Thanks for this repo, but I'm migrating from asynctask to this project and sincerely, is like start from 0.
My question is: How can I debug the Api response?
In my last project I can stop in the moment when the Api response, so I could see the header of the response if it was a 200 response or 404. Then I could see the json of the Api response, etc...
Using this repo I can't see anything of this, for example, I changed the url repo and also I changed the model, and I don't know if the data received is ok and if the model is filled with the response.
Anybody can help me solving my problem?
Thanks!
FATAL EXCEPTION: AsyncTask #1 Process: iammert.com.androidarchitecture, PID: 7318 java.lang.RuntimeException: An error occurred while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:325) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) at java.util.concurrent.FutureTask.setException(FutureTask.java:223) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List iammert.com.androidarchitecture.data.remote.model.MoviesResponse.getResults()' on a null object reference at iammert.com.androidarchitecture.data.MovieRepository$1.saveCallResult(MovieRepository.java:36) at iammert.com.androidarchitecture.data.MovieRepository$1.saveCallResult(MovieRepository.java:32) at iammert.com.androidarchitecture.data.NetworkBoundResource$2.doInBackground(NetworkBoundResource.java:71) at iammert.com.androidarchitecture.data.NetworkBoundResource$2.doInBackground(NetworkBoundResource.java:67)
I can not found resource ic_language_green_24dp and ic_stars_green_24dp.
Can you provide it, please?
In MovieListFragment I see the following ViewModel injection, however I don't see where you're providing this dependency in any module. How are you injecting this?
@Inject
MovieListViewModel movieListViewModel;
I reached a class it makes use of some ActivityMainBinding
that is supposed to be located in the packate databinding
, but I see nothing there...
I have implement your app architecture model in my app ,
Building the app I got below issue in AppComponent class
@component.builder is missing setters for required modules or components:
I have compare all code , but didn't find to resolve the issue . help me to find the error . Thanks ..
for example:
I need to use activity in MovieRepository ,so how can I inject activity to MovieRepository?
@Inject
public MovieRepository(MovieDetailActivity movieDetailActivity,MovieDao movieDao, MovieDBService movieDBService) {
this.movieDao = movieDao;
this.movieDBService = movieDBService;
}
can you write a example in the project ? thinks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.