GSoC Proposal : Improved Android Client App

  Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
f2prateek Offline
Junior Member
Posts: 10
Joined: Jan 2011
Reputation: 0
Post: #1
Improved XBMC Android Client App

Detailed proposal on this Google Doc : https://docs.google.com/document/d/18OW0...sp=sharing

SUMMARY
For my GSoC project, I’ll work on delivering an update to the current XBMC Android app - focusing on improving the usability of the app. The re-design itself will focus on updating the user interface to blend in better within the Android platform, as well as support tablet-optimized layouts.

FOCUS
My proposal can be broken down into two parts - updating the user interface and adding some small functionality.
The new UI will follow the guidelines on the Android design site. This would mean giving it an updated look by making it more Holo-ish.
The app will also be responsive, designed to use the extra screen estate provided by tablets.
Extra features I wanted to work on are adding (launcher and lockscreen) widgets and DashClock integration.

PLAN
I’ll be starting from scratch, borrowing code from both the old repo and latest one in development.
Starting from scratch will allow me to set up the repository to be built via maven.
This will make future development easier since we can set up a continuous integration server (such as Travis-CI) to automatically verify pull requests in the future, by ensuring compilation and running tests against a build matrix.
I also want to add a checkstyle configuration to keep the code style consistent even after the end of my project.
I plan to heavily use the Fragments API to make the application layouts responsive, and use the Action Bar API to keep it consistent with the platform design.
Having the client server communication up first will allow me to keep releasing small builds that I can garner community feedback from.

For the full proposal, check out my Google Doc.

Obviously would love some feedback that I can use to improve my proposal.
A couple of questions that I do have :
1. Is linking to the Google Doc okay as a proposal or would you prefer it embedded as plain text in my application?
2. Is there any section I should expand on, or I might have missed?
3. For any mentors looking at this, I'd love to talk to you! Smile
(This post was last modified: 2013-05-02 05:13 by f2prateek.)
find quote
da-anda Offline
Team-Kodi Member
Posts: 5,826
Joined: Jun 2009
Reputation: 78
Location: germany
Post: #2
please have a look here for a design you could use: http://forum.xbmc.org/showthread.php?tid=143242
find quote
f2prateek Offline
Junior Member
Posts: 10
Joined: Jan 2011
Reputation: 0
Post: #3
(2013-04-30 19:18)da-anda Wrote:  please have a look here for a design you could use: http://forum.xbmc.org/showthread.php?tid=143242

Yup already had that concept linked in my Google Doc proposal Smile
find quote
topfs2 Offline
Team-Kodi Developer
Posts: 4,548
Joined: Dec 2007
Reputation: 17
Post: #4
Why start from scratch, we have put lots and lots of manhours into the client which you propose throwing away? why?

If you start from scratch this is most likely far to big of a project.

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
f2prateek Offline
Junior Member
Posts: 10
Joined: Jan 2011
Reputation: 0
Post: #5
There's actually no point in using the code from the legacy repo since it was solely based on activities and HTTPAPI, both being deprecated by fragments and JSON RPC respectively. The newer sandbox has more usable code, but most of it is simply abstracted layers, and it is quite small, just around 20 classes. I'll be pulling a a fair bit of code verbatim from this repo (especially the client stuff).

The biggest advantage of setting it up from scratch would be that we can use maven. This means I can set up a continuous integration server with Travis CI (for free!) to compile it and run tests against build matrix of devices. I also want to setup checkstyle so that the code style remains consistent across the code base. Both of these will help make it easier to maintain the code even after I'm done with the project.
find quote
topfs2 Offline
Team-Kodi Developer
Posts: 4,548
Joined: Dec 2007
Reputation: 17
Post: #6
Ah ok, so you meant from scratch with the UI and the UI stuff? not the business layer and such?

If you have problems please read this before posting

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.

[Image: badge.gif]

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
find quote
f2prateek Offline
Junior Member
Posts: 10
Joined: Jan 2011
Reputation: 0
Post: #7
Yeah just for the UI layer. I'll be using the jsonrpc library that freezy has already written as well.

I'll clarify this in my proposal, thanks!
(This post was last modified: 2013-05-02 20:21 by f2prateek.)
find quote
f2prateek Offline
Junior Member
Posts: 10
Joined: Jan 2011
Reputation: 0
Post: #8
Also to clarify, this is just a remote app, simply an update to the existing app that can be found here https://play.google.com/store/apps/detai...mote&hl=en
(This post was last modified: 2013-05-03 10:33 by f2prateek.)
find quote
painy Offline
Junior Member
Posts: 13
Joined: Jan 2012
Reputation: 0
Post: #9
This is a grand idea! Very nice Smile
find quote
bnevets27 Offline
Senior Member
Posts: 207
Joined: Feb 2009
Reputation: 1
Post: #10
It would be great if you include voice controls: http://forum.xbmc.org/showthread.php?tid=134659
find quote
KELVIN Breon Offline
Junior Member
Posts: 1
Joined: May 2013
Reputation: 0
Post: #11
Can you be more specific about the "Extend JSON API to allow streaming over http" part?
What does JSON-RPC have to do with streaming? You can already get the paths to the media files through JSON-RPC and use the /vfs handler of the webserver to access those files.

Furthermore a few days ago I merged a PR that implements HTTP Range support for our webserver which makes it possible to seek in files provided by the webserver. So theoretically you don't need to know about any other protocol than HTTP and just pass the player the URL of XBMC's webserver and the file you want to access and XBMC will take care of whatever it needs to read the file and then pass it on through HTTP. TBH I haven't tried it on an android phone but it works through VLC.
find quote