[xwiki-devs] GSoC 2011 - "XWiki Android client"

Sergiu Dumitriu sergiu at xwiki.com
Thu Mar 24 03:19:12 UTC 2011

On 03/20/2011 06:46 PM, Abdul Rauf wrote:
> Hi Thomas&  Ludovic,
> Thanks for your quick response and clarifying the project's deliverables. In
> Android development, I am not that experienced so I would still need your
> guidance :)
> I agree with what Ludovic said that now we have cross platform toolkit such
> as Titanium to write native mobile application for both Android and iPhone.
> I am new to this cross platform development and would be interested to see
> some challenges ahead. For example, one challenge I am thinking would
> probably be performance issue as there is an extra layer becomes involved on
> top of mobile hardware.

No, that is not an issue, Titanium builds a native application, it's not 
a framework hosting interpreted applications.

> @Ludovic: Would you please elaborate what do you mean by Mobile skin?
> Regards
> Rauf
> On 20 March 2011 17:17, Ludovic Dubost<ludovic at xwiki.com>  wrote:
>> Hi,
>> I wanted to rename this project to Android/iPhone instead of Android only.
>> I tend to think that today FULL native client development on Android or iOS
>> is outdated.
>> There are now libraries like Appcelerator Titanium (
>> http://www.appcelerator.com/) or PhoneGap (http://www.phonegap.com/)
>> that allow to do cross platform development with "native UI" look and feel
>> in Javascript and with very nice web integration.
>> I've done a prototype with Appcelerator and calling REST/JSON apis from it
>> is a breeze and the result is a very nice native looking application.
>> The great advantage is to develope mostly once for both platforms.

I don't like this very much. Doing development in Titanium is good for 
the end result, bus is bad for the source code. It won't use any of our 
established tools: no Java, no Maven, no CI builds, no Eclipse, no 
contributor experience. It will be an unintegrated, unmaintainable 
application, until committers learn how to use their IDE.

On the other hand, writing an application using the Android SDK brings 
back our infrastructure: Java, Maven, Eclipse, Jenkins.

So, what do you prefer, a portable bitrotting application, or an 
Android-only maintainable application?

>> Also the application is tightly connected to a good mobile skin. Indeed
>> given XWiki's web capabilities, you cannot have of an application developped
>> on top of XWiki working on a mobile without actually calling the application
>> itself in web mode (good example is a livetable). So you can't only interact
>> with the content engine of XWiki. Therefore a good native mobile XWiki
>> application is a front end with nice "mobile" oriented widgets for the home
>> page, the activity stream, the search and maybe others which then link to
>> the native XWiki pages embedded in a mobile skin.
>> Althouth native mobile application + mobile skin are connected they can
>> still be viewed as different projects as the mobile skin can be used on it's
>> own.
>> Ludovic
>> Le 20/03/11 18:00, Thomas Mortagne a écrit :
>>   Hi Rauf,
>>> Great you are interested in this project !
>>> On Sun, Mar 20, 2011 at 17:32, Abdul Rauf<raufbutt at gmail.com>   wrote:
>>>> Dear Thomas Mortagne
>>>> I am very excited to contribute in open source community through the
>>>> platform of Google Summer of Code 2011. I have visited the ideas page
>>>> of “XWiki” at http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/for
>>>> GSoC 2011. I am interested in working on “Google Android client” for
>>>> XWiki.
>>>> The reason being is my interest in smartphone development. I have
>>>> previously
>>>> worked in Windows Phone 7 and to some extent in Blackberry. I want to
>>>> experience development in other platforms such as Android. I've worked in
>>>> Java, CSS, HTML and Javascript.
>>>> I am writing to let you know my understanding of the project and would
>>>> like
>>>> your feedback on it. My understanding of the requirements is as follows:
>>>>    - To develop a smartphone application for XWiki.
>>>>    - The application should be able to navigate wiki spaces and pages.
>>>>    - The application should allow offline editing of wiki space and pages
>>>>    and synchronise results on connecting with the repository.
>>>>    - The application should also allow users an option to launch a browser
>>>>    window.
>>> That is for the UI part yes.
>>> The user need a way to view the result and there is a lot of ways
>>> which are not requiring the same work:
>>> - launch the browser to the page (which will be the minimum for this GSOC)
>>> - integrate the browser into the application if you have more time
>>> - something event more integrated in the application if you have lot
>>> of time but i doubt it will be possible ;)
>>> Plus any commons sense you are thinking of since you are probably more
>>> eperianced than me in mobile development ;)
>>> But there is also another side of the project which is to develop a
>>> nice android library package that could be used by any other Android
>>> app to comunicate with XWiki.
>>> More than the featuires what is important is to have a good
>>> architecture (maven build, follow Andoird good practices) that will
>>> make what you did easy to improve and add other features later by
>>> someone else. That's the better way to make XWiki have a good android
>>> client in the long run.
>>>   I have some knowledge of XML-RPC client/server communication. However,
>>>> you
>>>> mentioned you are interested in using REST API for such communication.
>>>> Does
>>>> XWiki already have REST API or this API needs to be created as part of
>>>> this
>>>> project. Would you please refer me some material to study in this regard?
>>> Yes there is already a very complete REST interface, a lot more
>>> complete than the XML-RPC one which is why the project should be based
>>> on it.
>>>> I look forward to your response.
>>>> Regards
>>> Notes: I only did a bit of Android developement mostly to test it so I
>>> will not be able to help much on very advanced Android stuff

Sergiu Dumitriu

More information about the devs mailing list