Display Calendar Events on a Watch Face with Android Wear

The watch face displaying upcoming calendar events was developed in relation to the Grand Central Board, a board for the new Apple TV that is used by the Macoscope team on a daily basis. In my previous post, I described the process of drawing the watch face itself. In this episode, I’d like to elaborate on displaying upcoming calendar events on the watch. My primary assumption was that events will be pulled from only one calendar. There are a couple of different available ways to pull events from calendars, but not all of them fit the criteria described above. Below, you will find the approaches I’ve tested and my pick for the optimal one.
This entire project is based on Android Wear 1.0 gcbpanel

Continue Reading

Automated UI Testing with Jenkins CI

For years, Jenkins has been the software of choice for companies offering Continuous Integration (CI) servers. Simplicity, a wide range available plugins, and a free software license make Jenkins a very appealing choice.

Jenkins is by no means a new offer on the market, that’s why its capabilities can be somewhat surprising. Although we’ve been using CI servers in Macoscope for quite some time now, using them for automating UI tests allowed us to uncover a whole new set of their abilities.


Continue Reading

Drawing a GCB Watch Face with Android Wear

For the past couple of weeks, we have been using Grand Central Board, an open source dashboard for the Apple TV with a range of capabilities, including a reminder function that informs team members about upcoming meetings. Not everyone, however, has a TV permanently in sight, a fact that may be used as a convenient excuse for being late to company events and the like. Inspired by that fact, I decided to take up the challenge of transposing the event clock widget onto an Android Wear Watch Face. It should be noted that the primary function of the Watch Face I’ll be developing is displaying upcoming events from a selected calendar. In Part 1 of this series, we’ll be focusing on drawing the watch face using Android Wear 1.0. watch-face

Continue Reading

Use Kotlin Anko DSL and Say No to Android Layouts Written in XML

We would like to introduce an application that serves as our lunch menu.

Every day at 13:37 we eat lunch together at our cool office, catered by the lovely couple Hanna and Tadeo. The only problem we have with lunch right now is ordering. The menus for the upcoming week are provided in a Google Sheet which we have to fill out before each Friday. It’s inconvenient and requires a lot of time on everyone’s part. We already have an iOS app that gives us access to the lunch menus, so we decided to write a similar one for our Android users.

ss1 (1)ss2

Our Minimal Viable Product (MVP) is dead simple. It contains five tabs with lunch menus for each given day, a list with the number of meals ordered by the logged in user, and the total number of orders for every given meal. We’re using the Google Sheet API as our backend.

We decided to choose Kotlin as our programming language. There is some good stuff out there about learning Kotlin, so we decided to share with you a less documented but still very interesting topic — creating Android layouts in code with the help of the Kotlin Anko library. Our post assumes that you have at least a basic working knowledge of developing Android applications and have at least skimmed through the Kotlin documentation. Reading through this this piece will give you a basic knowledge of creating Android Layouts directly in code using Kotlin Anko.

Continue Reading

Using SonarQube with Jenkins Continuous Integration and GitHub to Improve Code Review


Every app that we develop at Macoscope is built on CI, while Code Review is an inherent part of our creative process. This allows every member of the team to quickly figure out how some new portion of code was implemented and point out what’s wrong with the code and how it can be improved. Another thing that helps produce high quality code is static code analysis. It looks for patterns in code (using a pre-defined set of rules) that can cause bugs and result in security vulnerabilities.

For developers, static code analysis is most helpful when it is an essential part of the code review process. Under such an approach, every pull request is automatically analyzed and potentially incorrect parts of the code are commented. In this short blogpost, we describe how you can implement that approach by integrating SonarQube with Jenkins CI and GitHub for an Android project.

Continue Reading