GSoC proposal: First draft

Viranch Mehta viranch.mehta at gmail.com
Thu Mar 10 17:35:27 CET 2011


Hi,

Attached is the first draft of my GSoC proposal for the project: QMLify the
KDE Plasma Widgets. Please review it and send me comments/suggestions.

Regards,
Viranch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20110310/36007139/attachment-0001.htm 
-------------- next part --------------
GSoC Project Proposal
=====================

Name:		Viranch Mehta
Email:		viranch.mehta at gmail.com
IRC nick:	viranch
Location:	Gujarat, India. GMT +0530

::QMLify the KDE Plasmoids::

Motivation:
==========

Plasma Workspace has been what defines the look and feel of KDE4. It is very well designed to accommodate various panels, widgets, etc. on the desktop and has seen many changes since KDE 4.1 in the plasma design and architecture. Its developer friendly code-base allows various programmers to easily create custom plasmoids which can be distributed as a small bundle and be easily integrated into the plasma workspace.

With introduction of Qt Quick/QML in Qt 4.7, the gap between the developers and UI designers got narrowed down with its rich set of QML elements and intuitive declarative QML language. QML allows designers to create fluid like animated UIs very quickly. And most importantly, the animations happen without the slightest glitch. The Javascript/C++ bundle efficiently handles all the back-end implementation, leaving the designers to concentrate on the animations and UI simplicity.

This projects aims at transforming all the current plasma widgets (Plasmoids) to QML/C++, opening the doors to lots of better animations with the plasmoids and probably faster loading at start up. Most of the plasmoids that come bundled with KDE and the default ones will be completely transformed to QML/C++.

My enthusiasm towards KDE initially led me to learning Qt (which I grasped very quickly) and made a lot of small applications with it[1] for some experience. I immediately developed interest with the UI designing and developing and that's how I landed up writing a proposal for this project. I have already been a fan of the KDE Plasma amongst other KDE features, and this project is the bull's eye towards my interest. I see a perfect opportunity to develop some real life desktop user interface with the latest technology of QtQuick through this project.

Implementation plan:
===================

KDE already has support for QML plasmoids since KDE 4.6. So moving one step forward, the following plasmoids will be transformed to either QML/Javascript or QML/C++ in this project:
- Kickoff Application Launcher
- Battery Monitor
- Device Notifier
- Digital Clock
- Folder View
- Lock/Logout
- Network Management
- System Tray
If time permits, some other plasmoids may also be worked upon.

Tentative Timeline:
==================

May beginning ? Read plasma code and get familiar with the current plasma/plasmoids code and the plasma library. Probably write one or two practice plasmoids to get a first hand feel of how they're made.

May 15 onwards ? Start with the actual re-factoring of the plasmoids into QML/C++ or QML/Javascript (whichever is most suitable). I plan to invest one-two weeks with the first two-three plasmoids (May 15 ? June 31) and then the subsequent plasmoids may be covered within a week each (July 1 ? August 10), hopefully reducing the time to less than a week with each plasmoid that I finish up with. Each plasmoid will be tested as and when it undergoes the re-factoring.

Later ? Fix bugs with the re-factored plasmoids and re-factor as many more plasmoids as possible.

About Me:
========

I'm a third year engineering student, pursuing B.Tech. in Information and Communication Technology (ICT) from DA-IICT, Gandhinagar.

I have been a Linux and KDE user since two years now and have developed a great interest in contributing to the FOSS since then. KDE is the project I've been most familiar to and interested in, as I see most of cutting edge technologies wrapped up in KDE, and of course, I love the awesome community commitment and dedication towards the same.

I've been following few mailing lists and the development in trunk since half an year. I had submitted a patch to KDE games[3] and another to KIPI plugins[4] to get a hold of KDE code-base and the development process of KDE.

Besides being proficient with C/C++/Python programming languages, I have worked upon several of my PyQt projects[1] like MP3 cutter/joiner, PDF splitter/joiner, etc. The project SAM[2] (Syberoam Account Manager) has been the most worked upon by me. It is a cyberoam account manager made using PyQt where users at colleges/workplaces that have cyberam firewall installed can use SAM *to automatically re-login after certain amount of time, *to manage multiple accounts and quota limits. I have also been extensively interested in python scripting, especially the ones relating to web crawling.

Besides coding, I love eating, entertainment and exploring new open source technologies.

I'll soon be adding experimental plasma codes to the "Links" section.

Links:
=====

[1] http://www.bitbucket.org/viranch
[2] http://www.bitbucket.org/viranch/sam
[3] http://svn.reviewboard.kde.org/r/5547/
[4] http://svn.reviewboard.kde.org/r/5773/


More information about the Plasma-devel mailing list