Friday 25 July 2014

     GSoC'14(an awesome journey so far) is about to end and I'm wishing that I could relive all the moments again. This time I'm going to talk about my design implementation work. Around June ending, I completed my actually proposed project and it was time to work on incremental goals. I talked to Allan Day who is in gnome design team. I had mock-ups of new design and my mentor suggested to work on new design. Initially I hesitated a little as the new design was all about transforming the application into almost a new application. I didn't have much idea on design implementation so I felt that I might not be able to complete it and I talked to my mentor that if he could assign me something else instead of design implementation work and then he asked me that I could keep learning and working on it and at least I can work on initial changes. So finally I agreed and then sent a mail to Allan that I'm going to start working on design implementation and he reworked on few designs and gave it to me. Then as I was all confused, my mentor suggested me on where to start working on and all that. After that I started working on the design implementation. The good thing was that I didn't have to design anything on my own, it is all decided by designing team and I had to implement the design only.
    I started working on it around 25th June. I was all busy during first week making things clear and discussing about design and any potential changes in it with Allan and Giovanni(My mentor). After making things clear, I started my work after 3-4 days. I had some work so I was busy during 3-4 days and I couldn't do much during those days but after that I started working on it. I had some building issue initially and after solving it, the actual design implementation work was started. Initially, I used glade interface designer and dealt with GtkGrid and all alignment and spacing and other widgets in that interface designer itself. Then I started making changes in source code(javascript files). Designing can be implemented using JS code too instead of making changes to UI files. I found it easy to make changes and testing them by modifying JS files. I worked on it. Initially my goal was to somehow achieve that design working. I made enough changes in few files and implemented the functionalities. Throughout this process, I kept on asking so many doubts on IRC channels and my mentor and I kept on moving. Then finally I submitted my patch and pushed source code on github. Then from my mentor's review, I came to know that the app is working good but I totally messed up with model-view-controller structure and instead of following the convention to put design implementation code into UI files, I put it in JS files. Then he suggested few big changes to me which led to creation of a new file with my own copyright. Then I had all the source code in files and I need to shift it from one file to another to maintain MVC structure and shift designing part in UI files as much as I could.
    After working on it, I contacted design team that the design is ready and they suggested to add one switch functionality for current location. We were having doubts as to what to show till the app loads current location and all that. Then I thought something or say I misunderstood a little and added the switch with some functionality. Then I discussed it with my mentor and he said that they want the switch to work some other way and not the way I implemented. At that point, everything except that switch was completed and working fine. So I got another task which led to some more changes and then finally I made all the changes as I was suggested to make. I maintained MVC structure and out designs things in UI files.
    Right now, I've submitted a final patch with new design. There is some source code of old design that is yet to be removed. Some polishing is yet to be done. Everything will be done as soon as GUADEC(Gnome conference) will be over. I got an opportunity to attend it and I wish I could attend it but unfortunately due to some reasons I can't attend it. It is starting from 26th July. I feel like I'm going to miss loads of fun. I actually want to meet those people with whom, I've been working since last 4-5 months. Still it has been awesome time working with Gnome community till now.
   Here are few screenshot and comparison between new and old designs. I'm sure users are going to love the new design.


1> This is the way of showing all added cities by users in the old design. When user clicks on any location then the forecasting for that location is loaded.
world-view of old design

    This is how it'll be shown in new design and user has to click on location to see its forecasting and current location will be marked in the list.("New" button will be removed soon). To add a new location, user has to type city-name or keyword into search-location-entry shown at the top of the popover and as soon as user clicks on any location from the suggestions list it'll be loaded and added to list of recently viewed locations while in old design user has to click on new button then enter the name and then click add and then it'll be added to world view so click on it to see its forecasting(1 click in new design instead of 3 clicks in old design). There'll be maximum 5 locations in recently viewed locations list. There is a switch which will let you decide whether you want to fetch current location or not.
Cities will be shown in popover instead of big world-view in new design.



2> In old design, the forecasting is shown this way. To see forecasting for today and tomorrow, user has to click on side-button to see side-pane where today-tomorrow information is shown.
Old design

    In new design there are two buttons to see forecasting for today and tomorrow. There are 2 buttons for that. Even weekly forecasting is also shown in new design which is not available in old design.
New design


   There is one more screen in new design which will be loaded when user has selected not to load current location(stop geolocation service) and there is no recently added location. In this screen, user will enter keyword in search entry box and as soon as user will select any location from suggestions list, forecasting for that city will be loaded.("New" button will be removed soon)
New design


    Thanks to gnome design team for providing a really cool and light design. Thanks to Allan, Giovanni and people on IRC to help me throughout the process. I've learnt a lot by working on new design implementation part.

No comments:

Post a Comment