Yasith Vidanaarachchi

CS@UofT | Android Developer | Google Intern

Read this first

Kotlin, RxAndroid and Mosby

I haven’t done any Android programming in a while, after the last day of this term I have some free time to explore the latest and the greatest in Android.

I’ve always wanted to try out RxAndroid, just to make my life easier with running tasks on background threads. As for Kotlin, it seems many Android developers are showing an interest in it, so naturally I want to try it out.

In last week’s [Android Weekly](androidweekly.net) there was a post about a new Framework for implementing MVP design pattern in Android, it’s Mosby. It seems to solve some problems, so looks like something I want to try out.

However I’m not sure how well Kotlin and Mosbly will mix, since Mosby uses Butterknife by default, which requires annotation processing. Hopefully this won’t be an issue.

So in order to try these things out, I’m going to re-write my oldest android app using Kotlin, RxAndroid and Mosby.

Continue reading →

Appearance Based Obstacle Detection

The goal of this project is to assist visually impaired people to navigate an environment. I believe that the biggest problem they face is circumventing obstacles during the navigation. Therefore the first goal is to come up with a system that will help with avoiding obstacles.

Ease of use is also a major concern, so as a team we decided to focus on using a mobile phone equipped with a camera for this.

Due to a phone only having a single camera, and therefore not being able to detect depth accurately, my approach was to detect obstacles based on appearance.

When searching through Google scholar, this was one of the most cited papers on this topic. My first implementation for prototyping this approach was through Python using the OpenCV wrappers for python.

The methodology described in the paper can be summarized as stated below.

  1. Use a Gaussian filter to reduce noise in the image;
  2. ...

Continue reading →


I decided to take Intro to Economics this year.

It was mostly because I needed 1.0 credits in Social Sciences. Partly because I was curious about how the economy works, and wanted to know more.


At first, it seemed like mostly common sense. But then things started to become more intriguing. Perhaps mostly because it’s not an exact science.

How consumers and their demands are modelled based on certain assumptions, and the whole theory behind supply and demand was very useful.

This gives me some other considerations when thinking about potential projects to do.

View →

Lessons Learned

I was at Google Waterloo this summer, working on the Google Fiber Android app.

I learned a lot about Android development, and mobile development in general. But the most important things I lessons I took away are not directly relevant to coding.


Having milestones for a project helps a lot. It helps you prevent long working days, and relieves a lot of stress.

I didn’t realize this as soon as I should have. Looking back, it’s surprising why I didn’t realize this in the last few years I’ve been working on school projects and personal projects.

The most obvious advantage is that you have an idea about what’s coming next, you can take a peek into the future of the project.

The second not so clear advantage is that, you know if you’re lagging behind, and you need to pick up the pace.. before it’s too late. Your predictions for the milestones won’t be very accurate because...

Continue reading →

New Blog?

I started writing blog posts pretty frequently last year. So what happened to that blog?

Short answer, every thing’s gone. So I have to start over.

I was hosting a Ghost blog on a Digital Ocean droplet. The filesystem got corrupted, and as I didn’t keep any backups. It’s all gone.

Then I was looking at my options. I wanted a low cost option with a Markdown editor so I ended up using Svbtle.

View →