Google Dev Summit Indonesia
Yesterday I participate in Google Dev Summit in Indonesia. It was held in National Museum, near Monas. The speakers are googlers that comes from all over the world.
This post is an extension of what I live tweet at that event so it might not be complete but contains most of the things that I consider important and not know before the session.
One of the exciting things besides the speaker that comes from all over Asia
- Chansuk Yang from Korea
- Chris Cartland from USA
- Takuo Suzuki from Japan
- Jean Yen Taiwan
- Anirudh Dewani from USA
- Inge Wong from Singapore
- Yohan Totting from Indonesia
- Kyunghwan Min from Korea
- Melina Lee from Singapore
Is that the participant comes from not only Jakarta but Jogja, surabaya, semarang, bandung and … Bekasi!
The first session talks about android optimization, it talks about many things. The one that catch my interest is the performance of WebP (google new image format to replace JPG and PNG) and Glide (Google open source library similar to Picasso, very similar actually).
You can see the Webp comparison to JPG and PNG from this links
There are several kinds of file formats for images on the web. Primarily, web developers use JPG and PNG image files…www.andrewmunsell.com
Previously, we went over how the new WebP image format compared to the traditional JPG. One neat thing about WebP is…www.andrewmunsell.com
And for Glide vs Picasso comparison
The things that isn't covered in the Glide vs Picasso article is that you can link animation directly to Glide
Animation anim = AnimationUtils.loadAnimation(context, android.R.anim.fade_in);
And also Glide library needs android support v4 and the lib is larger than Picasso.
Google Play Games
Although I’m not a game developer, the second session for Google Play Games and is a bit more interesting for me. Since app gamefication is not a rare thing today you can implement some of the tips to your app.
In game basically you can categorized your user into 3 persona :
Competitor is someone who like to play games and be opened about it. Like to invite other people so they can beat them in the highest score ☺. To engage this kind of users you can create a leader board so they can compete with other people.
One of the best tips is that you should split the leader boards into all people and the people that this user knows a.k.a their friend. And then you sub categorized it into other board that depends on the content of your game/app.
Completionist are people who like to play the game but often didn’t complete it in one go. But they do tend to go back and complete the game.
For this kind of people you can use the Google Play Games API to save their progress. So when they do come back they can continue from the last time they play your game.
Another good things about using Google Play Games API that it provides a screen shots of the last time the user play your game. That way the user have a sense of continuation just by looking at the screen shoots.
Stealth is the most curious of the three persona. Because they do play the games occasionally but don’t consider them selves as Gamers.
For this kind of users you must actively engage them, because they won’t come back by them selves. One of the way you can do this is by creating a gift system, where users can send gift to their friends.
Another way is to create a limited time community event. For example in a Finding sheep game, if a user can only find 20 sheep/week. You can create an event where the user is ask to find 100 sheep in 3 days. And if the user manage to do that he/she will receive a big/unique reward.
Here’s another excellent tip from this session. You can use achievement to push your user to dig deep into your games/app. This is an important point not only for games, but for app too.
One of the hardest things is to teach the user how to use the advance feature of your app. You can do this through tutorial, but there will be so many tutorial and it takes time to create a good tutorial. With gamefied apps you can do this simply by creating achievement for the advance feature that you want to highlight. That way the user will dig deep by them selves to find out the feature and how to use it. Try it!
I also find out about the Nearby Connection API in this session, it was announce few weeks earlier in Game Developer Conference in San Francisco. It let you find nearby devices and connect them using wifi. It’s being used as controllers for multi-player gaming with Android TV. But if we can bring this API to the app world, there will be a lot interesting usage for this.
[To Be Continued]
There’s plenty of gems already in this session. But this one deserve it’s own section.
There’s a small segment in this section where Chris Cartland, the speaker mention about Developer console Alpha, Beta channel and Staged rolled out. We’ve known Alpha and Beta Channel for a while now, probably more than two years. So when he talks about staged rollout probably everyone thinks about putting your apps through your group of Alpha channel then promote it to the Beta channel and finally push it to production. Except when he explain it he mention some number like 100, 1000 and then all of your users. That pique my interest.
If you didn't know, stage rollout is about publishing your changes gradually. So it fit the Alpha-Beta narration. But the ultimate stage rollout is about publishing your app gradually in production. You can publish your update for 100 user, if everything is well publish for 1000, so on and finally publish for all of your users.
This have two benefits, first if you did something wrong, you can rollback fast and only a few user are impacted. Second, if you have a new feature that require server connection it can reduce the impact of the user hammering your system at the same time. There is another benefit for cloud user such as AWS, this kind of rollout could make your bill stay healthy and you can increace your server capacity in your own accord.
I ask a few friends that’s there at the session. Nobody seems to know about it. One even says that he’s been deploying more than 50 app updates and there’s no such thing in the menu. “Maybe it’s a special game dev console things”, he says.
So after the event is over I confirmed my suspicion to Chris along with that friend of mine. And he says, “No it’s for every body”.
“How long is it been there?” I asked again. “Since the very beginning.”, Chris answered.
Okay, this is big, this is very-very BIG. This is what every Android developer needs. Do you remember the time when you forget to change your MAP API key from dev to production, or forget to change one single icon or configuration that is specific to your dev environment, and not for production. To fix it you need to fix the small problem, increase your application version, upload it again. And wait 2–3 more days for your small fix to propagate to all of your users. While the old problematic apk still being delivered to your users.
This all can be fix by using staged rollout. No more embarrassment, no more users sending you angry emails although you know you already fix the problem. And the most surprising thing, it’s been there all along. For almost 2 years. I even joke that me and my friend is the only 2 person in Indonesia that knows about it.
So I ask Chris how to do it. Turn out, not like the Alpha & Beta channel where you can see it immediately. To do the stage rollout you need to upload your new APK, and instead of clicking the publish button you need to click the Down Arrow and select the Publish as staged rollout. You can see the complete guid here. So i think this is not Indonesia’s developer only problem, but probably globally.
I happened to meet Chris again the next day. And he says that they would do something about it. Probably giving some kind of notification in the dev console to the people that never uses stage rollout. Hopefully this can help lots and lots of android developers.
[To Be continued]
Okay, this last part is a bit difficult to write and I've neglect it for too long.
This after lunch session is presented by jenny from Taiwan. Undoubtedly the most cheery session in all day. She even prepare a quiz with a little present for everyone.
One of the most troubled some thing in Google Play is that the lack of communication to the dev. Either you are a new dev that wants to put your app on Google Play or a more experience dev that get their app suspended.
Jenny told about a few guidelines how to make your app didn't get suspended.
First, no keyword spamming. There area few developers that try somekind of SEO in the keyword field of the app. Don’t do this, it’s ineffective and can get you suspended from Google Play
Second, create a clear title without brand conflict. For example “Android Media Player” is incorrect, while “Media Player for Android” is correct. Because your app is not part of the official Android App.
Third, respect other people intellectual property. So if you try to make something from other people work, make sure you have their consent first. Use clear logo for your app. Don’t try to mislead people to think that your app is an official app by creating a very similar logo with another app.
Fourth, no pornographic content.
If you’re confused with something Google play now support live chat from the Google Dev Console. Just tap the question mark on the right top corner and select the chat with us button.
You might have know about the new Google Play Content Rating system. Where you are asked a few question and then the system will generate your app rating for ESRB, PEGI, IARC, etc.
But what you may not have know is that Google Play Introduce manual app review process a few weeks ago. The process didn’t take long. Only matter of hours not days. And this process only happens for new apps, no manual review for updating your app.
And the last talking point in this session is now you can transfer your apk. Maybe you want to split your dev account, or you want to transfer ownership of your app to your client. This can be done by transfering your apk. You can follow this link to transfer your apk, but the process is still manual right now.
This is the last session of the day. Turn out localization really matters. I have a friend that got a large surge of download from japan just by providing a Japanese translation, even though his apps is not targeted for Japanese people.
And for games, every country have it’s own preference. So changing the app icon from a masculin hero to a feminin one can have a great impact. You need to do a research for this localized market and do some customization the maximize the impact for your app.
That’s it! I hope this article helps you to find out new things in the Android Ecosystem.