Go the Lokki’s way

Hello Friends,

This was our team’s last week in software factory for development of your friend Lokki. Well this journey with Lokki was amazing, we learned various nuances of Android and Node.js and weaved them together to implement your friend Lokki and couple of new features in it. As you know we started up with source code from F-Secure and did various tweaking on it so as to make Lokki more user friendly. We fixed various bugs, added new features, optimized power requirement of Lokki etc.

We were successful in adding new features like buzz places, searching places by there name, searching contact’s location by contacts name, more efficient registration system, more efficient power management when Lokki goes background etc. to name some in a short period of 6 weeks. Our last weeks milestones were mainly focused on  wrapping up all the new features we developed in 6 weeks, freezing code for release and stabilizing this release version 4.1.3 of Lokki. I was working on more enhancement of buzz feature like giving user to dismiss buzz when he reaches place via dialogue box, adding snooze option in buzz feature in which if user snoozes buzz option Lokki will buzz after some time or it will half the radius of place and snooze you when you reach more closer to defined place. Due to limitation of time i postponed second feature development option. We also started testing Lokki on different android API versions starting from 15. Frankly speaking none of us had device of android API version 15 and AVD was giving random errors when launched with API 15 so we couldn’t test Lokki on API 15. We faced some issues with API 16 initially and then Antii fixed it. I was really amazed to see Antii’s debugging skills from log messages of AVD manager. However at last we managed to run lokki on API 16. We also tested Lokki running smooth on API version 16 and above. We were pleased to see our work running fine in front of our eyes. Shiva also started working on website of Lokki and we have finally website for Lokki too. We have made our website public and you can visit Lokki’s website at http://lokkiapp.com/.

Since its inception Lokki has seen many changes and is being developed at a fast pace. Lokki downloads are also increasing at fast pace. We have managed to get over 50 users just in 3 weeks time with average rating of 4.8 in Google’s play store and that too even without any formal advertisement. These figure shows that Lokki is slowly making its way in people’s life.

Lokki project would be continued by software factory in coming period too, but not by us but by different team under Fabian. Our current team has opened various enhancements milestone which we thought of implementing during our tenure in software factory but we couldn’t implement them due to time constraints. Also Lokki once launched with full fledged advertisements, will become a big project and a team to maintain. Probably next team will implement pipelined features well and will deliver even more better versions of Lokki in coming days. Our team will also be available to guide them remotely.

Ok friends see you back again.. and once again Go the Lokki’s way.



Go the Lokki’s way

Hello Friends,

This is my fourth week in Software factory and we are now witnessing more intensive developments and versatile issues in Lokki. Last week I & Antii started development of location buzz feature in Lokki. This week we spended most of our time in stabilizing location buzz feature. After implementation of location buzz we got various issues like If we turn Buzz on in a place and then rename it, Buzz will be turned off, Un-checking Buzz check box crashes Lokki if user is using API version 18 or below and Buzz not working when Lokki goes in background.

We started again analyzing our code for above issues and finally found out various bugs in code. We found out that we were using Place name as a key for Buzz places but that was not a unique identity of place as when we renamed place name it was changing and hence code was not able to implement buzz feature at that buzz place. We brainstormed and then found the way by replacing key with Placeid which was unique static id for place and even if place was renamed it was constant and not changing. This made our location buzz working even if we were renaming places.

Second issue which we faced for Buzz feature was that Un-checking of Buzz check box was crashing Lokki, if user was using API version 18 or below. We again analyzed the code and found culprit, this time it was JSONArray’s remove library method which we were using for un-checking buzz check boxes. JSONArray’s remove method  is not supported in API level 18 and below. Since Lokki supports minimum API level up to 15, we replaced JSONArray’s remove method with our own removeBuzzPlaces method which we defined in code.

Third issue which we faced was that Lokki was not buzzing if it enters in a place and application is in background or screen of phone is locked. We again started analyzing code and found very interesting finding that onPause() method call Lokki was not using Location services and hence was not running properly in background. We made Lokki to use Location service when it goes in background or when phone screen is locked. After this implementation, Lokki started buzzing even if application was in background or screen was locked.

While making Lokki use Location service when it is background I figured out one more area of enhancement in Lokki. Currently Lokki uses Fine location techniques such as GPS for retrieving users location and fall backs to coarse location methods if fine location methods are not available. This also holds even if application is running in background. GPS is very battery exhaustive location technique which consumes much of a device battery but provides high accuracy. I am thinking of implementing logic in code of Lokki that it automatically falls back to Coarse location techniques like network provided location when Lokki is in background or users screen is locked. This will save users battery to a extent.

Well this was enough description for this buzzing week, stay tuned on my blog for further update of your friend Lokki, and the most important thing Go the Lokki’s way !!!!

Go the Lokki’s way

Hello Friends,

This is my third week in software factory and Lokki’s feature development and bugs fixing is in full swing. Last week, our team brainstormed on various use-cases which we can provide to users in coming releases of Lokki. Out of various features planned, we decided to implement Location Buzz in coming 4.0.9 release of Lokki .Task of implementing Location Buzz was assigned to me and Antii. Location Buzz was a new feature so we started to work from scratch. Initially we thought it easy task, but when we made our hands dirty with code, complexities grew and it soon became a uphill task for us.Since Location Buzz was completely new feature we had to make clever choices of variables and functions which could work with existing code of Lokki and serve the Location Buzz purpose. We defined various new JSON Objects, JSON Array variables etc in code. We did various changes in existing Places Fragment, LocationService.java file etc. of Lokki. Our code crashed many times but finally we were able to achieve a stable code with Location Buzz.

Next major step after development of Location Buzz feature in Lokki was to develop automated android test cases for this feature. This was first time i was developing android test cases, i was observing previous android test cases defined for Lokki and was then thinking how to implement test cases for Location Buzz. To be honest i was not getting a clue from where to start test cases specific to location buzz. Antti had just completed his Sign-out feature android test cases, so he guided me how to develop android test cases for Location Buzz. Finally we developed four functional test cases for Location Buzz. We couldn’t develop accuracy test cases and actual scenario of test case which can simulate user entering inside a place where he has requested us to buzz or leaving that place which resets internal counter, this was due to fact that Android Key which we have defined in Android Manifest some how fails to call Google Maps API whenever we run developer version of Lokki. We performed test cases on Lokki application which we had created, after initial failures of code and test cases, we arrived on final bug free code for Location Buzz. As i told you Android Key which we have defined in Android Manifest some how fails to call Google Maps API whenever we run developer version of Lokki, so we are planning to push these changes to our alpha release and then, we would be able to actually test Location Buzz feature.

This was all i did this week, it was a challenging week and i enjoyed a lot in implementing Location Buzz in Lokki. Currently my fingers are crossed so that our alpha release passes the location buzz test.

This was enough description for this week, stay tuned on my blog for further update of your friend Lokki, and the most important thing Go the Lokki’s way !!!!

Go the Lokki’s way

Hello friends,

Welcome back, hope u had a nice week. Well our week at software factory was also full of tasks and fun. We launched first public version of Lokki at google play store on 11th. It was interesting seeing statistics of our applications download via google analytic which i must say is an elite analytic tool. If you didn’t had time for downloading Lokki, please download it from this link of google play store.
This entire week we figured out various limitations which were still prevailing in Lokki based on users feedback. Some of these limitations where i worked was giving users hint on Map fragment that they can re-size there place size while they were creating the place. Earlier we were giving this location in Place fragment, but then we decided to move it to map fragment so as to give hint to user whenever he actually creates the place. Second limitation where i worked was that Lokki was not having Sign-out option, so if user wanted to Sign-out from current Lokki application and wanted to sign in again with different email-id it was not possible. This feature implementation was not easy task rather i would say it was some what tedious task. We faced various issues like new signed-in user was able to access previously signed-in’s user defined contacts, New signed-in user was not landing directly to main fragment, etc. We sorted out various such issues and finally finalized code with sign-out feature, free from bugs. Since we also create android test-cases for each new feature we include, team also started developed them. Overall it was fun implementing this sign out feature.We brainstormed on various topics like where to store user defined Lokki contacts, displaying names of user created contacts instead of email-id etc.

We are also planning to enhance Lokki more, and give maximum possible features to users in Lokki. I recommended one new feature, Location Buzz to team which can be helpful to everyday long distance commuters using public transport, to persons who are new to a place etc. In this feature user can define places in Lokki of size whatever they want, and Lokki will buzz them up whenever they enter that place. This feature is especially beneficial to a tired commuter travelling in a public transport who cannot take a sound nap during his travel because of fear that if he sleeps his station may pass or to a person who is going to a new place. I discussed with team about this idea and there response was overwhelming. We are going to include a Buzz check box at side of each user defined places, so you can just check it if you want Lokki to buzz you if you enter that place. We are also thinking of defining new shapes for user-defined places.

Location Buzz along with various other enhance features are planned to be included in our upcoming release version 4.0.9 which is scheduled to be rolled out on play store on September 24, 2015.

Well this is enough for now.. stay tuned on my blog for further updates on Lokki and the most important thing Go the Lokki’s way !!!!

Go the Lokki’s way

cropped-Screenshot-from-2015-09-14-134941.pngHello Friends,

Welcome to my first blog on University of Helsinki’s website. Well purpose of this blog is to make you familiar with interesting encounters which are coming across our way in delivering you your new friend Lokki.

Well as of now you must be wondering what your new friend Lokki is, well i will not keep you in suspense.. Lokki is a location sharing mobile application (Currently based on Android..but hey don’t get angry we have ios & windows version too coming soon).Lokki allows you to share your real time location with your friends and also allows you to track their location. Now question arises how this new friend Lokki can be useful to you, well Lokki can currently help parents to track their children, can scout group of friends at a new place,etc. to name some.

Basically Lokki was brainchild of renowned Finnish company F-Secure. They made source code of Lokki open-source, so that it could benefit ongoing Internet of thing revolution. Softwarefactory(http://www.softwarefactory.cc), Development laboratory of Department of Computer Science, University of Helsinki took this project for its further enhancements and use-case implementations so that it can be made public. Lokki project is alloted to our team by Softwarefactory, our team consists of 7 students from computer science department at university of Helsinki and our guiding mentor cum leader Fabian Fagerholm. We didn’t get much documents for Lokki so it was pretty difficult for us to figure out underline design of Lokki in first week. Probably once our alpha version is out to public and we are done with fixes which public may recommend us to do we will start making underlying design documentation part of Lokki. For version control of our code we are using GitHub. Fabian made very comprehensive documents for version control which helped us a lot.

Understanding Lokki application from design point of view was a challenging task for us as we had no documentation on sourcecode. Prior experience of developing simple android applications helped me a lot in getting insight design view of sourcecode, but nevertheless Lokki is such an API extensive application that we normally do brainstorming on various parts of its sourcecode.Server side implementation of Lokki’s backend is based on Node.js. Once we commit changes in sourcecode of Lokki our modified code is passed to Jenkins in case we did changes in android application’s sourcecode and to Travis if changes were made in server’s sourcecode. Both Jenkins and Travis are nice automated testing tools.

Now you must be wondering that how such a small team is coordinating this whole project between them, well we all work at same location which is softwarefactory’s laboratory and we discuss in group, issues faced and then try to resolve them. We also have slack group, common waffle dashboard, shared Google drive so even if due to some reasons any of our team member is not physically present in laboratory he can work remotely. Current working environment of our lab is just like budding startup’s office environment, everyone has freedom of expressing his innovative ideas, we brainstorm together about issues and everyone tries to give their best so that Lokki may become a hit.

Well this is enough for now.. stay tuned on my blog for further updates on Lokki and the most important thing Go the Lokki’s way !!!!