Friday, September 27, 2013

Income Report - September 2013

I recently got a message from one of my readers - Aman, asking me how much I'm earning on my apps and if I managed to reach the $1000/month level. I figured that I might share the answer with all of you, especially that the previous income report was published half a year ago.

I guess I have to disappoint you a little. The reason why I don't share the revenue regularly is not that I'm secretive, but it just doesn't change that much from month to month and it would be boring to read. I promise to do it more often though, so you can have a better idea of what's going on. Anyway, I'm definitely still in the junior leage when it comes to income. Let's take a look at the numbers together, to see what I mean.

At the bottom of this post you can see screenshots from my Google Play, AdMob and Airpush accounts. They should give you all the details you need to perform your own analysis. Here's the gist of it.

I earn about $16/month from AdMob (it used to be above $20, but it decreased in the recent days) and another $0.7 from Airpush (right now I only use it with Supermarkets in Milan as an experiment). Then there is paid apps revenue, but it's difficult to say how high it actually is, because I don't keep a detailed track of it. My rough estimate would be around $5/month. I also use LeadBolt for my Ad Showcase app, but its only for demonstrations purposes and it doesn't make me any money. To be totally honest, I should mention my adult apps (obviously outside of Google Play), with a total of around $5/month and decreasing steadily with time. When we add everything up, it gives us about $25-$30 monthly revenue.

If you take a look at the screenshots below, some values might surprise you, so I should probably add a few words of explanation.

CPM in Airpush is $4.82 which might seem high, but it was $2.82 only three weeks ago and it fluctuates a lot because of the small number of impressions, so you should take it with a grain of salt.

CPM in Toothbrush is $3.19 and I honestly can't explain it, since there's only a simple banner and not even a scalable one adjusting its size to the screen type.

My both comic readers have extremely low CPM and that's probably because I only show the banners for a short amount of time and hide them afterwards. In the near future I want to update them, fixing some bugs and adding interstitials.

What's interesting, the app that I spent the least amount of time on - Toilet Sounds, has the most installs and is making me twice as much money as all others in total. Perhaps I should write something more casual and with a larger target to become more successful and stop focusing on utility apps?

I hope this report will satisfy your curiosity and help you with your apps. I'll try to make another one around Christmas, unless some statistics change significantly in the meantime. Feel free to give me and other readers advice in the comments section, if you know how to enhance the app revenue.


Google Play Developer Console

AdMob

Airpush

Tuesday, September 17, 2013

Android developer interview: Mariusz Płaskowicki

Recently, I interviewed another Android developer with lots of experience in various fields as well as a handful of interesting ideas. He's sharing some of his knowledge with us, so make sure you read carefully not to miss anything. Have fun reading!

Bartek: Can you introduce yourself briefly?

Mariusz: My name is Mariusz and I live in Szczecin, Poland. For many years I’ve been working as a .NET programmer for serious companies doing very serious apps that would help other very serious people do their serious work. But then I decided I would like to do some less serious stuff and started to write funny Android apps. And now I’m the owner of a software company that writes games.

Bartek: When did your Android adventure start and how?

Mariusz: I have been interested in Android OS since its inception back in 2008. But I wasn’t able to do anything for it back then, because I didn’t have a phone and the emulator was really slow. I focused on Android programming in late 2010 when I got my first phone. I spent a lot of time writing a todo app that never got published. In the meantime, I also wrote a few other experimental apps that never made their way to the store either. My first app reached the store in 2012.
I was interested in Android because it seemed to have a great potential and I felt in the guts that it was going be succesful. But frankly I’d never thought that it was going to be that succesful.

Bartek: How did you learn how to create apps?

Mariusz: Mostly by reading the vogella blog and other blogs. I also used the official documentation a lot. And I was experimenting.

Bartek: What libraries/frameworks do you use?

Mariusz: The first third party lib I was using was greenDAO. It’s the ORM solution that I used in the todo app. When I started to play with writing games I started with AndEngine but quite soon I realised that this is not the best framework I could use. For new games I use libgdx and I have to admit that I’m really happy with it. I also plan to use Unity in near future but it might as well be a year from now.

Bartek: Why was AndEngine not enough for you and how is libgdx better?

Mariusz: AndEngine is good when you are starting to learn new things, but then it’s more like shackles on your hands. It’s less flexible than libgdx and there is much more additional tools and libraries for libgdx  Not to mention that libgdx is still being actively developed while AndEngine seems to be partly dead now. Don’t get me wrong - I’m not saying that AndEngine is bad. It’s a nice framework but libgdx is much better. And of course performance is much better in libgdx. It’s also easier to develop for libgdx because you can run the games on your desktop - it makes debugging so much easier and faster. Of course, you have to eventually check everything on an Android device as well but it’s like 1:20 ratio - one run on Android and 20 runs on your desktop.

Bartek: Where do you take app/game ideas from?

Mariusz: Well, my crap apps are basically rip offs. There is plenty of such apps. I added some missing features. For instance my lightsaber app uses the phone camera - it gives you a better feeling. I thought it could be nice, so I did it and it looks to me I was right.

Bartek: How do you choose the apps to copy and enhance?

Mariusz: Actually every app has a potential so it’s not that important. If you take a look at some example apps and then decide that they are missing something, or you think you could make them better, whether in terms of features or visual design then it’s a good candidate.

Bartek: Where do you get resources from (graphics, sounds, music)?

Mariusz: At first I was using OpenGameArt as a source of graphics. It’s fine but it’s hard to find consistently looking images so for my current game I’ve created all the graphics on my own. I’ve used Inkskape and GIMP to create graphics and Spine to make animations. It’s a bit hard when it comes to music and graphics but you can find some free sounds on the internet and some really good soundtracks as well. For my current game I bought some sounds from Dexsoft. I got some really amazing music from the incompetech. Kevin MacLeod seems to have a lot of cool music. I also got some music from arteria3d which btw is a really good source of great 3d graphics. I’ve got an account there and I plan to use the models for my next game.

Bartek: What other programming tools do you use?

Mariusz: I use, of course, Eclipse, hg, Inkscape, GIMP, Blender, Unwrap 3d and bits of Unity. And tools bundled with android that you can use to take a look how your code is performing, like monitor and logcat. I also use libgdx, gdx-setup-ui and TexturePacker. And of course an app that’s really letting me make some cool animations - Spine. I can honestly recommend it to any indie game developer that’s going to use 2d animations.

Bartek: I’ve never heard of Spine before. How did you find it and why did you decide to use it? Did you buy the full version?

Mariusz: Well I think I saw something about Spine either on Twitter or somewhere on libgdx site. I’ve downloaded the demo and was impressed how nice it worked. I knew they were going to launch the kickstarter campaign to add some additional features but didn’t want to wait until it ended to get my copy so I just bought it. And it’s a really great piece of software. I will have to update it to the newer version before I’ll start a new project though. They've made a lot of progress since I bought my copy.

Bartek: How long does is take you to make a single app?

Mariusz: It depends. Sometimes it’s a few days, a few weeks and sometimes a few months. On the current game I’ve been working for 7 months now, but I had some side projects, so overall it’s been about 4 months now. And I hope to finish it within the next month.

Bartek: Do you work full time on your Android projects or do you have another regular job?

Mariusz: I had a regular job but since April I’ve been on my own. I started a company and now it’s my regular job to write Android apps :D

Bartek: How much are you making on your apps?

Mariusz: I’d rather not answer that question ;). Let’s say that’s enough to make a decent living in Poland. I’m hoping that my next apps will bring in some more money though.

Bartek: Could you give us at least a very rough estimate?

Mariusz: Well, I know some devs are getting roughly 15-20$k per month from their Android apps, and that’s my target. But, for now, I’m roughly at 10% of that. Of course there are devs who are getting nearly nothing from their apps so even such income seems to be very high.

Bartek: How do you monetize your apps? Do you have any advice on it for others?

Mariusz: Well, all I do is display the AdMob ads. Nothing more.

Bartek: Did you try other ad networks/monetization techniques as well or did you just use AdMob and stuck with it since it worked good enough for you? Do you use banners or interstitials as well?

Mariusz: So far, I’ve been using banners only but for my new game I will be adding also interstitials, and I’m also planning to add some mediation and use other ad networks. Time will tell if that makes sense.

Bartek: Which ones of your apps have been the biggest success and which ones were below expectations? Why?

Mariusz: The biggest although most unexpected success was my broken display app. I was really surprised that people are downloading such crappy apps. At first, I was a bit ashamed that I did something like that, but then I read some nice comments and I’ve come to the conculsion that there’s nothing wrong in making such apps if it makes people happy.What was below expectations? the rest? ;)

Bartek: Why do you focus on making games then if those simple funny apps are so much more popular?

Mariusz: Well, those apps are popular but I have a feeling that games have a much bigger potential. And usually people play the games for a longer time than they use those apps. They might like broken display or lightsaber but they won’t get back to them quite often. On the other hand, they can continue to play games for weeks. Games also have bigger monetization potential. Players are more eager to pay for a good game rather than broken display. It’s also easier to make in app purchases in games. And, last but not least, they are so fun to create. I heard from several people who saw me working on Angry Caveman that the best part of creating the games is that you can just spend some time playing it and still call it your work. And I have to admit it’s true.

Bartek: Do you use any marketing techniques or SEO?

Mariusz: No. I use Pocket Change to drive user retention, but that’s all.

Bartek: How does Pocket Change work? Could you give us a short description?

Mariusz: Pocket Change grants their users some small rewards for launching the app or performing specific tasks. When you have enough points you can exchange them for an Amazon voucher, play voucher, Xbox 360, Nexus 7 or anything else they currently have. There is quite a lot of rewards waiting for users, some are cheap and some are very expensive. With Pocket Change users are more likely to get back to your app to get some more points. Broken display for instance grants you points for breaking the screen. You can get points after 1, 2, 4, 6, 10 and 12 broken screens.

Bartek: What are your favourite Android games/apps?

Mariusz: Hard to tell. I play many different games on my android devices. But if I had to choose I would say it’s Retro Racing on OUYA. I play it with my son. And of course my Angry Caveman :D

Bartek: What Android devices do you own?

Mariusz: I’ve got Asus Transformer, Samsung Tab 2, Samsung Galaxy S3, Sony Xperia neo V, and Samsung Ace.

Bartek: What Android blogs/sites do you read regularly?

Mariusz: Recently none. I visit vogella from time to time but generally I don’t have time to read anything. I’m too busy.

Bartek: What are your plans for the future? What do you want to create/achieve?

Mariusz: I’m now focusing on mobile games entirely. I wan to to finish the game I’m working on now, then I’ve got some more ideas for more games. They are going to be simple 2d apps for now, but I would like to make some 2.5D platformer some time in the future using Unity 3D. Time will tell if I am able to make it. I also plan to expand to IOS at the end of 2013 or early 2014. My current game will also make it to the OUYA. I’m also thinking about making the PC version and distribute it on Desura.
If you would like to see what it looks like you can take a look at the early screenshots on my blog. I’m also thinking about building some websites that could bring me some passive income. I even got some ideas but haven’t had time to put more attention to them. For now, I’m concentrating on bringing Angry Caveman to Google Play and to OUYA.  When I’m done with this, I will think about next steps, although I’m almost sure it’s going to be another platformer game - I even started to make simple prototype to test my ideas.

Bartek: What advice would you give to other developers (something that you wish you had known before yourself)?

Mariusz: Don’t write another todo app ;). But apart from that - don’t be afraid. If you want to write a game - just do it. Want to write an app - sit back and do it. If it looks crappy, then scratch it and start anew. Don’t be afraid of failure. Usually only small percentage of apps is succesful and makes any money but if you won’t try, you won’t succeed.

Bartek: Where can people find you on the Internet?

Mariusz: You can find my blog at http://software-workshop.eu/. From time to time I post something on Twitter: https://twitter.com/mplaskowicki . You can check out my apps at https://play.google.com/store/apps/developer?id=SoftwareWorkshop.eu.

Bartek: Thank you Mariusz for sharing your experience. I hope your game turns out great. I'll be glad to post some more information about it when it's finished. Good luck!


Tuesday, September 10, 2013

My new map apps and what you can learn from them

Some time ago a friend told me about App4Mi - a competition organized by city authorities in Milan. They just published an open data set at that time, including various information about the city, and wanted people to use it in their apps. I decided to make something as well, especially that there was €20,000 in prizes. I wanted it to be rather simple though, so I could complete it on time while having a full time job. After giving it some thought, I chose to create a map based app, showing playgrounds, dog areas, and didactical gardens. You can see the result - Green Milan, on Google Play.

Development process


I started out by analyzing one of the Android API demos featuring a simple map. I pretty much copied the whole thing, registered my app through the Google Developer Console (otherwise the map doesn't show) and learned how to add markers from the official documentation site.

Retrieving coordinates from the open data files proved to be the most difficult step, since they were in the Esri shapefile format I had not been familiar with. Fortunately, thanks to MyGeodata Converter, I was able to transform them into JSON, which I then parsed with a simple Java program, extracting only the pieces of data that interested me and saving them as binary files.

I didn't want to use Google's default markers, so I found a very nice set of pins on Devianart and adjusted it to my needs. Take a look at the thumbnail below. Aren't they pretty? I didn't know that Devianart was such a good place for finding free graphic resources. I will certainly visit it more often from now on.


I also didn't like that when zoomed out, markers clumped together being totally illegible. I noticed that their amount was causing the map to glitch as well. That's where android-map-extensions came in handy. Just look at the example below and you'll now what I mean.



I wanted the icon to look like the one from Google Maps. It's quite obvious that I was inspired by it, but I hope that the similarity will not get me in trouble. I made the colors a little more saturated than in the original one and I put the symbols of places marked on my map. The effect turned out quite nice, as you can see on the right.

What I failed at was providing 7-inch and 10-inch screenshots for the Play Store listing. I don't own such devices and Google Play Services along with maps don't seem to work on emulators yet. I found some hacks on Stack Overflow describing how to get around this obstacle, but they seemed outdated and complicated, so I decided to just wait for Google to update the emulator. I hope they will fix it in the near future. If you know a simple method of making tablet screenshots of map applications without using physical devices, please let me know.

Please vote


At the time of writing this post, there are still 10 days to vote for the best submission. If you feel like helping me a little, go see Green Milan on the Ap4Mi site and hit the "vote" button. You might want to register on ChallengePost anyway, because they host some interesting challenges with even more interesting prizes. I'll be infinitely grateful to everyone who supports me.


Yet another map app


While working on the App4Mi submission I liked the idea of a simple map app so much, that I decided to make another one based on the experience I already had. Thus, Supermarkets in Milan was created, doing exactly what its name says - displaying location of supermarkets in that Italian city. It might seem silly, but judging on my own observation, it is often quite difficult to find a food shop here. More than 50 people seem to share that view with me, because they decided to download it. It's not a stunning result, but the app didn't cost me almost any time and I found it helpful myself. I expect it to get to the level of a couple hundred active installs, which is not too bad. I took the coordinates and addresses from Risparmio Super, but their data was somewhat erroneous and I had to correct it by hand, which I think took the biggest amount of time.

Other than that, I decided to give Airpush a try and display interstitial ads on start and close. My CPM right now is $2.84, which is much better than most banners ever reach. We'll see how it goes when the paytime comes, but they seem to be rather reliable. The only thing I didn't like was their API, which doesn't allow loading ads before showing them (it's all done in one step). Because of that, the ad may appear a couple seconds after closing the map and I don't like it at all. I expect that they will change it in the near future.


I hope you liked this short postmortem and that it will help you with your struggles with similar apps. Once again, I want to thank all of those who went to Green Milan on the Ap4Mi site and gave me their votes. You are the reason I'm doing all this.

Friday, September 6, 2013

Is making Android apps for everyone?

If you were wondering if you are the right person to start making Android apps, you should probably watch the video below. Thomas Suarez is only 12 years old and he can call himself a developer already. Are his apps super good? Probably not, but they do well enough to get him a lot of attention and a TED talk. Check it out and if you want to read more about him, go see his site carrotcorp.com or his Twitter profile. If you are a lucky iPhone/iPad owner, you might want to try Thomas's Bustin Jieber game as well.


What I'd strongly suggest to all those who want to start their Android adventure is:

Start small

You won't create another Angry Birds at your first try and, let's be honest, it won't probably even be a very good app. Think of something really simple or use an existing idea and try to make it better. Be it another cracked screen, farting app, soundboard or quiz, at least you'll finish it and belive me, that's already a huge achievement.

Learn as you go

Reading all the books and tutorials you can find might seem necessary, but too much information at once only messes up with your head and makes you discouraged. Learn while working on your small project and you will acquire just the amount of knowledge you need. Apart from that you'll have a piece of working code to publish or go back to later.


Get some help

There's a reason why when you go to school they don't just give you books and materials and tell you to study them yourself. It's great to have someone help you when you get stuck and explain more difficult aspects of a subject. If you know some Android developer, ask them for help or advice. If you can't find one, team up with a friend who also wants to learn it or at least search for similar people on the Internet. Unless you want to cope with the same problems others had when they started and which are easily solved.

Show off your apps

Don't just throw something away because it's not perfect. It will almost never be. Internet trolls can be annoying, but there will always be people who will like what you do and let you know about it. Don't be ashamed to publish your apps. There aren't many things that excite me more than seeing new downloads every day, even if there are only a couple of them. You also want feedback from people with different devices, resolutions, and expectations. Make sure you use them to improve and avoid future mistakes.


Now, if you're still not sure if you can create apps, go rewatch the video and think again.