Tuesday, January 28, 2014

Android indie developer interview: William Jamieson

Welcome to another interview from the series. Today, I'm going to ask William Jamieson from Supreme apps about his Android experiences and tools that he uses. He has achieved quite a lot with his 5 apps, bearing in mind that he is still a student. His new creation Yik Yak is apparently quite popular and hopefully will get even more downloads in the near future. Enjoy your read.



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

William: A sophomore at the College of Charleston. I live in Charleston SC. I play tennis daily, go to class then code.

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

William: This past summer when I developed Front Flash to allow people to take selfies in the dark. I did it because I wanted to take snapchats in the dark and there was no app that allowed me to do it.

Bartek: How did you learn how to create apps?

William: I knew how to code from classes at school and I taught myself the android SDK from reading online documentations as well as stackoverflow.

Bartek: What libraries/frameworks do you use?

William: I use no frameworks or libraries I write everything on my own to learn as much as I can.

Bartek: Where do you take app/game ideas from? How do you know if they have a chance to be successful?

William: I come up with the ideas for my apps by identifying something that I want that doesn't exist. Then I make it figuring if I want it then someone else would want it as well. So far the strategy has worked and all 5 of my apps have been successful.

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

William: I outsource all of my graphic design.

Bartek: Where?

William: I outsource my graphic design through fiverr. I heard about them through an internet forum.

Bartek: What's your experience with fiverr designers?

William: I love fiverr and have had great results with it. I pay only $5 for an item and if I don't like the end result I just hire someone else and worse case scenario I only lose a few bucks here and there.

Bartek: What other programming tools do you use?

William: I use git, Dropbox, as well as Google Analytics.

Bartek: How do you use Google Analytics in your apps?

William: I use analytics to monitor the apps growth across geographic regions as well as to see what time of the day the app is most frequently used.

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

William: My first app took around 1 week because I was learning so much as I was developing it. The next three only took around 2 days each and then my most recent one Yik Yak took a week because it was very complex.

Bartek: How much are you making on your apps?

William: I don't want to answer this, but more than I ever thought I would.

Bartek: How do you monetize your apps? What ad networks do you use if any? Do you have any advice on it for others?

William: My main source of revenue is AdMob banner ads followed by Widdit. My most recent app incorporates in app purchases as its only form of monetization, I am interested in seeing how this works.

Bartek: Why did you choose Widdit?

William: I chose Widdit because the app I use it on is an extension to facebooks app so my app is never seen at all. It was the only way I would be able to monitize my app.

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

William: Yik Yak and Facebook Photo Downloader where my biggest success. PhoneSpy was below expectations. Yik Yak was a sucess because it was a new type of social networking app that people really enjoy and Facebook Photo Downloader was a success because it was the first app that allowed you to save FB photos without leaving the app, until FB added the feature in their app. 

Bartek: Do you use any marketing techniques or ASO to promote your apps?

William: No, no techniques I just submit my apps to review sites and they typically get reviewed by a few and then the momentum from that just carries the app.

Bartek: What sites do you submit your apps to?

William: I have had sucess on AndroidTappMashable and AddictiveTips.

Bartek: What are your favourite Android games/apps?

William: Fun Run is my favorite game.

Bartek: What Android devices do you own?

William: Galaxy S3 and Note 10.1.

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

William: None.

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

William: My current focus is expanding on Yik Yak as much as possible because it has gained 30k users in the last week and I think it has a lot of potential.

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

William: Look for features in major apps that you would like to see added in the future then add the feature on your own.

Bartek: Where can people find you on the Internet?




What is to come on the blog in the near future? More interviews, new tools' descriptions and probably an income report, as soon as my Blobby Volley stabilizes in downloads and I manage to remove "Beta" from its name. Come back if you want to know the details.

Monday, January 20, 2014

Android indie developer interview: Mateusz Cicheński


After the long Christmas break, it's time to come back to my interview series. Today's guest is a PhD student at my university and he has just released a brand new Android game written in... C#. He's going to tell us how he did it, what technologies he used and why he chose them. I have to say that I had never heard about most of those tools before talking to him. I'm pretty sure that they will be surprising to you as well. Without further ado, here's what our q&a session looked like.


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

Mateusz: Hi, my name is Mateusz Cicheński and I'm from Poland. I'm currently doing my PhD at Poznan University of Technology and so I'm living in this city. Designing games is one of my hobbies and as most designers I have tons of ideas and just not enough time to implement them all.

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

Mateusz: It's the second question and I already have to give you a long story. I started last year, bringing an implementation of my prototype game from WPF (C#/XAML) to the native Android API. I used Open GL ES for rendering, but I was unhappy with the result. I decided that I need a different approach and reach more platforms with a single code base - I picked libgdx for this purpose and quickly made a new implementation which was available for PCs, Linux and of course Android. This app was available for nearly 3 months and because I was doing different things I just decided to take it down, as I was unhappy with the download rates. Now I'm giving Android yet another chance using a different toolset - MonoGame and Xamarin.Android - but I still need more time to learn the platform.

Bartek: What was your first app? Could you describe it shortly?

Mateusz: I think that my first fully finished game was an implementation of NotChess (http://homepages.di.fc.ul.pt/~jpn/gv/notchess.htm) made as a project for one of the courses at the university. It's basically a board game with only rooks and knigts, however the rooks can only move by one field. Also, after moving a given piece it will change to the other one (the rook will turn into a knight and the knight will turn into a rook). Obviously your task is to eliminate the pieces of your opponent from the board. You can see what it looked like on this page: http://warsztat.gd/projects/notchessthegame

Bartek: Why didn't you just leave the app on Google Play and decided to take it down instead?

Mateusz: Here is my reasoning: the app I made for Windows Phone 8 was made totally from scratch and I didn't reuse the code from the Android port or the initial prototype written in C#/XAML. What does it mean? First, I included a lot more features in the Windows Phone 8 app - among others - Azure high scores, Skydrive integration, MS Live authentication, support for proximity devices (e.g. NFC tags, tap&share levels), and even the gameplay evolved. This meant that the Android version was missing all those functionalities even though it had the same name for the app. But that's not everything - the actual visuals were also updated and I really enjoyed the much cleaner style I was able to make using the Windows Phone SDK when compared to the Open GL version from Android. Have you ever seen a game made by the same developer on two different platforms that looked totally different? And lastly - the code for WP8 was written in C#, while the Android version was written in Java - if I wanted to support both versions simultaneously I would need to update both code bases every time, which is not ideal. That's why I decided to look for a different solution that will let me reuse most of the code in C# and that's how I came across MonoGame. Also, the game wasn't very popular on Android, not even reaching 100 downloads, so I thought that I should avoid confusing users, who might have both a WP8 device and an Android device (phone + tablet for instance) and download the game on both machines. Taking all of that into account I decided to go for the Windows Phone with this game and take the Android version down.

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

Mateusz: I have a pretty solid programming skills background from the lectures at the university and for the last year I've been developing apps for Windows Phone 8 using technologies I was familiar with (C#/XAML). Mainly as a reference I'm using documentation and channel9.msdn.com for those projects. If we talk about Android, I'm currently using the official developer guides and also documentation from Xamarin.Android, but nothing in particular.

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

Infinite Snake
Mateusz: Currently I'm using MonoGame (open source implementation of XNA 4.x) and Xamarin.Android to run my games on Android. So far I've made one game using this combo (Infinite Snake) and even though I'm not 100% happy with the result, I'm quite satisfied with the simplicity it took me to make that game using these tools. There are still things I need to reconsider and pay more attention to, like the app lifecycle, which is totally different when compared to Windows Phone (and I believe iOS as well) and actually makes it a little bit harder to keep everything user friendly and smooth. I do hope that with more and more projects done I will just keep getting better.

Bartek: What are your thoughts on Xamarin.Android? Would you recommend it to other developers? What are its main advantages/disadvantages compared to libgdx?

Mateusz: Xamarin.Android is just used as a tool in the pipeline to generate an Android version of the project. The question should be about the comparison between libgdx and MonoGame - the latter one being just an implementation of XNA 4.x. This basically means that if you are familiar with XNA (or even have an existing project that you would like to port), then you don't have to learn it all over again. A prime example would be the game Bastion by Supergiant Games, which was ported to the other platforms using MonoGame as it was written originally in XNA. You still probably will find some differences, but mainly you shouldn't feel lost. I cannot tell you much about it as I just started using it, but it seems to be a pretty solid option to use. From my point of view it was more natural to use it - C# vs Java - but probably you can achieve the same results. Also, it is very easy to start with some 2D games in XNA/MonoGame, which wasn't the case when I used libgdx (so I went straight for Open GL there), but that's my subjective opinion.

Bartek: Where do you take app/game ideas from? How do you know if they have a chance to be successful?

Mateusz: I steal them. No. I don't! :P
Basically, the ideas come to my mind in different situations. It's like when you see a movie or listen to a song and you think "hey, that's cool, I could use it in my game". From time to time you just figure out something that might be cool without any particular "direct" motivation, but it's always based on what you've experienced yourself. However, it's not just making yet another Candy Crush Saga clone - you extend the idea, exploit its strengths or try to balance it out to be more enjoyable. Every now and then you innovate, think about things nobody has imagined - and then you become a millionaire selling your brilliant game or you just live your life unaware that your idea was worth all that money.
For me it's a hobby and whenever I think about something that I believe might be fun, I try to implement a prototype. To make a final game you just have to take the right prototypes and merge them together so they make sense. However, I can't tell you if those prototype ideas will be successful. I think that this will be verified by the players who picked your game - if there are not many, then either the idea was not that good or you should think about improving the way in which you present the game content and talk to the players - if they can't understand what they have to do, then they won't play the game. Which doesn't mean that you have to forget about your super crazy idea for a RPG dungeon puzzle rogue like a platform game controlled with just one tap - but it's much harder to make the player understand his actions in such mixed genres when compared to games that are good at one thing, e.g. puzzle or platforming, so you have to spend more time to think about your design. At least in theory. ;)

Bartek: Where do you get resources from?

Mateusz: I've been making soundless games so far, but if I put some sound effects or music, I will record them myself, because I have some basic skills playing the piano and the guitar. If I manage to think about bigger production, then probably there will be a person responsible for that part.
I also make graphic assets myself - they are not very complex and don't require much skill. Most of my games use squares or circles as the representation of the game state, so I guess almost anyone could provide me with some graphic assets with enough quality. This doesn't mean that I wouldn't like to improve, but for prototyping purposes I believe that I don't need anything looking great. (which I won't recommend to anyone - that's probably why my first Android game had almost no downloads - you have to appeal to potential player so he will actually download your game!)

Bartek: What other programming tools do you use?

Mateusz: I'm using Team Foundation Server, which is a versioning system from Microsoft. However, depending on the project I've been switching to git or SVN. For my graphics I'm using Adobe Illustrator (an overkill, I know) and for music I would be using Cubase which I got with my external sound interface. For programming I'm using Visual Studio 2013 and Resharper, plus obviously Xamarin.Android and it's Xamarin Studio.

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

Mateusz: It depends on how complex the game is and how much time I can spend on developing it each week. Infinite Snake, for instance, was started at the beginning of this year and after three days I had the first version on Google Play available to download. However, it's just a classic snake, so I didn't even spend time on designing the gameplay. My other projects take me from 4 to 8 weeks to accomplish, however I'm publishing them only if I'm satisfied enough with the result. :)

Bartek: How much are you making on your apps?

Mateusz: From Android - nothing. I still haven't got enough time to figure out how to configure some ad providers in the framework I'm using and I decided to use my time to make a useful app rather then "useless, but with ads" if you know what I mean. My Windows Phone projects are not bringing much revenue either - I do support it with ads, but because of the low volume of distribution I get around 4 PLN (~$1.25) per month from them. However I'm taking part in Nokia DVLUP campaign, because they offer some great rewards just for being with them and creating apps for Windows Phone.

Bartek: Can you say some more about the Nokia DVLUP campaing? What is it exactly?

Mateusz: Nokia DVLUP is a reward system which tries to help developers become more successful. How? They give you a lot of challenges that you can complete for which you get XP points and the same amount of PTS (just points ;) ). The XP is used to show how long you have been with the program and how many challenges you completed. However, the PTS is used to get rewards - from coupons to popular shops, through accessories for your mobile device, to such great rewards as XBox One or Lumia 1520. You don't have to pay anything to be a member of the program, and if you make apps for WP8 and they meet the requirements for the challenges - you can benefit from it. Obviously you cannot just publish million apps without any functionality, but on the other hand they post updates about different APIs and tutorials to help developers create better apps. You can also choose as a reward a consultation about your app to improve it and bring even more users, or you can use the points to promote your app with ad campaigns. In other words - a lot of great stuff! :)

Bartek: Where do you find hackathons/contests to take part in?

Mateusz: The InternAppHack was actually organized during my internship at MS and it was just a great opportunity to jump into mobile development for Windows Phone. However, the rules were a little bit different from what you can find in most hackatons, as you had about 1 month to create your app. They provided additional lectures on WP8, Azure and SkyDrive and so the whole event was really interesting. As you can see the longer period to submit a project to the competition let me create a better user experience and improve the game a lot, so I try to avoid time-restricted hackatons in which you have 1 or 2 days to create "something". Quality over speed and quantity. I prefer to spend time polishing the idea rather than fast-coding the game.

Bartek: How do you monetize your apps? What ad networks do you use if any? Do you have any advice on it for others?

Mateusz: I'm using Microsoft Advertising for Windows Phone and used to employ AdMob for Android. Haven't looked into the market much so I can't tell you if these are the best available ones.

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

Mateusz: So far the biggest success was Squared for Windows Phone, which was awarded 3rd place in a hackaton amongst 48 other submissions. I'm still waiting for Android success and I'm currently working on some ideas that I hope will be interesting. For the apps that are below expectations I think it would be Squared again - it was the game I firstly made on Android, but didn't get much attention and I was unhappy with the visual part of it, so I decided to take it down. Implementing it for Windows Phone was just an opportunity which turned out so well that I decided to make some more projects for that platform. Now I'm trying to figure out a way of developing for both platforms at the same time - fingers crossed for the results - but it's pretty hard without marketing yourself.

Bartek: Do you use any marketing techniques or ASO to promote your apps?

Mateusz: Not really. I just send them to my friends (using Facebook, forums, e-mails etc.) and try to keep project updates on warsztat.gd. They are purely for fun and to learn new things - maybe someday it will be my way of living, but first I want to finish my PhD. :)

Bartek: What are your favourite Android games/apps?

Mateusz: I don't use Android on a day to day basis. I used to have HTC Desire with Android 2.2 (which was pretty unlucky, because full Open GL ES support started from Android 2.3 and I really didn't want to write low level things during my development), but now I have Lumia 920. This honestly doesn't change much, because I'm using my phone for what it was designed for - calls and messaging. If I play some games they are just random things found in the app stores, but I just don't have enough time to enjoy myself playing on a mobile device - I prefer playing games on PC if I can choose.

Bartek: What Android devices do you own?

Mateusz: Currently none. I used to have HTC Desire and for development I'm borrowing my moms' Sony Xperia J. And of course I have the emulator! ;)

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

Mateusz: None, but I don't read much about other platforms either, so I guess I'm not favouring any of them.

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

Mateusz: First I want to finish my PhD. After that we will see what future holds. This classic job interview question I will always fail to answer: "What will you be doing in 5 years?". ;)

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

Mateusz: Never ever assume that documentation is right and emulator is perfect - test everything yourself on the real device, as it is surprising how they are different from emulators. And in general, it's always better to test things in real life, because then you know for sure and you can avoid unnecessary complications. Which is not that easy with so many Android devices... And actually one of the bugs I found in Infinite Snake was not occuring to me - I had to debug it remotely with my friend over phone describing what happens on his screen... terrible! But the more you know the better you can prepare for next time.

Bartek: Where can people find you on the Internet?

Mateusz: I mostly use these channels:
Facebook: https://www.facebook.com/mateusz.cichenski
YouTube: http://www.youtube.com/user/hrkm1
Soundcloud: https://soundcloud.com/hrkm
Google Play: https://play.google.com/store/apps/developer?id=Mateusz+Ciche%C5%84ski
Windows Phone Store: http://www.windowsphone.com/pl-PL/store/publishers?publisherId=Mateusz%2BCiche%25c5%2584ski



I hope you liked the interview and some fresh views on Android and Windows Phone programming. Perhaps it will encourage you to look into other platforms as well (if you aren't already publishing for them). I'm thinking about porting my Blobby Volley to work on other devices as well. It's getting more and more downloads every day, so maybe Apple and Microsoft fans should be given a chance to play it as well. For now, there are still a lot of bugs to fix, but almost 2,000 new users every day make me believe that my work is actually worth it. More stats will be published in one of the next posts. Stay tuned and come back for another piece of content in about a week.

Monday, January 13, 2014

Programming Mobile Applications for Android Handheld Systems on Coursera

I just wanted to let you know that there's another Android course on Coursera called
Programming Mobile Applications for Android Handheld Systems. It's targeted at more advanced students than the one I wrote about previously: Creative, Serious and Playful Science of Android Apps. It requires the knowledge of Java and optionally also some background in mobile development. The course is totally free, starts on January 21st and lasts for 8 weeks. It will cover subjects such as: the Android development environment, application fundamentals and lifecycle, permissions, fragments, intents, user interface, notifications, broadcast receivers, AsyncTasks, networking, graphics & animation, multitouch, gestures, multimedia, sensors, maps, data management and content providers. As you can see, there's quite a lot of material, so make sure you have 3-6 hours a week to spare. You can also follow the course at your own pace and skip the tests and assignments, but this way you'll not get a certificate at the end. Anyway, I encourage you to give it a try. Coursera courses are of very high quality and I expect this one to be great as well. Watch the video below for more details or just go to the official site, read more and sign up!


As to my Blobby Volley game, it has 5,114/13,382 current/total installs and it gets downloaded by more than 1,600 users every day. It's definitely my biggest success so far and I can't wait to learn what's going to happen with it in the near future. It has made me a little over $30 so far, but this amount is increasing fast and I'm sure it's going to grow even more. I've just published new bugfixes, and I implemented Ad Network Mediation to work with Airpush, Leadbolt and AdMob interstitials. I wanted to include AdBuddiz as well, but their API turned out to be somewhat difficult to integrate with the mediation API. I've already spoken to to one of their staff and they assured me that they would fix this in the new version. As there are no official mediation adapters for any of the networks I used, I had to write my own. There's almost no information about it on the Internet, so I'll try to describe it in detail in one of the next posts.

What else can you expect to appear on the blog in the near future? I'm planning to publish some more interviews, financial reports from Blobby Volley and my other apps, including CPMs from various ad networks and a new series of articles describing or comparing various development tools. Stay tuned and may the year 2014 be awesome for you!