Throwback Thursday – building mobile app

About one year ago I had a privilege to share my experience with mobile dev community at Mobiconf conference in Cracow. Because of my introvert nature, it was a big personal challenge to stand next to a couple meters high screen and talk to the international audience. I also don’t like to watch my video recordings, but having in mind the message which I wanted to share, I believe that it’s good to remind this particular one from time to time.

As developers (and engineering team leaders) it is always good to remember what is the biggest value we can give to the company. In a time of data driven development, where companies constantly learn about their users and try to adjust the product to meet expectations I believe that the most important thing is the ability to iterate fast. To bring new value in the smallest release cycles with a product free of bugs.

And this is what my presentation is about. Why we should test, use dependency injection or automate delivery process. I show Android app as an example, but the same rules can be applied to iOS or any other client side platform.

Here is video recording from my talk:

Udacity + Google scholarships for digital skills

Today, during Google Developers Day in Kraków, we could see Google Developers + Udacity cooperation announcement which brings us 60 000 seats in their online courses (Web developer and Android developer, 30k seats in each one). The scholarship is dedicated to residents of Europe, Russia, Egypt, Israel and Turkey. All accepted students will have an opportunity to learn coding Android or Web during 3-months course with a help from Udacity and Google mentors.

Web and Android Scholarship Program

10% of the best ones will have an opportunity to take a part in Nanodegree program for free, which ends with certification and a great chance to find a real job in the picked area.

As a former student of Udacity Nanodegree program (Artificial Intelligence Nanodegree in my case), I can only say: thank you Google, thank you Udacity! This amazing initiative with high-quality materials will bring tons of value for IT industry all over the world:

  • For students and future developers who will have a chance to learn how to build a real product from experts working with those technologies on daily basis,
  • For employers who will have a chance to hire well motivated junior devs with practical experience and great will to gain new skills,
  • For entire IT industry (including Google, Udacity and others), because more IT specialist means faster growth this area,
  • And for the people all around the world. Online and cheap/free access to knowledge means that there are much fewer limitations for those who have a great will to learn and want to be professionals in the future.

Let’s build bridges, not walls.

The Keyword — Funding 75,000 Udacity scholarships to bridge the digital skills gap.

Basic Android app analytics in <60min One step towards data-driven development

Every big tech company today is data-driven. Products are more often built based on collected data rather than internal opinions. It’s very likely that in this moment some of apps on your device are serving you A/B test variants, checking how: new layout, text or even functionality affect your activity and engagement.
The biggest companies have dedicated Business Intelligence teams, their own data warehouses, custom analytics tools and big flat screens in conference rooms showing realtime charts.
And the most important — endless audience waiting to be analysed by pie charts or bars 📊.

Continue readingBasic Android app analytics in <60min One step towards data-driven development

Hello world Google Home Github Actions — building first agent for Google Assistant in Java

Some time ago I published unofficial Google Actions SDK written in Java. Source code and documentation can be found on Github: Google-Actions-Java-SDK. Library can be also downloaded from Bintray jCenter:

The goal for this project is to give Android/Java developers possibility to build solutions for Google Home without learning new language (official Actions SDK is written in Node.js). Continue readingHello world Google Home Github Actions — building first agent for Google Assistant in Java

Building Google Actions with Java Move your code from Android to Google Assistant

Voice interfaces are definitely the future of interaction between people and the technology. Even if they won’t replace mobile apps (at least in next years), for sure they extend their possibilities. It means that for many mobile programmers, assistants like Actions on Google or Amazon Alexa will be next platforms to build their solutions. Continue readingBuilding Google Actions with Java Move your code from Android to Google Assistant

FrameMetrics — realtime app smoothness tracking

A couple months ago, when Android Nougat was announced, among new features like Multi-window, enhanced notifications, VR support, 72 new emojis đź‘Ť and others, there was a new addition to monitoring tools: Frame Metrics API. Continue reading “FrameMetrics — realtime app smoothness tracking”

Activities Subcomponents Multibinding in Dagger 2

A couple months ago, during MCE³ conference, Gregory Kick in his presentation showed a new concept of providing Subcomponents (e.g. to Activities). New approach should give us a way to create ActivitySubcomponent without having AppComponent object reference (which used to be a factory for Activities Subcomponents).
To make it real we had to wait for a new release of Dagger: version 2.7.

Continue reading “Activities Subcomponents Multibinding in Dagger 2”

Building UserScope with Dagger2

In Azimo Android app we use Dagger 2 as a framework for Dependency Injection to make our code architecture clean and easy to scale. Like in our previous post we would like to share our experience so today I’ll show how to avoid issues and build custom UserScope which can be used in production app.

TL;DR

Custom scopes in Dagger 2 can give better control on dependencies which should live unusual amount of time (different than application and screen lifetime). But to implement it properly in Android app we need to keep in mind things like: scope cannot live longer than application process, process can be killed by system and restored in the middle of user flow with new objects instances.

Example source code is available here: Dagger 2 recipes: UserScope.

Continue reading “Building UserScope with Dagger2”

Dagger 2 on production — reducing methods count

Dagger 2 — fully static, compile-time dependency injection framework is a backbone of code architecture in Azimo Android app. We already know that with growing dev team clean code structure is one of the most important things in every project. Initialisation/usage separation, easier testing (unit or functional), better scalability —those are just a few of the benefits that come from use of dependency injection framework like Dagger 2.

Continue reading “Dagger 2 on production — reducing methods count”

Inject everything — ViewHolder and Dagger 2 (with Multibinding and AutoFactory example)

This post is a part of series of posts showing Dependency Injection with Dagger 2 framework in Android. Today we’re going to take a look at Multibinding and Autofactory and we’ll try to implement ViewHolder pattern with Dagger 2. Continue reading “Inject everything — ViewHolder and Dagger 2 (with Multibinding and AutoFactory example)”