1. GitHub Actions on Android project

    Introduction

    I’m a big CI enthusiast who tries to keep abreast of changes and evolution of different CI services. This post describes how I configured GitHub Actions on Android project and first impressions about this service.

    Continue reading …
  2. Working with Jenkinsfile in Intellij IDEA

    This post describes how I write/debug Jenkins Pipelines on different projects (Android, Groovy). There should be definitely other ways/environments of doing this. It’s just what’s convenient for me.

    Intellij IDEA IDE

    Let’s say you want to work on Jenkins Pipeline configuration on a project using IntelliJ IDEA.

    Continue reading …
  3. How to configure JaCoCo for Kotlin & Java project

    Introduction

    Here’s the description of JaCoCo from the official website:

    JaCoCo is a free code coverage library for Java, which has been created by the EclEmma team based on the lessons learned from using and integration existing libraries for many years.

    There are many articles which show how to configure JaCoCo on a Java project. But there aren’t many articles how to do that on a Kotlin or Java + Kotlin project.

    It’s quite an important topic, as many developers start migrating their projects from Java to Kotlin (especially in Android world). Having no coverage upsets people a lot.

    I have spent some time on this configuration and turns out that configuration is very simple.

    Continue reading …
  4. How to use Jenkins plugins in Jenkins Pipeline

    Pipeline and plugins

    Jenkins Pipeline is a suite of plugins which supports implementing and integrating continuous delivery pipelines into Jenkins.

    Not all Jenkins plugins are compatible with Jenkins Pipeline (check COMPATIBILITY.md).

    With “old” Jenkins plugins installation and usage is straightforward. But it’s not true for Jenkins Pipeline. Even if you find a plugin which is compatible with Jenkins Pipeline, it’s not always obvious how to use it in Jenkinsfile.

    Continue reading …
  5. Automatically install Android dependencies in CI

    Sdkmanager

    Not long ago Google deprecated android command and executing it in command line we get next output:

    deprecated android command

    It’s advised to use new command sdkmanager.

    We can install Android dependencies from command line using sdkmanager command. But before installation developer must accept licenses. On a local machine it’s easy, just run sdkmanager --licenses command and type y few times (up to ~6 licenses).

    On remote machine (usually in CI), where the goal is to automate everything, would be perfect to accept licenses automatically.

    Continue reading …
  6. Let's burn some time in the meetings

    When you’re a developer and you attend meetings every day you get the feeling of the wasted time.

    Instead of writing code you are in the meetings.
    Instead of finishing X tasks per day you finish 50% of tasks due the time spent in the meetings.
    Instead of spending most productive time in the morning on development you are attending the meetings.

    Continue reading …
  7. Jenkins LIFX notifier plugin

    Some time ago I’ve encountered a LIFX smart bulbs. These are the bulbs with a chip inside - 50% bulb, 50% chip. There’re mobile applications for easy configuration and remote control of the bulb. Nothing special here, it simply works and is very convenient to have such bulbs in dormitory.

    Brilliant idea time

    99% of ideas which come to our minds either were already implemented by someone else or they are shit.

    And as it always happens, developer inside me generated an idea, which was implemented by someone else already.

    The idea was to connect a LIFX bulb to Jenkins server and update bulb color according to a job state.

    Continue reading …
  8. Analyze Stack Trace like a boss!

    In this post we’ll talk about amazing feature Analyze Stack Trace available in AndroidStudio IDE.

    A stack trace is generated whenever our app crashes because of an error or an exception. Developing a 100% stable Android application is near to impossible. Application might not crash on our real device or emulator, but there’s a big chance that it will crash on other devices (e.g. Samsung).

    Due to that fact analyzing stack traces is an essential part of Android developer work.

    Continue reading …
  9. Tabless programming in AndroidStudio

    Not long ago I realized that I’m not using all the tabs I open in IDE. All these open tabs just annoy me, when I’m switching between classes.

    Lots of tabs

    Even if I work on a screen with big resolution and 7-10 tabs fit on screen - I’m not using all of them. Even more, I need only 1-2-3 classes open at particular time.

    All the IDE’s, I’ve used before (VisualStudio, Eclipse, Intellij IDEA), were using tabs by default. But if I’m not using all these tabs, can I live without them? The answer is YES. So obvious :smile:.

    Continue reading …
  10. How to build Cordova-based Android project on bitrise.io

    Bitrise is a Mobile Continuous Integration and Delivery service. It has a lot of integrations and the number of integrations increases very fast. The best thing about integrations is that they are completely open source.

    Prehistory

    Bitrise provides range of stacks, and you can decide which one to choose for your project. I’m doing Android development and everything related to Android is automatically interesting to me. I wanted to contribute to bitrise-steps something related to Android. Inspiration came from bitrise-discuss and I’ve chosen “Install Cordova and Ionic”. Both Cordova and Ionic platforms were new to me, which even more increased my interest.

    Continue reading …