I have built an Android mobile client for Parse a few months ago. In the beginning, I made it for myself but then I realized so many people can enjoy it too.
If you didnt hear of parse is up until now, Parse is an MBaaS server allowing developers to fastly prototype client-side. Essentially it allows you to maximize the time you put on developing your app by eliminating the need to develop a server for each project. Parse was made opensource after Facebook has shut it down in 2013 and is now developed by the community
I wanted to do it for a long time, after seeing the cool parse client for iPhone I knew I just have to make one for android too :). There aren’t many features yet, here are a few:
- View all schemas on server
- Add multiple servers
- Easy copy to clipboard for object fields
- Delete objects
Submit a PR before coding!
I started coding this project without giving it much thought, the basic version took just one weekend. I planned on using the Parse Android SDK to fetch all the data needed, but there was one part missing: there isn’t an implementation for fetching schemas. So I decided I will implement the missing feature and submit a PR and so I did. When I was done I submitted the PR only to be declined. There was a reason it is not implemented! Schema queries require a Master Key, something the maintainers of Parse Github did not want to allow in the SDK. Sadly I had to fork my own branch from the SDK. I really wanted to contribute.. anyways, maybe next time it will go smoother.
Infinite list adapter for parse objects (lazy-parse)
Before coding the Android Parse Dashboard I had made another Parse oriented project, a library making loading and using parse objects easy. It does that by dynamically loading objects in the background allowing lists to auto-populate themselves when the user scrolls. Initially I had made it for another app of mine but afterward, it got me, this library can make coding the Parse Dashboard a breeze.
// Create a parse query as normal ParseQuery<Highscore> query = new ParseQuery<Highscore>(Highscore.class); query.orderByAscending("rank"); ListView listView = findViewById(R.id.list_view); // Find your list view LazyList<ParseObject> list = new LazyList<>(query); // Create a new lazy list with the Highscores query CustomRenderAdapter adapter = new CustomRenderAdapter(this, list); listView.setAdapter(adapter); // Let lazylist know when the user is at the end of the list and fetch more objects listView.setOnScrollListener(new ScrollInfiniteListener(adapter));