Droidcon Greece experience

Last month Thessaloniki welcomed the first Droidcon in Greece. It was also my first time in Greece, and I was fortunate to be invited as a speaker. Aside from the high quality of the conference itself, the organizers (special thanks to Eliza Camberogiannis ) did a great job of spoiling us. It started at the airport, where a taxi was waiting for me. On Droidcon Eve, the other speakers and I were given a bus tour of Thessaloniki.

Droidcon speakers in Thessaloniki, under the Arch of Galerius

Droidcon speakers in Thessaloniki, under the Arch of Galerius

We stopped at a Bougatsa shop around the Byzantine Walls and tried both the salty and sweet versions of the pastry; my vote went to the sweet Bougatsa with cinnamon, pictured below :

Sweet Bougatsa

Sweet Bougatsa

Before lunch, we visited a local market and tried some mezze (ham, cheese and the biggest olives I’ve ever seen.) Then we were treated to a seafood lunch where, again, we experienced that extremely good Greek hospitality and cuisine.

The talks I liked the most

Droidcon took place at Noesis ( ΝΟΗΣΙΣ ), a science park on the outskirts of Thessaloniki. All of the talks were interesting, but these takeaways were the most memorable:

All the talks were interesting , some were more memorable.

Damien Mabin, Google developer advocate and former game developer , gave advices for game monetization :

  • Even if an user spends st 1$ in your game it’s still more than what you would get from him watching ads in your game/app. As soon as the user spent money on your app, remove the ads, he gave you enough money. The whales (big spenders) still generate more revenue the average user who spends less than 5$. Duet cleverly uses this strategy.
  • Damien also noted that time-constraint challenges incentivize players to spend more time in the game; these challenges generate a nice surge in traffic from the same users. (This point applies to non-game apps as well.)

talk_google_damien_mabin_side

Developer and evangelist Svetlana Isakova of Jetbrains (editors of Android Studio) demoed Kotlin, Jetbrain’s homegrown programming language. Nicknamed “the Swift of Android,” Kotlin is considered to be less verbose but more readable than Java, and it supports immutability, nullable types and lambdas. The easiest way to start using it is by automatic conversion of Java file to Kotlin file, done with an Android Studio/IntelliJ plugin. Java can interoperate with Kotlin methods and vice versa. In one of my pet projects, I’ve found Kotlin to be very concise for POJO classes with setter and getter methods.

talk_kotlin

Josh Skeen, an instructor at Big Nerd Ranch, led a workshop on RxJava — something I was really looking forward to. Rx stands for Reactive, and you may have heard of Retrofit + RxJava in combination. Josh explained the fundamental concepts of Rxjava, a library for composing asynchronous and event-based programs by using observable sequences. We tried to solve his RxJava Koans in order to reach RXJava enlightenment.

talk_rxjava_josh

Savvas Dalkitsis from Shazam discussed how aspect-oriented programming can isolate code related to analytics and ads from your business logic. It reminded of our code base at Zalando, which uses a similar technique (tracking) for analytics.

Special kudos to the most productive speakers : two French men. Damien Cavaillès presented three talks and Damien Mabin did two talks.

As for my own talk (my second Droidcon presentation — I got to speak at Droidcon Berlin earlier this year), I focused on “App Fails and Retrospectives.” The topic didn’t quite fit the SDK track, which was where I appeared, in that it mostly offered failure-related anecdotes based on real-world Zalando experiences. Judging by the audience’s reaction, our “best” failure was the time our app was about to become the Editor’s Choice on Google Play, and on the same evening I had to revert to the previous app version because of an untested crash that was going to affect millions of users.

I came up with the idea of “epic fails” from an active Zalando group chat called “#guild-fuckup,” one of the most active of Zalando Tech’s +100 guilds. I found inspiration there the day before the Droidcon Berlin deadline, submitted the talk … and was accepted without sponsorship! I couldn’t offer expertise on trendy topics: Internet of Things, wearables, Android Auto, but failure and mistake-making was something I thought every dev or dev team could relate to, big company or small startup.

All Good Things come to an end

After the very last talk, we took a “family” photo and finished the event with a Greek dinner (of course).

Droidcon organizers and speakers

Droidcon organizers and speakers

Before leaving Greece, I bought a Terkenlis chocolate cake (tsourekia) for my team in Berlin. A Greek colleague recognized the cake and thanked me for bringing the best back from Thessaloniki. I thought it was the least I could do for all the hospitality I enjoyed there! It was definitely worth the trip.

 

 

How to change UI theme on IntelliJ and Android Studio

If you are tired of the default look or darcula theme of IntelliJ or Android Studio , you can switch to a better looking theme like I did. This is a very short process

idea-obsidian

IntelliJ with Obsidian.jar theme and darcula

1 Select your theme

color-themes.com has plenty of themes ( Sublime Text 2 , Monokai,) . Download the .jar file . Roboticket.jar is my current theme

 Import the theme

Import to IntelliJ or Android Studio by going to File -> import settings -> and select the  .jar file you downloaded.
Select All . press OK. Then Restart your IDE.

idea_color_scheme

Note : if you use darcula theme previously , you will notice the new theme is only applied to  the Text Editor. The light theme clearly contrasts

idea-darcula-roboticket

3 Appearance theme

On Mac , go to Preferences -> Appearance  . You can also use the shortcut Preferences -> search theme on the top left search bar
Next to Theme , Select Default . Or Darcula if you are using a dark theme .
Restart your IDE.

idea-appearance-dark

4 The final look

 idea-final

Roboticket.jar

 

 

 

Raygional 3.0 with notification

A user contacted me this year. Due to his visual impairment, he uses Android Talkback. He found Raygional useful for switching the system locale. He asked me if I could build with notification, so it can be easily accessed on the system menu.

Battery by MacroPinch is an app I find really useful. The app is really useful to indicate the battery charge level. I really like the notification. My inspiration for Raygional comes from Battery.  I reversed engineer Battery and I found for each level , there is 3 icons ( one for GingerBread, one for Honeycomb, one for others ) , so there are at least 300 icons just for the status notifications. The programming of Battery is not so difficult, the main attraction is the graphic . BTW I’m looking for graphic designers, anyone ?

Because Google Keyboard does a great job to switch the keyboard settings for message typing, I did not use my Raygional as often. With my day job, if I did not set timeboxed goals. It took FOUR months , that’s way too long. During the last few weeks , I started to get interested to update the app. Today I released Raygional 3.0, it feels nice to use the notification.

raygional30

The app is only compatible from Android 4.0 because the UI uses the latest updates . To make compatible from Android 2.1 , I have to import the Holo theme and ActionBar UI pattern , I’ll have a look at the latest Action Bar Compatibility which the Google ‘s answer to ActionBarSherlock .

 

Thanks Peter

 

Github library : Android-TextFontStyle

The designer studio where I work has a tendency to use special font in the text  because it’s eye-catching.

In others previous projects, I saw the font is applied programmatically. It’s difficult to maintain each TextView because you have to keep track in the java code.

For design purpose, I prefer to work in xml.
Style in Android works like Microsoft Word style : define a style and apply it to a TextView. Any change  to the style will be taken in account the TextView.

I hope more developers use typography as the app really stands out. Maybe Steve Jobs was right about the importance of typography.

And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, it’s likely that no personal computer would have them.

The library is available here.  https://github.com/raychenon/Android-TextFontStyle

screenshot