Archive for category Technical skills

Paid apps for free on Google play using Rewards and Sales apps

As a developer and publisher of apps, I wouldn’t be impressed to hear that people are getting my paid-for apps without paying for them. After all, thats my hard work people are pirating! Chances are also theres extra malware bolted on, if its not coming from the stores directly.

However, since summer last year, I’ve been using a couple of apps that allow me to get Google Play Credit for free and then use that credit to buy premium apps for reduced prices.

I think its been a valuable way to discover new apps that I otherwise would never have found, and those developers are actually getting paid. Everybody wins!

Get The Google Opinion Rewards App

First step is to earn Google Play credit. Google has an app called Google Opinion Rewards, which pays small amounts of google credit every time you complete a questionnaire survey about brick and mortar shops you have visited recently.

I’ve used the app since summer 2017 and its usually only 2 or 3 questions, once or twice a week. Firstly select which shop you’ve been to from a given list, then when you went there. Finally give a rating out of 5 for your experience at the shop. Very occasionally I’ve been asked to write a review about places.

Over time I got a sense for which shop’s surveys would pay more. Generally speaking, selecting a higher-end store would end up paying higher amounts (Waitrose paid more than ASDA, for example) and the highest amount I ever got was for a review of a holiday resort in Bognor Regis! (Very Nostalgic)

However, don’t be tempted to chose a shop you think might pay more, if you haven’t been there. Google “knows”..

In any case, one of the options is “none of the above” and you still receive credit for selecting that one.

Get a sales review app

After receiving the credit, the next step is to spend it! If you already know which apps you want to get, then thats great. For me, I wanted to get GTA San Andreas but it was always at a price I considered too expensive for a mobile game.

However, I’d recommend an app like AppSales which indexes recent sales on apps. Theres a few apps on the store that do this, this is the one I settled on.

Get into the habit of regularly checking the sales. As some only last a few days. There are options for viewing reduced-to-free apps too.

By using these two apps I’ve found the benefits of getting more into trying out apps on the store much more than I ever did before. Its allowed me to get the games I never quite got round to and also allowed me to discover some real gems that I would never have found on the vast store otherwise. Its given me more confidence to spend on the store on unknown developers and apps, which will benefit them as well as they will actually be paid for their efforts, instead of having to rely just on advertising.

A note on Ads – use Airplane mode

Annoying as Ads are, remember that thats how apps get funded these days. Especially the free ones. Since spending more time going through a lot of apps, its become accepted that Ads are thrown in there. I don’t usually mind the banner ads, but full screen ones take you right out of the experience and typically you can’t get out of them until set timer allows you to, sometimes as much as 30 seconds. For one game I played recently, it earned mostly 1 star reviews because of the 30 second ads. A real shame as well because I really enjoy playing that game. A quick solution is to switch on airplane mode (or switch off wifi and mobile data) immediately before playing. It’ll work for the single player quick games, but obviously you won’t be getting any messages during that time. There’s probably other apps out there that can limit the ad traffic to your phone but I would still like to believe that its a reasonable way for developers to get paid so I haven’t investigated it. Its only in the most extreme cases where it feels like I’m watching more ads than playing the game that I feel its time to do something about it.

Share Button
No Comments

React Native Projects on mac Cheatsheet

I’ve been looking into React Native development recently and by lots of trial and error and searching Stack overflow, github and Facebook’s own documentation to get it up to speed. Its not quite as straight forward to set up as a general Android Studio and Xcode set up, so I’ll drop in some links and tips. This is more of a reminder to myself but hopefully it will be of use to anyone else as well.

I’ve just finished my first app submissions online, a coin collector game. Its a simple one screen app with a giant coin on the screen. Press the coin to hear a coin collect sound. Collect enough coins and you hear a surprise sound. I have a few years experience with iOS and Android on Xcode and Android Studio (mostly on Eclipse) but almost zero experience with Javascript and absolutely none with React. So most of the content here will probably insult your intelligence.  This guide assumes you know Xcode and Android Studio, and have set up your local machine to get builds sent to and running on devices.

React Native projects end up generating runnable Xcode and Android Studio projects. The business logic and screens happen in React Native, but things like build flavours, targets, icons, etc are all done in the native IDEs. You build and test in React Native land first, before “bundle”ing the build to native projects for deployment to the stores.

I’m using mac OS 10.12 Sierra. Necessary for iOS builds. Currently React Native is at 0.45.1

Set up React Native

Follow the instructions from the main page. But when creating your own project, I never used expo or “create-react-native-app” like it says to on the first page. As I understand it, it creates a project that can run on a local server to test projects in Expo, either running on the computer, simulator or a device running expo. Whilst its probably a good way to begin to learn react native, my first goal was to get Admob ads into the project and get it out on to the stores as quickly as possible.

reactnative init AwesomeProject

creates the React Native Project with ios and Android internal folders for the deployment folders.


Set up IDE

Thanks to my buddy Torben, he suggested getting set up with Visual Studio Code with the relevant plugins mentioned here. This also explains setting up the debug environment too. Microsoft clearly isnt the same company it was 10 years ago, as the editor is super fast, light and a real pleasure to use. Alternatives would be to use Sublime editor to open the entire project files, but you can debug VS Code too.


Deployment to devices and stores

This is the least documented part I have found on line, and lots of arbitrary CLI steps.

By the time you are ready to deploy, you will have noticed that when you run builds on simulator or device, a Node JS server is being run locally and the app is connecting to it for the business logic code. Great for updating code on the fly, but when you want to create your final build, you need to Deploy your code to the respective platforms


Run this line from the project directory in terminal

react-native bundle –dev false –platform ios –entry-file ./index.ios.js –bundle-output ios/main.jsbundle –assets-dest ios

Also need to change a line of code in the project to tell it to look for a local app bundle for the Javascript.

In AppDelegate.m:

  jsCodeLocation = [[RCTBundleURLProvider sharedSettingsjsBundleURLForBundleRoot:@”index.ios” fallbackResource:nil];

  //jsCodeLocation = [[NSBundle mainBundle] URLForResource:@”main” withExtension:@”jsbundle”];

You can also change the Bundle id, Icon, bundle name, etc. Don’t try to rename the project from React Native. Once you’ve init’ed with a name, I found it too much of a pain to change. You dont need to change it anyway, but it can be changed in Xcode instead.

Android Studio

Run this line from the project directory in terminal

react-native bundle –platform android –dev false –entry-file –bundle-output android/app/src/main/assets/ –assets-dest android/app/src/main/res/

Like in Xcode, Bundle Id, icon, name, etc can be customised.



Node JS Server

To list processes that are using the 8081 port  –  lsof -i :8081

Kill a process by id:   kill -9 65486

Good luck!

I finally got both Android and iOS coin collector apps uploaded to the stores for submission, so I would like to take some time and maybe write a tutorial outlining the process, including the fun with adding sound playback libraries and assets.

Share Button
No Comments