Showing posts with label my apps. Show all posts
Showing posts with label my apps. Show all posts

Saturday, April 4, 2020

Quarantine updates

I've been sitting at home with my kids for a several weeks now and it's been a difficult time for me, but a couple of interesting things happened that I want to share with you.

First of all, Blobby Volley got featured in an article on GamesKeys as an underrated arcade game to play. I never contacted them, so it was a nice surprise to find out that people liked my game. I recommended Find a Way to them as well and they might write about it in the future.

I bought Affinity Designer and Affinity Photo when they were 50% off. They should help me make better icons and graphic resources for my apps.

People have been writing to me regarding my apps. I made a couple of bug fixes in Unity Ads Stats because the numbers were incorrect in some rare cases, as one of my users pointed out and helped me track the issue. Also, a couple of months ago I made a small app for my brother-in-law, who is a forester. It was supposed to help him count trees and estimate their volume. I made a simple prototype and published it on Google Play as a beta, so that it was easier for him to install. As it turned out, someone else found the app, started using it and came back to me with feedback. I couldn't help myself and I implemented some of the suggestions. Perhaps it's a sign that I should polish it a bit and publish a final version?

When it comes to the promotion of Find a Way, I didn't do anything new. I'm still considering paying a small amount for ads on Google and Facebook, just to see how they work and how many users I can get with them. It's hard for me to start though, because I don't even know where to begin.

I also forgot to mention that I started working on a new app for my wife. She has a Facebook group and a newsletter with events for children and parents. I was thinking that the app might be useful, because browsing and filtering Facebook events or emails is very inconvenient. I already made a small prototype using Firebase Realtime Database. It looks promising but I'm not sure how to add events to the database in a user friendly way, so that non-technical people can do it.

To sum up, I had a rough start into the quarantine, but I've managed to organize myself well enough now to be able to put in some hours into my apps. I still get very excited about them, to the point where I can't sleep. I might be spreading myself thin though, with all those little changes and improvements that I do to all of them. And I'd like to improve controls in Blobby Volley too. We'll see what I'm actually capable of soon...

Monday, March 25, 2019

Your app has been removed from Google Play due to a policy violation...

That's the content of an email from Google I found in my inbox the other day. It also contained the following paragraphs:


Issue: Violation of Usage of Android Advertising ID policy and section 4.8 of the Developer Distribution Agreement

Google Play requires developers to provide a valid privacy policy when the app requests or handles sensitive user or device information. We’ve identified that your app collects and transmits the Android advertising identifier, which is subject to a privacy policy requirement. If your app collects the Android advertising ID, you must provide a valid privacy policy in both the designated field in the Play Console, and from within the app.

I was scared at first, but then I used a free App Privacy Policy Generator to create a Google Docs document with the policy. After that I added it to the Google Play listing and to the app's menu. After publishing a new version of the app, it has become visible again. I'm still waiting for Admob to start serving me ads though...

Anyway, I hope this helps if you have a similar problem.

Saturday, August 4, 2018

A new project

cat & mouse
I more or less finished updating my metro apps and now the time has come to start thinking about something new to work on. I decided that I'd like to make a puzzle game, because it's fairly easy and it shouldn't take too much time. The game I'd like to clone is Cat & Mouse. Its rules are simple: you just have to create a 3x3 map using a set of 9 tiles and following a set of rules for each level. There are 48 levels in total but it shouldn't be too hard to come up with new ones, should I decide to do so. I already coded up a solver a couple of years ago when I had too much free time and nothing better to do. It can even make images of solutions and save them as jpg files. I'll keep you posted on the progress. Mind that it won't be blazingly fast.

Other than that, I'd like to refresh my Facebook Photo Gallery app on CodeCanyon, because the images in the description don't work anymore and the app itself got somewhat outdated. I'd like it to use Kotlin, WorkManger instead of SyncAdapters, Room and perhaps also Coroutines. I'll be upgrading all the items one by one when I won't be working on the game.

I also noticed that the Unity Ads API has changed and my Unity Ads Stats app won't be able to get the old access token that it needs, so I had to take it down from Google Play. Hopefully, I'll be able to fix it in the near future too.

As you can see, I'm not bored at all. In fact, I have a pretty busy time in front of me. Keep your fingers crossed so that I complete all of my projects. I'll be letting you know when I reach a milestone in any of them. Until the next time.

Sunday, January 7, 2018

My new app: Unity Ads Stats

After finishing Blobby Volley multiplayer, I decided to go back to my Android roots and I made a simple app displaying Unity Ads statistics: revenue, impressions, CMP, fill rate, etc. It was a small two-month project, in which I had a chance to use Kotlin, Room, RxJava 2, Retrofit, MPAndroidChar, Facebook Audience Network, and adaptive icons. Check it out on Google Play Store. I hope it's as useful to you as it is to me.

Here are some screenshots, which also reveal my miserable Blobby Volley income, if you're interested. CPM is quite high though. If only I had more people playing...










I'll probably not be taking up any new projects in the near future because a month ago I had a son born and he is quite skilled at consuming large amounts of time. I may come back to some of my older apps and try to polish them a little. We'll see.

Saturday, February 18, 2017

Facebook Photo Gallery on CodeCanyon

They accepted my Facebook Photo Gallery on CodeCanyon! I'm really proud of my work. So far, it only has a couple of sales, but it's been less than a week since it got published, so I still have high hopes for the future.



After they'd rejected my first submission, saying that my documentation was a little lacking, I added a Quick Start Guide along with some screenshots. Apparently, it was enough to get through the second round of reviews. You can read my thread on the Envato forum to get more helpful tips from other people who got their submissions rejected:
https://forums.envato.com/t/the-documentation-is-a-little-lacking-next-steps/89750

So, what does my app do? It lets you transform Facebook albums into a beautiful photo gallery. Just pick a Facebook page (it can be your own profile) and the albums you want to show in the app (you can filter them by name, id or date). Photos will get synchronized with the app and they will continue to stay up to date, displaying a notification whenever new ones appear.

As to the technical details, the app uses some pretty slick stuff like SyncAdapters, Material Design, Immersive Mode, Facebook Audience Network ads, Facebook Graph API, RxJava 2, Moshi, Glide, JUnit 4, Mockito. It might be worth buying just for the sake of learning how to use some of those libraries.

Here are some promotional images, if you're lazy enough not to go to CodeCanyon to actually see my app there:










If you feel like giving me feedback on the app or just leaving a comment on CodeCanyon, please do. I'll keep you posted on how the sales go. Keep your fingers crossed :)

Tuesday, February 7, 2017

Envato Market: The documentation is a little lacking

The title phrase will haunt me for a long time. And here's why...

I managed to finish my Facebook Photo Gallery app that I wanted to publish on CodeCanyon. It took me a bit more time than expected, but still I was quite proud of it. However, it turned out that they required you to upload numerous resources along with your code: a thumbnail, an inline preview image, screenshots in specific dimensions, promotional materials, documentation, etc. Slightly discouraged that my work was not yet complete, I set out to prepare the missing artifacts. They weren't easy to produce, because I'm not a professional designer nor copywriter, but eventually I was able to achieve results that satisfied me. I gathered the code and all the new materials, and I finally hit the upload button.

Happy to see my app in the store, I was disappointed that it wasn't there immediately. I had to wait - I thought, and so I did. A day passed, then a second one, and a third one. On the fourth day I got the following email:


You're nearly there!

Hi Bartosz Wesolowski,

Thanks for your submission.

‘Facebook Photo Gallery’ isn’t quite ready for CodeCanyon. But don’t fret, we’d love to see you resubmit after making the changes outlined by the reviewer below. When you’re ready, you can upload your changes here.

Here is the comment from your Envato Quality team reviewer:

The documentation is a little lacking.

Most importantly, remember that buyers may not be technically inclined. They may just be looking for an item to drop into their existing code base. Also keep in mind that a typical user won't really know about all the features your system brings to the table. With them in mind, you should also look into providing a quick start guide of some sort. It need not be long: a short one will do.

You can use a premade template or the Documenter tool for your documentation, both linked below:
http://themeforest.net/forums/thread/the-documenter/40757?page=1
http://themeforest.s3.amazonaws.com/108_helpFile/Template.zip

We look forward to reviewing your submission once you’ve made the changes!

Regards,
Envato Market Team

Still have questions? Check out our Help Center.

P.S. The team have invested considerable time in reviewing and providing feedback on your submission. If we feel that you have not invested enough time in making the required changes before re-submitting, this may be considered misuse of the review process. Where continued misuse of the review process is identified, your submission rights may be restricted or suspended.



My first thought was that it was nothing serious and that I would fix my documentation quickly and re-submit. But wait, what was there to fix? They actually didn't say it! To make things worse, after browsing Envato Forums I found out that the message I got was just a generic template they were sending to many people.

Out of my frustration, I created my own thread on the forum and I filed a ticket to Envato Market Help. In return, I got some help from my thread (but not much), and the following response from Envato Market Help:


Hi Bartosz,

Thank you for contacting Envato Help, my name's Katherine and I am more than glad to assist you today.

Rejection could happen to all of us and no one really likes it when one of the created files gets rejected on the Marketplaces. I hope that you won't be discouraged.

Given the sharp rise in submissions of all quality levels, staff can no longer afford to take longer to elaborate reasons and deploy custom messages for hard rejecting submissions where several or important aspects of a composition, arrangement and/or production are deemed insufficient for acceptance.

The reviewers have thousands of submissions to listen to. The reality is that our marketplaces are stocks and we are not yet able to afford to provide tutorial services for authors, so it’s simply not practical for business purposes to allot significant additional time to explain to thousands of individuals how to specifically improve the composition, arrangement, mixing or mastering for an item that misses the mark by too wide a margin. My apologies.

You may also want to read the following public Help articles:
Rejected Items
Common Rejection Reasons for Envato Market

Please let me know if you need further assistance.

Warm regards,

Katherine S.



Right now, I honestly don't know what to do. I answered all threads on the forum related to the lacking documentation, asking for help. Some people claim there that sometimes it's enough to re-submit without any changes or after reordering some fragments. I'm afraid to try it without at least making an effort to get to know what's wrong.

I don't agree with what Envato answered me. If they were giving at least a hint of what should be corrected, they would spare people lots of frustration, and they wouldn't have to review the same submissions again and again. In fact, they probably spent more time responding to my help request than they would pointing me to the right direction.

So, unfortunately, I can't give you a link to the store yet but just a little sneak peak of the app. Hopefully, someone will help me or I'll succeed in re-submitting a slightly corrected documentation soon. In the meantime, if you feel that you can give me any advice, please do.

Sunday, November 20, 2016

November updates

This is just a quick update on what I've been up to this month. There were a couple of unexpected events that messed up my original plans a bit, but still I managed to move a step forward.

Conferences


I went to Mobilization and I'm going to Droidcon Poland in three weeks. I have to say that I really like such events, not only for the sake of presentations, but also for their networking value. Every time I go somewhere I meet my colleagues and their work mates, and discussing with them often brings me more value than what the speaker has to offer. At some point I was even wondering why someone doesn't organize meetings for people from various companies during which they could discuss how they handle specific programming aspects, like storing data or testing. Perhaps I'll do it some day.

Learning Unity


I got a notification that Udemy had a huge discount on a nice Unity course so I bought it. It cost me 12 €, but the price goes up every day, so you'd better hurry up if you're interested. I haven't started watching the lessons yet, but with the coming Christmas period, I'm hoping to be able to give it a try. I'll let you know how it goes.

Facebook Gallery


Remember my Facebook Gallery template app? No? Well, some time ago I made a couple of apps using the same template that I'd created. Each app was basically a gallery of images from a specific Facebook channel/profile. You could also adjust the theme, strings, icons, etc. for them. See Banksy for example.
My plan for the nearest future is to refresh the project a bit and try to sell the code on some portal. I've already done a bit of refactoring: I updated the libraries, I switched from Picasso to Glide and I started working on Activity transitions to make it look nicer. There's still a lot to be done, but I'm hoping to finish before the end of the year.
For the next part, I did a quick research on where I could try to sell the template. It turns out that there aren't many sites dedicated to it. I found Chupamobile, SellMyApp and CodeCanyon. The first two look somewhat sketchy though, so I'll probably go with CodeCanyon in the end. They check every submission manually, they have user comments and ratings, and they are open about how many people bought an app. The only thing that worries me is that their suggested prices are quite low (<$20). I don't know why people decide to post their apps that required months of work for such a price. Perhaps buyers choose the more expensive extended license?
If you have any experience with selling your code to people, let me know in the comments. I'll be grateful for any advice.

Conclusion


That's pretty much what's going on at the moment. My priority is to finish the Facebook Gallery app. In the meantime, I'll be watching an occasional Unity lesson. Starting next year, I want to commit more time to game development, because that's what excites me the most, even though it might not be the most lucrative choice. I'd like to polish my Blobby Volley, but that's a whole different subject and I won't go into it now.
I hope to see you next time with more progress updates and news. Peace.

Sunday, October 16, 2016

What I'm up to at the moment



Hmm, it's been a while since my last post, so I thought that I should give you a short update on what I did in the last couple of months and what my plans are for the near future.

I finished working on Keep Streak. It's a habit tracking app that helps you do certain things regularly (like excercise or meditate). It's not my own app. I got hired to do it on Upwork. I collaborated with Eetion, the project owner, for two years, incrementally adding features to the original idea and then pausing the work for a couple of months. I have to say that I quite enjoyed the process, but I'm also happy that it finally got published. Keep Streak isn't extremely popular right now, but the app is quite well-thought-out and I recommend you take a look at it - perhaps it's something you'd like to use.

Other than freelance stuff, I also updated my metro apps: Milan Metro and Rome Metro. I removed their paid versions and added in-app payments instead, so that people can still remove ads. This way there aren't two separate versions of the app in the Play Store. I added search, so you can easily look for stops. I implemented App Invites, so people can invite their friends to use the app via sms or email. I tweaked the ads and I started using Facebook Audience Network to maximize my revenue. I added Google Analytics and Firebase Analytics to be able to understand the users' behavior. Finally, I fixed some small bugs that were reported on Fabric (former Crashlytics).
All in all, the apps' installs haven't increased much, because there's an official app for Milan now, and the app for Rome was never very popular (I still have no idea why). I learned a lot while working on the updates though, so I don't consider this time to be wasted. I still have hopes that the installs will go up to a bigger figure. In fact, after a slight bump, they keep rising slowly but steadily.

Oh, I forgot to mention, the metro apps have new material icons now too. I already published the one for Rome and I'm doing an A/B test for the one for Milan. Here's what they look like now.




So the plan for the rest of the year is to finish updating the metro apps, so they can be left alone for some time. To be more specific, I'd like to:
  • fix in-app-payments related bugs
  • reward users for inviting friends (if it's even possible)
  • finish experimenting with the icons
  • think about new features that could be added (like animations)
After I'm done with it, I want to play around with my Facebook gallery apps e.g. Banksy. They need a general update of SDKs and libraries. There are new features that I want to add as well, like sharing images and screen transitions. I was thinking that I could experiment a bit with Retrofit 2, RxJava and Kotlin in the meantime.


As to my interview series, I recently found out that the author of Hook and klocki is a friend of a friend, so perhaps I can get him to answer a couple of questions for me. I'm really excited to meet the guy. An additional fun fact about him is that he rents electric skateboards in my city (Poznań) now. Some of my work mates already went to try them.

Neither the blog nor me are dead, so stay tuned for the next posts and updates. See you in a bit.

Sunday, January 17, 2016

SVG on Android: Update

So I finally found some time to work on my apps. Hurray!

I updated my Milan Metro app, because the map was getting shamefully outdated and the app itself started losing users. Now it's on the right track once again. I'm also planning some enhancements for it, e.g. implementing stop search, but it's a subject for another time.

Today I wanted to share my latest experience concerning SVG images on Android. I already wrote a couple of posts about it (SVG on Android, Transforming SVG images into Android Drawables), but things have changed since then and I want to shed a new light on some of the aspects of using vector graphics.

There's actually an interesting story that goes with it. At my new job at Wikia (yeah, I know it's hard to follow where I work) we have periodical hackathons, that is we are given two days to work on whatever we want as long as it is, at least vaguely, connected with the main project. As I had just started and I didn't have much knowledge about the company's services and APIs, I decided to do a research about image loading libraries such as Fresco and Glide, to see if they could be better than Picasso for the Wikia apps. The research itself didn't bring me a clear answer, leaving me with what I could already find on Github and Stack Overflow. However, browsing through the Glide's Github repository I noticed that they had a sample for SVG images. In other words, I discovered that using Glide you could load and cache SVG images with as much ease as regular bitmap images. Glide uses AndroidSVG library to parse and display SVG images, so if you don't need the downloading and caching part, you can just use that.

I immediately tested it with my metro map apps and it turned out that the image looked perfect. The only thing was that the parsing time was still significant. I didn't measure it precisely, but waiting for an image (~100kb) to load took around one second.

Then I remembered that a guy wrote to me some time ago asking me for permission to use my idea to parse SVG files to Android Drawables (see this post for a more extensive explanation). This way you didn't have to use any additional libraries in your code and images were loading in a blink of an eye. I finally took a closer look at what Almos had created so far - android-svg-code-renderer. His projects forks the AndroidSVG library and adds Drawable creation to it. I must say that it works pretty well, although there are still things that could be done better. The generated code is not optimal and could be much shorter. Also, repeated symbols (used a lot in my maps) are inlined instead of being put in functions, which makes the output unnecessarily long and less readable. In general, however, the tool is very useful and I would still recommend it over SVG parsing libraries, which are slow.

In the end, I used my own old SVG to Drawable transformation tool, which I enhanced a bit to work even better and produce cleaner results. Although it's based on an older SVG library (svg-android), it still works surprisingly well and fulfills my needs. I'm aware that it's a temporary solution, but hopefully in the near future Almos or someone else will come up with an even more efficient SVG loading method.

Whoa, this post got a little technical, but I'm sure some people will find it useful. If you have a better SVG handling solution, please let me know. If something's not clear enough, I'll be happy to help you more in the comments section.


Sunday, July 6, 2014

My new app: Blogger Stats

As I mentioned some time ago, I've been working on a simple app for displaying pageviews statistics for blogs on the Blogger platform. The idea interested me, because I wanted to check how many people viewed my blog, and there was no app like this on Google Play. Using a browser to go to the administration website was simply inconvenient. It was slow and you had to log in to see the information. That's why I decided to try to create an app for it.

You can get Blogger Stats for Google Play here:
https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.bloggerstats

The screenshot on the right explains perfectly what the app does. It basically tells you how many people visited your blog in the last week, in the last month, and since you started it. Unfortunately, more detailed statistics are not available, because the Blogger API does not support it right now. This information is usually satisfying enough though.

What's great about the app is that you don't have to log in to your account, because it uses the built-in Android authentication mechanisms. This way it's also safer, because your username and password are not stored anywhere. What is more, you can use it offline, because it stores historical data on the device. Finally, if you have more than one blog, you can easily switch between them using the dropdown menu in the action bar.

What I'm particularly proud of is that Blogger Stats handles orientation changes elegantly by using retained fragments. This way the user does not even realize that the app is being restarted. To read more about this technique, go to the Handling Runtime Changes section on the Android Developers site.

If you're interested in implementing something similar or in using other Google API's, I recommend the following resources:
Blogger API reference
Google APIs authentication guide
Sample Android App for Google Tasks (todo list)
Google Plugin for Eclipse

As to additional libraries that I used, there was Crashlytics for crash monitoring and discreet-app-rate for displaying an elegant notification encouraging users to rate the app. Both helped me a lot with my other apps and are very easy to implement.

Once again, you can find Blogger Stats on Google Play. If you have a Blogger blog, I'm sure it'll be useful for you. And don't forget to leave me a nice review :)

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.

Saturday, April 27, 2013

LeadBolt Experiment


Inspired by an article about various ad types offered by LeadBolt, I decided to give it a shot myself. Although I like AdMob - its ease of use and reliability, it definitely doesn't give you much choice over advertising methods. Displaying a small static banner nowadays is like having a commercial on TV showing an image along with some promotional pitch. Would you get interested by it? Probably not. Why limit yourself to just banners then when there's a whole world of possibilities out there? What are they - you may ask. Well, keep reading and you'll find out.

Interstitials

They are full screen overlays appearing on top of your app. They come in various themes (the one on the left is called Music), so you can make them blend in with your content much better and provide a seamless experience for the user.

Banners

You probably know them best. They come in various sizes, so if someone is using a tablet or another device with a large screen, you can make use of it. Your opitions are: 320x50, 468x60, 300x250, 640x100, 728x90. If you only want to improve your AdMob functionality without changing too much - that's something for you.

Alerts

You can see and example one on the left. They usually ask if you want to download a free app. It's much more tempting than just a banner in the bottom. Especially because it takes your attention and requires an action to close it. Anyway, why wouldn't you try a free game if you're probably playing something similar right now?

Audio Adds

"You just found a secret passage. Shake your phone to unlock your prize." Wouldn't you shake your phone after hearing this, even if it was just out of mere curiosity?

App Walls

Give you an opportunity to download games and apps. They come in two versions: dark and light. Again, very engaging and definitely appealing to the user.

Notifications

Do you want the user to be notified about new opportunities and promotions repeatedly at intervals controlled by you? It works even if your app is not open.

Icons

Install an icon on the device's main screen, opening an app wall which offers free games and programs. The user doesn't have to open your app.

Other overlays

There's much more LeadBolt has to offer: entry and exit overlays, rich media, text ads and other types of ads. If the only network you're using is AdMob then you should definitely check it out as an alternative. I think you know why now.








Ad Showcase


If you're interested in seeing all kinds of ads in action, you can download my free app Ad Showcase. It lets you see what you can achieve with LeadBolt. I wrote it because I wanted to learn how to use the API, but later I decided to release it on Google Play to let others experiment with it as well and perhaps decide what advertising techniques they want to use themselves. I hope you'll enjoy it.


Reviews and opinions

If you're interested in more reading about LeadBolt, its advantages and drawbacks, I recommend the following sites:

Try it yourself

If you now feel like LeadBolt is worth checking out, you can use my reference link to sign up for free or just click the image on the left. I will definitely try to use some of the ad types described above in my existing apps, because I believe there's a great potential in them and they might work much better than simple AdMob banners. If you already have some experience with LeadBolt, please share it with me and other readers, so we avoid common mistakes and make the best out of it. I promise to describe my results as soon as they appear, so you can learn from them as well.

Take care, create great apps and have fun in the process. Until next time.

Monday, April 15, 2013

FC Barcelona Live Wallpaper shutting down because of copyrights

About a week ago I got an interesting email that you can read below. What it said can be basically put in short like that: dear Sir/Madam, blah, blah, we represent FC Barcelona football club, blah, blah, you're using our logo and colors, blah, blah, they are registered as trade marks, blah, blah, we're kindly asking you to unpublish your app, blah, blah, unless you want us to be more persuasive.

Asking them nicely for permission didn't help. Apparently there was an FCB Apps Program a while ago that let developers introduce their app proposals to be accepted. Unfortunately it's over now and there's no information regarding the next edition. That's why I'm going to get the app out of Google Play really soon. If you were considering whether to buy it or not, you'd better hurry up.

The whole story definitely taught me a lesson. At the time of writing the app I didn't even think of copyrights and trade marks. Anyway I would have never expected that a live wallpaper with 12 installs could get me in touch with a football club that I really like. I'm not sure what I'm going to do with it yet. I might even make the source code public, so you can learn from it if you like. Let me know if you're interested.

Here's the full email that I got, if you have problems sleeping:

Dear Sir/Madam,
We are contacting you on behalf of our client FUTBOL CLUB BARCELONA.

FUTBOL CLUB BARCELONA is the exclusive and legitimate owner of the well-known trademarks “Futbol Club Barcelona”, “FCB”, “FCBarcelona” and “Barça” (among others), registered as international trademarks, such as FCBARCELONA (Id. Number: 1051714), FCBARCELONA (Id. Number: 864540), FCBARCELONA, (Id. Number: 907675), FUTBOL CLUB BARCELONA (Id. Number: 516357) FUTBOL CLUB BARCELONA (Id. Number: 731062) BARÇA (Id. Number: 1081332) BARÇA (Id. Number: 516357), F.C.B (Id. Number: 633377), F.C.B (Id. Number: 717965), FCB (Id. Number: 864541), FCB (Id. Number: 907670).

These trademarks also protect FUTBOL CLUB BARCELONA’S shield, as a logotype, and the Football Team’s official colours.

We have been aware that you are the developer of the following Application:

Código de Contenido: 022-002-00146
Url del Contenido: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.fcbarcelonalogolwp&feature=search_result
Vulneraciones: Copyright and trademark FC Barcelona
Número de vulneraciones: 1
Detalles vulneraciones
- app: FC Barcelona Logo LWP
Dominio Base: htttp://www.redpoints.es
Administrador del Site: ---
Persona Jurídica: ---
Hosting: --


This Application infringes our client’s exclusive rights, in particular, its copyrights, trademarks, logotypes and image rights.

The Application is using signs which are identical or similar to F.C. Barcelona’s trademarks, taking unfair advantage of the Club’s reputation. This constitutes an infringement of our client’s trademark rights.

Additionally, the distribution of an application entirely based on F.C. Barcelona, without the Club’s authorization, constitutes an act of unfair competition.

Therefore, we kindly ask you, upon reception of this notice, to immediately:
  1. Withdraw the abovementioned Application from the distribution platform where it is being offered to the public.
  2. Delete from your systems the Application and any and all materials violating our client’s copyrights, trademarks and image rights.
  3. Stop and refrain in the future from using and/or reproducing materials (images, trademarks, videos, logotypes, etc.) that infringe FUTBOL CLUB BARCELONA’S exclusive rights.

We believe in good faith that the abovementioned Application has not been authorized by our client, its agent or the law.

We declare under penalty of perjury that all the information contained in this notice is accurate, and that we are authorized to act on the behalf of FUTBOL CLUB BARCELONA.

We remain at your disposal in case you would like to contact FUTBOL CLUB BARCELONA for an official license for your product.

Sincerely,
Josep Coll
RED POINTS SOLUTIONS TEAM

Monday, March 25, 2013

My new app - FC Barcelona Logo LWP

Well, it's not the game I was telling you about and neither the super brilliant idea I had (which turned out to be somewhat impossible to implement for legal reasons). It is a nice looking live wallpaper featuring an animated 3D logo of FC Barcelona - a great football/soccer team with amazing players and a uniqe game style. It's also my attempt at learning 3D animation and other graphic techniques on Android. You can find it on Google Play and let me know what you think. This time I decided to release a paid version only, but if $0.99 is too much for you, you can at least take a look at the screenshots and the video.

What went well

I had a chance to delve into 3D graphics once again and I used to be pretty mad about it back in the day. I used min3d and its live wallpaper fork to animate a model I created with Blender - a free 3D modelling tool. I had some minor problems with the library itself and since it has been discontinued for some time, I couldn't really expect the bugs to be fixed, but still I decided not to use Rajawali - its successor, because it's less compatible with old devices, more complicated and runs slower. I might try it in the future though, because it supports OpenGL ES 2.0 and shaders, which can make the end result look stunning.

What I'm proud of is that I managed to use ambient occlusion that I prerendered into textures using Blender. If you don't know this technique, just type it in google and see the images. Here's how Blender's Wiki describes it:

Ambient Occlusion is a sophisticated raytracing calculation which simulates soft global illumination by faking darkness perceived in corners and at mesh intersections, creases, and cracks, where light is diffused (usually) by accumulated dirt and dust. This has the effect of darkening cracks, corners and points of contact, which is why ambient occlusion is often referred to as a “dirt shader”.

If you have a careful enough eye, you should be able to see it in the logo render above as well. Just look at the red cross or the red stripes and note that they cast a soft shadow on the white and yellow background.

Creating the model probably took me a little more time than I first thought (a good couple of hours), but that was because I had to learn how to use Blender (I am more used to 3DS Max which I learned in the past) and then to simplify the model itself to take less space and load faster on a mobile device. I watched a very good tutorial on how to bake ambient occlusion into a texture and it helped me a lot. I first got inspired to try it by a youtube video, which showed an extremely good looking 3D logo even though it was using only simple OpenGL ES 1.0 techniques.


What I was struggling with

I didn't realize it was so difficult to make a video of an OpenGL application. Obviously, I couldn't publish my live wallpaper without showing people what it looked like in action, because no one would buy it. Using the emulator and then recording the screen wasn't an option, because the app looks very bad this way and runs much slower. I found a nice article on How to Record Screen Activity on an Android Device. Unfortunately, some of the options it describes didn't really work for me. I couldn't use a HDMI cable to connect my phone to the computer, because I don't own one (I mean the cable). I didn't want to use paid software like Screencase Video Recorder, because I wasn't sure if I could sell so many copies of my wallpaper to be able to pay for it. Using my digital camera wasn't an option as well, because I don't like the quality of such videos. I tried transfering the content of my phone's screen to my computer via USB, but I could only reach about 2 fps this way (I think I was using Ashot, but I don't remember it well right now). Finally, I found ASC, which lets you record your phone's screen and save it as an mp4 file and doesn't require your phone to be rooted, unlike many other apps. What its description didn't say though is that you can only record 20 second videos and after making a couple of them you have to wait for about an hour and a half... unless you pay. At this point I was so frustrated with how much time I spent making the video, that I decided to go with it anyway, wait 1,5h once or twice and then combine the 20 second parts in Adobe Premiere. I'm not totally happy with the result, but it looks good enough for now. You can see it below.


Final thoughts

I'm quite content with the app. Thanks to ambient occlusion it looks realistic and I had a chance to refresh my 3D graphics knowledge. After a week of being published, the wallpaper has been bought 7 times, which is not a mind blowing figure, but definitely not a bad one either. If I could keep the install rate, I would be selling about 25 copies a month. Who knows - I might even make other models of other club logos and publish them as well. Now that I have the most difficult part done (namely the code), it should be easy to create new wallpapers based on it.

As to my game, I promise it's going to get finished. I might publish another experiment of mine first though. I was also thinking about doing a research on making videos of your apps. I really don't want to struggle with it again and I'd much rather have some solution ready. If you know how to do it well or want to share some other useful knowledge, please write a comment or email me directly. I'd also appreciate any feedback on my wallpaper - let me know what you think.

Thanks for reading and and all the best to you!

Sunday, March 3, 2013

Toothbrush

It has been a very prolific period in my Android career. Last week I published another app. It's very simple, yet funny and entertaining. Also, I don't think there's anything similar out there. It simulates a toothbrush, i.e. it produces toothbrush sounds when you move your phone as if you were brushing your teeth. Check it out on Google Play and maybe leave me a nice comment or let me know if something is not working for you.

What went well

This time I chose a really original idea. I'd had it in mind for quite some time before I decided to implement it, so I was sure it wasn't one of those brilliant thoughts of mine which excites me at first and then becomes less and less appealing over time.

Apart from that, the idea was very simple and could be done in a short period of time. I know that many people overcommit to one big project. I always try to avoid it, because my motivation slowly diminishes with time and the risk of failure is just too big. You never know if your app is going to be successful and having virtually none marketing resources, you can't influence people's tastes.

Finally, I had a chance to learn how to utilize an accelerometer. It turned out to be more difficult than I first thought. I don't mean the implementation here, but rather dealing with its inaccuracy and differences in sensitivity across various devices. Anyway, it really works for me when I incorporate some new things I haven't used before into my programs. It makes me curious and helps me stay focused on the task. I just have to remember not to take on too much at once, but this time it was an optimal amount.

What went bad

I couldn't really test the app on different devices and this time I really think it does matter. I've read various posts on StackOverflow and in other places mentioning accelerometer problems with certain device models and brands. I got some feedback from my friends and in one case the phone seemed to be too slow to handle the app. Fortunately other friends enjoyed it and no one has left me a negative comment yet, so maybe it's not as bad as I first thought. Well, if something wasn't working, I don't even know how I could fix it without an access to that particular device...

Will it be a best seller?

It's been a week since I published Toothbrush on Google Play. Right now, my active/total installs ratio is 21/61 - definitely not an astonishing figure. We'll see how it goes in the future. I asked some friends to help me with French and Spanish translations. I already have a Polish, Italian and English one. If you want to help me with other languages, just let me know and you'll have your part in the production process. Anyway, it seems I'm not going to get rich this time as well and I'm going to end up with another app with a couple hundred installs.

Some updates

I'm not going to give you an income report, because nothing has significantly changed since the last one. I just want to mention my Milan Subway Map app, which is doing fairly well with 70/104 active/total installs and 2 paid copies sold. I think the ratio is quite promising - almost 70% of the people who install it, keep it on their phones. If only I could win a large audience somehow, they would probably like it. If only...

Having some more free time lately, I'm working on a simple game now. I don't want to reveal it just yet, but if you come back in a week or two, I should give some hints about what it is or maybe even have it done. Yesterday, I had a sudden revelation of another amazingly simple and brilliant app idea, so I might end up doing a little break from game development and coding it first.

It looks like my audience is growing and I'm not writing this blog solely for myself and a bunch of friends any more. Last month I had three times as many visits as in the whole previous history. I hope you enjoy reading my musings. I'm preparing something special for the next post, so stay tuned and don't miss it.

Monday, February 18, 2013

Milan Subway Map

For the last week or so, I've been working on an app for browsing a map of subway and suburban trains in Milan. Well, here's the lite version and the one without adds. Now, let's have a short postmortem.

What went well

I managed to get hold of a subway map in a vector format. I only had to add the missing purple line and make some modifications, so it could be used on Android. Thanks to that, the quality of the map is very hight and it can be zoomed in indefinitely without the loss of any detail. Isn't that cool!

I also had a chance to practice my icon design skills and this time I'm really proud of myself. Just look at the color choice, the mild gradient and the simple shape of the letter M. Hell, I'm getting better and better at it.

What went wrong

Although the idea behind the app was pretty neat, I failed to check Google Play for similar ones. It turns out, that there are a couple apps which do almost the same thing. Their usability may not be as good, but they add some other features, like a detailed map of the suburban network or a satellite view.

Conclusion

SVG images are great! They take little space, look good even when zoomed in and you don't have to provide a separate version for each screen density. I'll definitely write the next post about how to use them.
Next time though, I have to be more careful when choosing an idea to implement. It's better to commit an hour or two checking Google Play for similar apps than to loose days/weeks to create something utterly unoriginal and with a strong competition.

Sunday, November 18, 2012

My applications so far

During the process of learning how to program Android I created a couple of simple apps. Then I decided to publish them on Google Play, just to see if anyone would be willing to download them. It was very motivating to see more and more downloads every day (even if it was just one more). It also gave me motivation to create something new, when people were actually enjoying what I'd done. I strongly suggest everyone who wants to be an independent Android developer to challenge themself to publish at least one application. I promise, it's going to be exciting and will make you check the download statistics every single day. Also, besides bragging about it in front of your friends, you can put it into your CV or LinkedIn profile. Even if your app is lame and the code looks messy, from that moment you can call yourself a real Android programmer.

But back to the subject. Here's what I've done in chronological order. Most of the apps started as a simple exercise and then grew into something more sophisticated. Take a look and judge for yourself.

Raczkowski na dziś

I really like Marek Raczkowski - a polish artist and drawer. He has an unofficial facebook fanpage where people post his drawings that he makes for various magazines. This fanpage has a lot of followers, so I decided to make a program which would enable browsing through the images, even if you don't have a facebook account. It turned out to be much harder to do than I first thought (but aren't most things like that?). The facebook API was very slow, they changed it fairly often without informing about it (so the app would just stop working) and finally the fanpage couldn't be accessed without logging in, even though it is available for everyone through a browser. I ended up using Google App Engine to store the links to images and then serve them. I released it as a free application, but added AdMob adds hoping I could earn at least a little bit of money. Well, the earning part didn't work that well, but I was really proud of my work. I would tell you to check it out for yoursef, but to understand most of the comics you need to know the Polish language and realities. Limiting your audience this way is usually not the best idea when you're trying to reach as many people as you can. I didn't know it then...

Galeria Andrzeja Mleczki

Encouraged by a couple hundred downloads of the previous app, I decided to make a similar one featuring another artist. I chose Andrzej Mleczko, because of his popularity and proliferation of his drawings. The basic engine was already done. The only things I had to do were preparing icons and implementing data source connection. It was all pretty easy and after a couple of days I had a fully functional app. Again, mostly for Polish speakers, unless you are ready to facilitate Google Translate.

Toilet Sounds

The story of this app is quite interesting. I was trying to write something totally different, which would utilise an accelerometer and require playing some sounds. To learn how the latter task is actually done, I created a side project and implemented playing mp3s based on a tutorial I found on the internet. Meanwhile, my tablet broke, so I couldn't test my app any more, so I decided to write something simple, which could be tested on an emulator only. I asked my friend to draw me the inside of a toilet and added different sounds after touching certain objects. Later on, I also added some actions the user could trigger (like turnig off the light, waking up the cat, etc.) and transformed the whole thing into a game, which goal is to find all hidden objects and their sounds. I wasn't expecting it to become the game of the year, but rather a good laugh for some and perhaps a few nice comments on Google Play for myself. As before, I included AdMob adds in it, just in case it became a huge success. Well, it didn't but still it beat the previous apps. Probably because I took some effort and translated it's title and description into other languages. I already had a Polish and English version. I used my friends to help me with Italian and Russian. I strained my brain to remember some German I was learning a long time ago, to make Toilet Sounds available for people from the country of Goethe. Finally, I used Google Translate to obtain the description in all other languages. To prove that it worked, here's the list of countries with the most downloads: USA, Germany, Italy, Japan, France, Brazil, Netherlands, United Kingdom, Russia. For me, the funniest part was to have users from Asian countries I didn't really know the location of.

Ring Live Wallpaper

Since high school I've been interested in computer graphics, so when I learned how to program, I started playing with various effects, OpenGL and shaders. The time had come to utilise that knowledge and create my first live wallpaper. I was hoping for it to become an even bigger success than Toilet Sounds, because I found some really bad wallpapers with a large amount of downloads in Google Play. I based my app on Jared Tarbell's idea from complexification.net. I added some enhancements and optimizations, as well as some parameters for the user to modify. It was going to be my first paid application, so I wanted to make it worth the money. I even published a demo version, lacking the possibility to modify wallpaper's parameters, but otherwise working just the same. I was really happy when I saw how smoothly the effect run on an actual device. Unfortunately, the whole project turned out to be a big failure. Although the wallpaper seemed really attractive, only a bunch of people downloaded even the demo version.

Blender Live Wallpaper

I couldn't live with a thought of a failure of my previous wallpaper. I decided to make a new one, based on another neat effect, to make sure it wasn't just an unfortunate coincidence that almost nobody wanted to download my piece of code. Again, the process of creating it gave me a lot of satisfaction, but the result was exactly the same. Either the wallpaper was really bad or people just wouldn't know about it's existence.

That's all I have on Google Play so far. I know it's not much, but still, I think I have a good background now. Where do you get your ideas for programs from? Do you have similar experiences with live wallpapers. Do you have a way of promoting them? If you have something to share, comment on this post or just email me.