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.

Wednesday, August 28, 2013

Google Play Developer Program Policy Update

On 23 August Google released a policy update concerning Play Store apps. Its most important points are:


Apps and their ads must not add homescreen shortcuts, browser bookmarks, or icons on the user’s device as a service to third parties or for advertising purposes.

and

Apps and their ads must not display advertisements through system level notifications on the user’s device, unless the notifications derive from an integral feature provided by the installed app. (e.g., an airline app that notifies users of special deals, or a game that notifies users of in-game promotions).

It basically means that icon and notification ads are from now on banned. If you have any existing apps that utilize them, you have to post an appropriate fix in 30 days or you can get suspended.

All major ad networks offering icon and notification ads are working on changing their API appropriately or they have already done it, having predicted this moment to happen sooner or later. I got emails from AirpushTapContext, Leadbolt, and Tap For Tap ensuring me that they are prepared for this situation and will publish new APIs soon.

So, is this change good or bad? From the user's point of view it's great. I hated those invasive ads and I'm glad they're gone. On the other hand, I know that some developers used home screen icons and notifications as main monetizaion techiniques. Without them their revenue will probably plummet and they might be less eager to create anything new in the future.

Fortunately, my only app that uses the banned techniques is Ad Showcase, which presents all kinds of ads offered by LeadBolt. I haven't decided yet if I'm going to simply unpublish it (since it was an experimental project anyway) or reimplement it using the new API. I was also considering adding notifications and/or home screen icons to my live wallpapers, since I couldn't find a good way to monetize them, but now I guess my dilemma resolved itself.

What do you think about the change? Is it going to influence your income? Let me know if you have something to share and remember to update your apps so that they don't get suspended.

Tuesday, August 13, 2013

Android developer interview: Johannes Borchardt from Droid-Blog

Here's another interview from the series. I hope you're enjoying them as much as I do.


Bartek: Tell us something about yourself. Who are you? Where do you live? What do you do in life?

Johannes: My Name is Johannes, I live in Munich, Germany. I'm a professional Android developer and founded an Android-only company, ANDLABS.

Bartek: When did your Android adventure start and how? Why did you decide to do it?

Johannes: I had my first contact with Android in 2008, when the first of my fellow students started experimenting with the SDK. When the HTC Dream, the first Android phone came to the markets, I was impressed and started focusing more and more on Android. At the first Droidcon in 2009, I then had my first public Android-related talk. I decided to go for Android because it was no risk at all. At that time it was obvious to us that Android was going to change the mobile game.

Bartek: How did you learn how to create apps?

Johannes: By using the web. At that time, Nicolas Gramlich's from anddev.org was (maybe it still is) the biggest Android developer forum. Since the documentation wasn't that good at the beginning, it was great to have this resource. I also read some books to fill some gaps.

Bartek: What books did you read?

Johannes: I used Android 2: Grundlagen und Programmierung by Arno Becker and Marcus Pant and Professional Android 2 Application Development by Reto Meier [Bartek: BTW there's an updated edition titled Professional Android 4 Application Development]. I didn't read Android books in the last year because they all cover more or less the same content. I prefer Reto's books though.

Bartek: What libraries/frameworks do you use?

Johannes: Since I already mentioned Nicolas, who is a friend of mine and also the maker of AndEngine, it's obvious that I have some experience using AndEngine. At ANDLABS we also use LibGDX though. For non-game projects, we use the usual set of libraries, such as the support libraries, google-gson and some Apache Commons stuff.

Bartek: Why did you switch from Andengine to libGDX? Could you make a quick comparison?

Johannes: We didn't switch, we use both. Our employees are more familiar with libGDX and it's easier to support multiple platforms with it. A comparison is difficult because AndEngine is an engine and libGDX is a framework. That's why we are currently also building an engine on top of libGDX.
I would say if one is trying to build a 2D game for Android only, it is very likely that AndEngine is the way to go. If it gets to lower level optimization or 3D, libGDX may be better.

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

Johannes: Usually ideas occur when discussing with my co-founders, our workers and designers. They almost never come up when I'm alone.

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

Johannes: The graphics in our games are usually hand made. Sounds are mostly taken from several free or paid resources on the web. If we don't find something suitable and have enough budget, we hire a sound designer.

Bartek: Where do you find a sound designer and how much do they cost?

Johannes: I never found a sound designer or a UI/UX designer using the web, in fact I also never tried. It's all about contacts.

Bartek: What other programming tools do you use?

Johannes: git, GitHub, Jira.

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

Johannes: About a year.

Bartek: How much are you making on your apps?

Johannes: We are a development and service company. Taking into account the revenue coming from this services, it's about 10k.

Bartek: Is 10k profit in dollars/euro? A month/a year? How many people share it?

Johannes: It's the EBIT in USD a month that arrives on my bank account.

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

Johannes: My currently published apps all are ad supported, some also offer in app purchases. My advice is that there is no silver bullet.

Bartek: Which ones of your apps have been the biggest success?

Johannes: I'd say it's been the AL Voice Recorder in terms of downloads, lessons learned and exceeding expectations.

Bartek: Do you use any marketing techniques or SEO?

Johannes: Yes. Again, it's crucial to know the right people. For example knowing your country's developer relationship manager may be of great help when you want to get your app featured.

Bartek: How exectly knowing the right people helps?

Johannes: Whatever it is. If the person in charge knows you, she or he will open your mail. If then you are showing a convincing product, it's likely to get reviewed or featured.

Bartek: What are your favourite Android games/apps?

Johannes: I think my most favorite game so far is Wind-up Knight. I think it shows how mobile games should be made in terms of monetization.

Bartek: What Android devices do you own?

Johannes: A Nexus one, Galaxy Y, Galaxy Nexus, Nexus 7, Huawei Ascend 330, some other mdpi Huawei whose name I forgot. And a Google TV box. We have some additional devices in our company like a Galaxy note 10.1 and a Nexus 4.

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

Johannes: I think, for time reasons, the only blog I read on a regular basis is the Android Developers Blog. I like to look through Stack Overflow every now and then. Everything else is problem related research.

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

Johannes: We are planning to release one new game this year and, if we are lucky, another one will follow.

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

Johannes: Don't rush.

Bartek: Where can people find you on the Internet?

Johannes: Droid-Blog (blog), ANDLABS (services), Google+.


I want to thank Johannes for his time and patience. It was great to learn the details of his professional approach concerning everyday work. I hope it was helpful to you as well.

As a quick update, I'm working on two small projects right now and I'll show them to you soon. There might be a little break from interviews for some time or they'll become less frequent, because other things that I want to write about have accumulated and I can't wait to share them as soon as possible.

See you next time and wish me lots of fun on vacations, because I'm leaving tomorrow for a sunny place with a nice beach.

Thursday, August 1, 2013

Android developer interview: Martin van Zuilekom from Cubeactive

I promised to give you another interview and here it is. I really like this kind of posts and I'll definitely try to get some more people to talk in the future. In the meantime enjoy your meeting with Martin- he definitely has lots to share.


Bartek:
Tell us something about yourself. Who are you? Where do you live? What do you do in life?

Martin: I’m Martin van Zuilekom a 32 year old software developer from the Netherlands. I’ve been developing software for the last 12 years now. Started as a junior developer and progressed doing just about everything related to software development like UI designs, programming and giving customer support. That reason behind that is the fact that I’ve been working in small teams where everyone has several tasks to do aside from their main job.

Bartek: When did your Android adventure start and how? Why did you decide to do it?
Martin: I’ve always liked to do hobby projects in my spare time. I just got a new phone and it was my first Android phone. I really liked Android and thought it would be fun to create a small app for it. The first app I made had to be something I wanted to use myself, the result was my app Wish l!st.

Bartek: How did you learn how to create apps? What resources were you using?

Martin: I actually had never programmed Java before. I had experience with a lot of other languages like C# and Delphi. But the hardest part of writing for a new platform is learning the framework. I’m one of those guys that learns best by starting to code, so I looked at the samples from the Android SKD and looked up some tutorials from the Internet and started making a few test projects.

Bartek: What libraries/frameworks do you use if any? Why did you choose them?

Martin: I tend to limit the use of libraries. Currently I’m using ActionBarSherlock, the Android support library and the Admob SDK. The reason behind those are backwards compatibility for my app. I try my best to make the app look the same on all of the Android versions I support. Of course the Admob library is for displaying ads.
I also use one of my own open source libraries called Inscription. I like to share useful code with other developers and put some of my code from my own library into this one. It’s a simple library to display information about your app, I use it for my credits dialog and change log dialog.

Bartek: Where do you take app ideas from? 

Martin: Well this depends. A lot of my ideas come from myself. I like to write apps that I would actually use myself. Sometimes an idea can come from using another app and missing features or wanting it to work a little bit different. Other ideas come from my users, they can give good feedback and help me decide future development of my apps.
For design I like to look at a whole range of designs. Ideas can come from books, posters, websites or other apps. They don’t have to be similar to my own apps or they don’t even have to be an app to give inspiration. For example I can look at books on architecture to look at patterns, the use of colors or shapes. And sometimes this will give me an idea for a design and I will get pen and paper and start sketching.

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

Martin: I create a lot of resources myself. For the more common resources, like action bar icons I will first look at the action bar icon pack from the Android developer website. If I can’t find a good icon there I have a nice royalty free icon pack I found on the internet from brankic1979. If those packs don’t have the icon I’m looking for I will make it myself. I think I’m lucky that I can do that myself. Although it can take me a long time to get an icon exactly right. Sometimes it takes a few minutes, but sometimes I will be working on it a few hours, tweaking until I’m happy about it. Other resources like the app icons, logos, banners, etc. I create myself. I Want them to be unique so I will not use stock graphics for those.

Bartek: What other programming tools do you use?

Martin: At the moment not many actually. I use GitStack and Sourcetree for source version control and I use the monitor tool from the Android SDK for working with the Android emulator. I also really like Notepad++, I use it for searching files and other tasks.

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

Martin: Well this depends. Because I work alone, I like to use small development cycles. Most of the first versions of my apps took about 6 to 10 weeks to develop. But those first versions were very basic and I keep adding features with every update. My goals is that every release should work fine on its own. Yes there might be features that can improve the app, but it should be a useable app on it’s own. For updates I take schedule about 2 to 3 weeks for programming and a few day’s for final testing an preparing the release (things like creating screenshots, artwork and writing a blog post about the update) If an update needs more time testing sometimes ask people on Google plus or other communities to test the next update. This will take some more time.

Bartek: How much are you making on your apps?

Martin: I’m not going to write exact numbers here. But it’s not much at the moment. I’ve started publishing my apps at the beginning of 2012. For most of the months in 2012 I earned less than $30,- each month. It a bit better this year but it’s still more about the fun of writing apps than actually earning money from them. I’m still working hard to earn enough money to buy an Android tablet so I can use it to test my apps on an actual Android tablet instead of an emulator.

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

Martin: My advice is, if you want to earn a quick buck do not start developing apps. Like I said before I’m not making a whole lot of money with my apps. Most of the money I earn goes back into my hobby, for example hosting costs for my domain, etc. At the moment I use Admob banners in my apps, have in app purchases for disabling ads and I have a paid pro version of my app. I get about the same amount of money from purchases on Google play as I get from in app ads. I am looking for other ways of monetizing my apps, I would like to be able to have all of my apps ad free in the future.

Bartek: Which one of your apps have been the biggest success and which has turned up below expectations?

Martin: My most successful app is Note l!st. People like the design and how easy it is to use. My widget linear clock is a bit of a struggle. I thought I had a cool unique idea for a widget and it took a lot of work to develop. But for some reason it just does not get the downloads I had expected.

Bartek: Do you use any marketing techniques or SEO?

Martin: A lot of my time goes into marketing my apps. I think it’s about 10-15% of my time working on my apps. I usually take a whole afternoon to get the word out when I publish a new release.

Bartek: Can you give us more details?

Martin: Marketing wise I try to limit my spending's. I don’t have much resources aside from the income the apps generate. When I release an update I will usually write a post on my blog, post the information on the Facebook pages for my apps and inform my followers on Google Plus. If it’s an important update I will also post on some Google Plus communities. I have also several treads on various Android forums about my apps. But to be fair aside from the XDA developers forum most of them don’t attract many new users. When I publish a new app or a big update I will try to contact Android blogs and inform them about the apps. Although 9 out of 10 will not write back, the ones that do will likely write a nice post on your app and can attract a lot of new users. But to avoid them being spammed on updates of my apps I limit writing to these blogs only for very important updates (once or twice a year).
Other marketing techniques I have tried are paid review and advertising on Android devices (Admob, etc.) I have mixed results with these options. They cost money so they need to give a return for your investment. I can say that the paid reviews have not attracted any significant new amounts of users in my case. When using ads I can see a rise in the number of downloads, but I still pay more money per user than I would earn with my current monetizing options.
I find it very important to care for my users and to keep their experience with my apps as good as I can offer. So I have always refused to add any questionable ads to my apps just for more revenue. I never used push ads or other advertisements that I feel uncomfortable with. I always ask myself if I was the user would I be ok with the way I monetize my apps. I feel that I create a trust relation with my users and that trust must be earned and maintained.

Bartek: Could you tell us what blogs you contact to promote your apps?

Martin: Well most of them don’t respond back. I do try Android Police sometimes, Droid-Blog etc., but I have not yet got a review on those sites (and a dozen or so more). Droid App of the Day did a review after contact, and AppEggs as well. Also AppsZoom reviewed my apps after my request. My apps also get reviewed by other bloggers from time to time, but usually they do this because they liked the app, I did not contact them for a review.

Bartek: What are your favourite Android games and apps?

Martin: You can find them on my blog:
http://martin.cubeactive.com/android-top-5-games/
http://martin.cubeactive.com/android-five-great-android-apps/

Bartek: What Android devices do you own?

Martin: Just my phone, a HTC desire Z.

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

Martin: Android Police, Wolframs blog and the Android Developers Blog. I also have a lot of great people in my Google+ circles that post the latest news and useful links.

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

Martin: I would love to be able to earn a bit more money from my apps to keep continuing spending a lot of time developing updates and ideas.

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

Martin: Be aware of the amount of work it can take to get your app known to the public. That is the hardest part of developing apps. Be critical about the quality of your apps. This is the only way you can stand out from the crowd.

Bartek: Where can people find you on the Internet?



Thank you Martin for sharing your experience. It's a great learning resource for me and others as well. Keep up the great job with your apps. Good luck!

I have to say that I get really excited every time I interview someone. They say that 90% of what you learn is watching great people and I totally agree. Getting to know other Android developers and their work techniques is invaluable and I hope it can give a boost to your work as well. I promise more great content is going to come soon. If you have a question you'd like to ask, post it in the comments section and I'll try to incorporate it in my next interview.

May the force of the green robot be with you!

Wednesday, July 17, 2013

App Dev Empire review

Some time ago I found App Dev Empire - a course promising to teach you how to create Android apps and, what is more important, make big money on them. At first glance, it looked highly suspicious to me. There were only positive testimonials in the comments section and numerous sites giving it raving reviews (just type "app dev empire review" into Google). Anyway, I decided that $47 is not that much after all and even if I didn't make a fortune, I could at least describe my experience on the blog. Also, I was secretly hoping that if I didn't like the course at all, they would give me the money back based on the 60-day money back guarantee with no questions asked, which they promise. Here's the whole story.

The App Dev Empire site looks great and almost makes you beg to let you pay to finally take a peek at the course. The promotional video is very professional and makes you think that if the actual content is half as good you might have found a gold mine. What is more, it claims to be able to teach you all necessary stuff without any prior programming skills. Seems unreal? Well, let's see...


So I finally clicked the "Buy" button, having that strange feeling in my gut that I was doing something incredibly stupid, but at the same time whispering to myself "come to me my precioussss"... When the transaction was complete, I was so excited to see my latest purchase that I almost fell off my chair. Unfortunately, here it was when a streak of disappointments began, slowly putting out all the enthusiasm that had been built up so tenderly before.

The first thing that you see is an upsell screen telling you that although the course itself is great as is, you might be interested in acquiring some additional source code helping you to understand it better and have a base for further experimentation. All that for only $47. Having just paid the exact same amount and not being prepared to put my hand in the pocket again, I politely refused the offer and proceeded to the long awaited members area.

I found and played the first video dying to see what it had to offer and heard the familiar soft voice of the guy from the promotional material. Time flew while I cherished every single word that I heard, instructing me how to organize my environment and tools. It seemed like minutes when the video was over. Or perhaps it was minutes. I checked it to be sure and in fact it lasted only 4:24. Well, I thought to myself, there are 11 more from which I can still learn highly valuable information helping me to become a successful app developer. Each one of them putting me a step closer to the final goal.

Then another thing happened. I saw the second video and it was only 2:19. No, there is no spelling mistake: two minutes and nineteen seconds. I got seriously worried that the beautiful game they sketched so vividly would never get done or perhaps appear magically with the soft voice guy saying something like: "We've omitted parts of the code to let you work on them yourself. If you have problems with it, you can buy the source code pack for only $47". Fortunately, I was wrong this time.

The whole course turned out to be a little more than 5h long. Actually, I wouldn't use the word "course". It's more of a screencast in which you see the creation of a simple game. I quite liked the idea that you see everything that is done, from installing the environment, through downloading and processing of graphics and sound resources, up to coding. Unfortunately, it also makes the videos unbearably boring. You just watch the code being written with a speed of an 80-year old who just found out how to use a keyboard. Wouldn't it be easier to just paste the code and then review it?! Sorry, I always get frustrated when I see someone type so slow. But I do have to admit - the game eventually gets created and works.

After watching the last video, I asked myself the question: "What did I learn from all this?". The problem was, I couldn't really tell. It wasn't a programming course, because they assumed you already knew how to get around in the programming environment and handle the code (sometimes quite complicated). They didn't show me any good libraries to automate the game creation process and make it easier and less time consuming. In fact, they used the most basic Android tools: drawing on a Canvas, playing sounds with a MediaPlayer and handling all logic (collisions, animations, etc.) by themselves.

What got my attention was that the code didn't meet any Java coding standard. Variable names started with capital letters or had underscores. Sometimes I wasn't quite sure if a name was referring to a class, a method or a variable. It made me wonder if the guy who actually wrote it had any Java experience. You just don't make such things... ever. Sometimes in the video you could see files with names written in cyrillic which only confirmed my thesis that the author was a freelancer from the eastern conglomerate. And when the soft voice guy pronounced "onTouchListener" as "onToughListener" he lost all the respect in my eyes.

I could probably give some more examples of the lack of quality like the fact that using image resources found with Google is probably illegal and that the game doesn't handle situations when there is an incoming call or the screen size changes. I have to admit, though, that making a playable game in such little time is quite impressive. Especially, taking into account the speed of typing and that some of the video material shows you how to install the programming environment. At the end of the course you should have a ship flying in the right direction, obstacles forming a kind of a tunnel and coins that you have to collect. Everything looking quite pleasant to the eye, including menus and backgrounds.

Besides video lessons, App Dev Empire offers 6 pdf reports. I didn't expect much from them after finishing the course, but they turned out to be not that bad. They describe the most popular app categories as well as monetization and marketing techniques. You shouldn't expect too much from them, since they are usually two to three pages long and use a couple of sentences to explain each point, but they do mention some useful sites and techniques (although you'll have to make some further research on them yourself). To me they seemed too general - almost like typing "android monetizing techniques" in Google and checking out the results.

There's another section on the App Dev Empire site called bonus material, but its content only says: "This additional bonus training module will be released 17 June 2013". It's mid July 2013 when I'm writing this, so I'm not quite sure if it will ever appear.

As you may easily guess, I wasn't quite satisfied with the course and I decided to make use of the money back guarantee. It required some effort, since the support email address on the site didn't work (I kept getting undelivered email notifications). I eventually managed to do it via ClickBank, which is a bigger platform App Dev Empire is sold through. You can find detailed instructions on how to get a refund in this YouTube video. By now, all the cash has already been transfered to my PayPal account and, quite surprisingly, I still have access to the course. Not that I want to go through it another time, but it was helpful while writing this review. Perhaps some day they'll upload the promised bonus material as well...

To sum up, App Dev Empire is not a great product. I'd give it a score of 3.5/10. I liked the form of video lessons and some material from the reports, but in general, it offered less value than an average Android book (which would probably be cheaper anyway). If you're willing to commit 6h of your time and $47, I'd still say to try it - especially with the money back guarantee. Just don't expect to become a millionaire afterwards or to learn how to program if you're a total beginner. You have to at least understand someone else's code and get around in Photoshop or some similar piece of software to be able to follow the lessons.

I hope this review will help you make the right decision. Especially that there are plenty of them showing the course in a totally different way. Feel free to share your own experiences, if you have any.

Friday, June 28, 2013

Android indie developer interview: Krishna Teja from Mad Logic Games

Here's the first interview I've done for my blog. I want to do more of them in the future inviting interesting people and asking them questions about their work. I hope you find it educating. Enjoy your reading!


Bartek: Please, tell us something about yourself. Who are you? Where do you live? What do you do in life?

Krishna: Thanks for inviting me. My name is Krishna Teja, the founder of Mad Logic Games, and my vision is to make it the world's best game development studio. I am a 19 year old student studying Computer Science at VNR Vigyana Jyothi Institute of Engineering and Technology, Hyderabad. I am just getting started with my Android programming career. As an independent Android developer I published 5 games on Play Store and currently making more. My aim is to turn my Android development hobby into a professional company.

Bartek: So, how did it all start? Why did you decide to make Android games and not for example iPhone games or some other kind of apps? I know that you used to make money through Internet marketing. What was wrong with it?

Krishna: I develop my games using a cross platform engine, so I can compile them for Android, iOS and Windows too. My games are already ready for iPhone and iPad but the only problem is I need a Mac and an iPhone/iPod to publish my games to the iTunes App Store. I don't have them yet since they are too costly and I don't have the money right now to buy them. Once I earn enough money, I will immediately publish my apps to the Apple App Store. I've spent all the money I made through Internet Marketing to buy my development PC and the Game Development tool called GameMaker: Studio.

Bartek: Can you tell me some more about it? Why did you choose this tool? What are your experiences with it? What language do you use to program?

Krishna: I have a paid license for GameMaker: Studio Master. Though it's costly, it's an amazing tool which allows you to create games very quickly and is very easy to learn. You can make games without any coding, just use the built-in drag and drop features. Also, once you develop the game you can deploy it to various platforms like Android, iOS, Windows, Mac, Ubuntu, Tizen, web (HTML 5) with a click of a button. Because of all these features I carefully chose this tool and feel it's been totally worth my investment.

Bartek: What other tools did you consider? Can you write Android native code?

Krishna: Yes, I can write Android apps in Java. A year back I started programming with Java and used a third party open source library called LibGDX. LibGDX is Free and Open source and can be used to create games for Android, iOS and HTML 5 too. But, it was very hard for me to make even a simple game. So I started searching for other tools and found GameMaker Studio.

Bartek: What language do you use to write games in it? What features do you think it has that makes it better than other tools?

Krishna: For beginners, you don't need to know any programming. GameMaker offers a Drag and Drop user interface which can be used to develop games. For advanced users, if you need to include any complex functions you can do that too using the special Game Maker Language. It's easy to learn and includes a lot of documentation. I personally use both Drag and Drop and GML language to write my games. I think it's better than any other tool because of its easy to use Drag and Drop interface.

Bartek: How much time did it take you to learn how to use GameMaker?

Krishna: A week to learn the interface and the basic functions. I was able to make games within minutes! GameMaker offers plenty of tutorials which are easy to follow.

Bartek: How much is the GameMaker version that you have?

Krishna: I have the GameMaker: Studio Master Collection license which costs $499.99. For those who want to get started you can use the Free version to build the game for PC and later buy Android license to publish it to Play Store.

Bartek: Where do you take your game ideas from?

Krishna: I come up with game ideas myself. I think of all the possible things I can do with GameMaker without much programming/graphics involved and then come up with some simple games. I show it to my friends and ask them if they like it. If I get positive feedback, I start developing the game.

Bartek: What about game resources? Where do you get you graphics, sounds, and music from?

Krishna: Graphics are mostly done by me. But my friend helps me too. Sounds and music are taken from others and are commercially free to use. I use Adode Photoshop and Illustrator to make graphics. My favourite site to get sounds and music is freesound.org.

Bartek: Do you also use some other programming tools? Source control (SVN, git?) or something like that?

Krishna: No, since I am the only one who programs I don't use any source control tools. This is what I do to quickly convert my idea into game:

  • Write down all the ideas you get onto a piece of paper/notepad.
  • Think of a theme and story for your game.
  • Check if the game can be programmed easily.
  • Now start developing a prototype for the game. (Simple game showing what you want to make without any graphics)
  • Split the programming into parts.
  • Try to program all the complex parts first.
  • Finally, assemble them and start applying nice graphics to it.


Bartek: How long does it take you to write a game?

Krishna: My first game took me a month, because I was still learning and didn't know about some functions. Other games took me about 2 weeks to develop.

Bartek: How many hours a day are we talking about?

Krishna: About 3 hours a day.

Bartek: How much are you making on your games now? Which one has been the biggest success and which one has been the biggest failure so far and why?

Krishna: I am making an average of $3.5 a day (a little more than $100 a month). My biggest success was my first game: Box Game. Biggest failure? Scary Prank Game, but I can't say failure because I published it recently and it needs some time to get downloads. Also Scary Prank Game was a rehashed version of Box Game.

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

Krishna: All my games are free. They don't have any In App Purchases (for now). I only use banner and interstitial ads in my games. Many of you will have different opinions regarding monetization. But my advice to indie developers who don't have any initial investment/budget for marketing is to make a game free and add ads or in app purchases. I personally feel that for Android ads work better than IAPs because of the demographic of the users. For iOS people are more likely to pay so use IAPs.

Bartek: What ad network(s) do you use?

Krishna: I only use AdMob right now. I will be adding Millennial Media Ads very soon.

Bartek: Interesting, why did you choose Millennial Media Ads? I have to say it's the first time I hear about it .

Krishna: Actually I didn't choose it. :P GameMaker only supports AdMob, AdColony and Millennial Media so I had no choice. I talked to their support team and they said they would be supporting PlayHeaven soon. So I am waiting for it.

Bartek: That explains much. So, what are your plans for the future? Are you making a new game now? Can you reveal some of the secret?

Krishna: Build more games for Android. After I start earning a steady income, I will buy a Mac and iDevices and port my games to the iTunes App Store. Yes, I am making a new game now. I will publish it next week if everything goes well. There are no secrets, whatever I do I post it to my blog. All you have to do is work hard to reach your goals.

Bartek: What's your favourite Android game?

Krishna: Tough question haha. Some of my favourites are Temple Run, Plants vs Zombies, Subway Surfers.

Bartek: What android device(s) do you own?

Krishna: I own a very low end phone LG P350. It can't run any new games. I use my friend's tablet to play and test games.

Bartek: Do you read some interesting blogs on Android development? Do you know any interesting sites that you could recommend?

Krishna: I follow www.nenoff.com, www.ziggysgames.com and yours, all other blogs are dead, no one actively posts. I also follow the forum http://forums.makingmoneywithandroid.com/ which has some nice informaton regarding monetization.

Bartek: What advice would you give to other developers (beginners and more advanced ones) - something that would have helped you the most if you had known it earlier?

Krishna: First decide what you want to make, a game or an app? Search for some development tools to make it. Choose the right tool. For 2D games I use GameMaker (paid) but you can also select free tools like AndEngine, PhoneGap, LibGDX. For 3D choose Unity 3D. Try to learn everything regarding the tool using freely available tutorials and youtube videos. Then start building a simple game first. Don't try to develop the next Angry Birds! Start small, you can later try complex stuff. First develop a simple game and publish it to Play Store. Wait for feedback/reviews, it will definitely inspire you to build more games.

Bartek: Great piece of advice! If someone wants to find out more about you and your games, where should they go?

Krishna: You will find all the information regarding my development journey at my blog: http://madlogicdev.wordpress.com and all my apps can be found here: https://play.google.com/store/apps/developer?id=Mad+Logic+Games
You can talk to me directly at krishnatejanew [at] gmail.com.

Thank you for the interview.

Bartek: It was my pleasure. Good luck with your games.


So, did you like it? Do you want me to do more interviews in the future? Let me know!

If you have something interesting to say and are willing to share your knowledge, feel free to contact me as well. I'll be glad to hear your story.