Re: [android-developers] Total User Installs decreasing

2013-01-14 Thread Iain King
I'm not stressing, I'm just curious :)  I don't understand how that number 
can go down.

On Saturday, 12 January 2013 21:16:03 UTC, TreKing wrote:

 On Sat, Jan 12, 2013 at 2:59 PM, Iain King iain...@gmail.comjavascript:
  wrote:

 My total user installs on an app has gone down by 2 over the last couple 
 of weeks.


 That's it? I've lost about 400. Don't stress about it too much - Google 
 Play stats are notoriously unreliable. It's either a bug or change in the 
 way they report stuff. We'll probably never really know.


 -
 TreKing http://sites.google.com/site/rezmobileapps/treking - Chicago 
 transit tracking app for Android-powered devices
  

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Total User Installs decreasing

2013-01-12 Thread Iain King
My total user installs on an app has gone down by 2 over the last couple of 
weeks.  I have no cancelled orders or anything like that; anyone know how 
this is possible?

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Gamepads and uses-feature

2013-01-07 Thread Iain King
Are there plans to add a uses-feature for gamepads?  What with a couple of 
third-parties making pads for android devices, and Nvidia's recently 
announced android handheld, the prospect of making actual game games for 
Android (and not just touchscreen friendly ones) seems to be becoming a 
possibility.  However, you'd want to make sure that people without a pad 
didn't accidentally buy something that required one.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Re: OOM on Droid 4 / Razr / Razr Maxx (so: Motorola Android phones?)

2012-10-25 Thread Iain King
Alternative solution: I've lowered the memory use of my app in the hopes of 
getting it to work on these handsets. Anyone with one (Droid 4, Razr, Razr 
Maxx) want to test my app to see if it runs?  It'd be a massive help to 
me.  You can find the installer at:

http://www.onelivesleft.com/pigment/pigmentdemo.apk

Thanks in advance!

Iain



On Thursday, 11 October 2012 14:51:50 UTC+1, Iain King wrote:

 Had a sudden influx of users recently, and from that I've discovered that 
 my app doesn't run on the Droid 4 or the Razr.  It seems that it runs out 
 of memory, though the app runs fine on all other handsets (AFAIK), 
 including much older handsets. For example, it runs on the HTC Desire, 
 which has half the RAM of the Razr.  I don't have any motorola handsets (or 
 I'd just be debugging with them), and it runs fine in both the Razr and 
 Droid4 emulated AVDs (from Motodev).

 Does anyone have an idea as to what is going on?  Is there something up 
 with Motorola's architecture?  The Razr has a whopping 1gb of RAM, yet does 
 this:


 java.lang.OutOfMemoryError
 at android.graphics.Bitmap.nativeCreate(Native Method)
 at android.graphics.Bitmap.createBitmap(Bitmap.java:631)
 at android.graphics.Bitmap.createBitmap(Bitmap.java:611)
 at com.onelivesleft.pigmentdemo.GameScreen.init(Unknown Source)
 at com.onelivesleft.pigmentdemo.LoadingScreen.update(Unknown Source)
   pause
 at com.onelivesleft.framework.impl.AndroidFastRenderView.run(Unknown 
 Source)
 at java.lang.Thread.run(Thread.java:856)


 When run on a Razr the app will be loading exactly the same apps, creating 
 exactly the same bitmaps (same resolution: 800x480.  The only time it 
 scales up for a higher-res display is the final blit to screen)...  I just 
 don't get it.

 Any help/info appreciated!

 Iain


-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] OOM on Droid 4 / Razr / Razr Maxx (so: Motorola Android phones?)

2012-10-11 Thread Iain King


Had a sudden influx of users recently, and from that I've discovered that 
my app doesn't run on the Droid 4 or the Razr.  It seems that it runs out 
of memory, though the app runs fine on all other handsets (AFAIK), 
including much older handsets. For example, it runs on the HTC Desire, 
which has half the RAM of the Razr.  I don't have any motorola handsets (or 
I'd just be debugging with them), and it runs fine in both the Razr and 
Droid4 emulated AVDs (from Motodev).

Does anyone have an idea as to what is going on?  Is there something up 
with Motorola's architecture?  The Razr has a whopping 1gb of RAM, yet does 
this:


java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:631)
at android.graphics.Bitmap.createBitmap(Bitmap.java:611)
at com.onelivesleft.pigmentdemo.GameScreen.init(Unknown Source)
at com.onelivesleft.pigmentdemo.LoadingScreen.update(Unknown Source)
  pause
at com.onelivesleft.framework.impl.AndroidFastRenderView.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)


When run on a Razr the app will be loading exactly the same apps, creating 
exactly the same bitmaps (same resolution: 800x480.  The only time it 
scales up for a higher-res display is the final blit to screen)...  I just 
don't get it.

Any help/info appreciated!

Iain

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Re: OOM on Droid 4 / Razr / Razr Maxx (so: Motorola Android phones?)

2012-10-11 Thread Iain King
When run on a Razr the app will be loading exactly the same apps

*When run on a Razr the app will be loading exactly the same assets


-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Re: reduce size of a screen

2012-05-28 Thread Iain King
On Sunday, 27 May 2012 08:31:01 UTC+1, baturanija1 wrote:

 Hej people,i am making an application wich screen has a good dimension 
 for my phone-HTC DESIRE .there are othes phones who has smaller or 
 bigger screen...so i am asking is there an option to makk app to 
 automaticly reduce a size of a screen for all size of telefon screen? 
 Thanks for reading :)


The HTC Desire is my main dev target for games.  What I've done/found (this 
is very hand-coded):

Using a SurfaceView for output.  I develop all my art assets for 800x480 
(Desire native).

When the app starts it works out the aspect ratio of the phone's screen, 
and then works out what the equivalent Desire res, depending on the 
orientation I want.  For example, if I want Landscape: I take the phone's 
physical short axis in pixels and work out it's ratio to the desire's 480.  
I then multiply that by the phone's physical long axis: I now know I'm 
rendering to something N x 480 pixels.  Theoretically I then render to a 
bitmap that size every loop, then blit that to the screen, scaling to the 
physical screen size.

Here's where it gets tricky:

If the screen is larger than the Desire's, you need to blit it with 
anti-aliasing on in order to make it look good (this isn't hard, you just 
need to know to do it).

If the screen is smaller than the Desire's you're probably gonna run into 
trouble:  the available heap scales on a per phone basis depending on the 
screen's resolution.  If you are storing all your bitmaps at 800x480, but 
are on a phone that is only 320x240, then you are probably going to run out 
of memory and crash.  Therefor, on startup, you check if the physical 
screen is smaller than your target render, and if it is you scale down your 
internal bitmaps, and you scale down all your assets as you load them.  So 
instead of rendering to an N x 480 bitmap then blitting it to the 
SurfaceView, you render to an N x 240 (in this example) bitmap and blit 
it.  On smaller screens you don't need anti-aliasing: you are down-sampling 
so it should be fairly good without it.

Examples:

ARCHOS 101 tablet, 1024x600 resolution:
scaling the 600 to 480, this gives 819x480.  I load all my assets normally 
and render to an output that size, then blit that to the screen, scaling up 
with anti-aliasing turned on.

HTC Wildfire, 320x240 resolution:
240 / 480 = 0.5: when I load all my graphics assets I scale them down to 
half size.  I render to a bitmap that's 320x240 in size and blit it to 
screen without antialiasing.

That's the simple approach.  On top of that you have to work out how you 
handle aspect ratio changes: do you just scale and thus skew the output, or 
do you render more stuff on widescreen and chop the edges off for 4:3.  

Using this method you only need one set of art assets (as opposed to the 
normal Android way of including different versions for different 
pixel-densities).  As such, it will basically look less-good the further 
the screen it's running on is from the target screen (800x480), but in my 
experience it is well within acceptable bounds, and the pros outweigh the 
cons (ease of development, unbloated .apk size).  

Note that this is for game development, using fullscreen and rendering 
everything by hand.  If you were using the Android UI normally I doubt it 
would be as good a technique.

Iain

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Re: Repeat background

2012-05-28 Thread Iain King

On Monday, 28 May 2012 10:38:01 UTC+1, Kristoffer wrote:

 Hello. 
 Iam using a small image and repeats it as a background in my app, 
 this 
 is how i do it. 

 bgrepeat.png 
 backgroundrepeat.xml 


 i have them in the drawable folder. 


 This is how the .xml look like. 


 bitmap 
 xmlns:android=http://schemas.android.com/apk/res/android; 
 android:src=@drawable/bgrepeat 
 android:tileMode=repeat 
 android:dither=true 
 / 


 And i just call in in xml like this. 
 android:background=@drawable/backgroundrepeat 


 If i run this on my Galaxy S2 then the background repeats and looks 
 good, but if i try on a tablet (galaxy 8.9) then it does not repeat 
 it 
 just zooms the bgrepeat.png file, and same result in emulator on my 
 pc. 

 I need to know that this will work on most devices, and why it doesent 
 work on every device.. bug? 
 Any idees? 



I'm not sure if this is your issue, but I had a slight glitch on a tablet: 
the tablet had a user controlled scaling thing to 'help' it better run 
phone games.  My app automatically detected the screen size and scaled 
itself accordingly, but if the tablet's scaler was turned on then it messed 
it up. The user report was:

---
Had a slight issue with the background image not filling the screen but was 
easily resolved by changing settings from stretch to fit to zoom to fit
---

Same issue?

Iain

  

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Re: removing image data from memory

2012-05-09 Thread Iain King
Bitmaps have a recycle() method.  I don't think that will fix the problem, 
I'm replying with it only because you haven't specifically listed it.  I 
was using it, and like you have said: it helped a bit but did not solve the 
problem. 
I'm afraid I'm making sure I don't get an OOM crash by calling 
System.exit(0) whenever the user switches away from my app - means it takes 
a couple of seconds for them to get back in, but I rate them not seeing the 
app crash above instant-access.  I realise that doesn't help you - I was 
crashing on Resume, whereas you are running out of memory during 
operation.  Hope you come up with something!

Iain

On Monday, 30 April 2012 19:15:02 UTC+1, momo wrote:

 I have to believe there's a way to clear image data from memory once it's 
 no longer required, but despite exhaustive searching I can't find a 
 solution.  Both this list and stack are full of questions regarding OOM 
 errors, specifically bitmap size exceeds VM budget, but I still don't see 
 a clear answer.

 I understand there are hard memory limits on devices, and I understand 
 it's not realistic to load up and display or cache large amounts of image 
 data, but there should be away to discard data that's no longer required.

 For example, imagine this very basic hypothetical app, that emulates a lot 
 of the behavior of the native gallery app:

 1. An image gallery that allows the user to peruse images from a remote 
 server.
 2. There might be any number of images on that server.
 3. The app displays 1 image at a time, and allows a user to go back or 
 forward 1 image at a time through button presses or swiping.
 4. There'd be a maximum of 3 images rendered at any one time (so the user 
 can see the one immediately to the left or right of the current image when 
 swiping).  All other image data should be discarded.
 5. Images are loaded using URL.openStream and Drawable.createFromStream or 
 BitmapFactory.decodeStream.  Streams are closed appropriately.
 6. Images are sized appropriately *on the server* before being fetched.
 7. Loading happens in AsyncTasks.  Tasks that are no longer needed (due to 
 moving away from an image with an incomplete task) are cancelled.  Any 
 references in the AyncTask are WeaklyReferenced.
 8. When any image is no longer required, it's cleared via:
   A) getBackground().setCallback(null)
   B) Listeners are set to null
   C) setImageDrawable/Bitmap(null)
   D) removeView

 This simple construct, that takes into account all the suggest practices 
 I'm aware of, will inevitably crash with an OOM error at some point.  Using 
 BitmapFactory.Options inSampleSize and inPreferredConfig will delay the 
 inevitable, but not forever, and at the cost of image quality.  In this 
 example, I've used remote images, but the issue exists with images stored 
 in /assets/ or in internal memory, etc.

 My feeling is that if we can display X amount of image data at one point, 
 and we take all steps to remove that image data from memory, we should be 
 able to display that same amount of data later, without having to 
 compensate for what has happened before.

 With the sheer quantity of questions about this very issue, I'd hope to 
 have a standard solution documented, but if there is one, I can't find it. 
  I've seen answers posted by Romain Guy, who otherwise seems very generous 
 with his knowledge and active in the community, that say something like 
 Simple.  Don't use so much memory.  OK.  Tell me how.

 Am I missing something fundamental?  Is there a way to discard image data 
 once it's no longer being used?  What is missing from the above to create a 
 simple photo gallery?  Assuming the built-in gallery app uses the FW, I 
 imagine there has to be a way...

 TYIA.




-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-12 Thread Iain King


On Thursday, 12 April 2012 15:27:29 UTC+1, latimerius wrote:

 On Thu, Apr 12, 2012 at 2:34 AM, b0b  wrote:
 
  Would it also be possible to initiate the LVL check from the free app?
 
 
  Not possible. You cannot add the request LVL permission to a free app.

 Hmm, that's kind of silly.  Obviously, it makes no sense to LVL-check
 a package that's free in the first place, however this should not
 depend on the package that is asking but the package being asked
 about, right?

  The solution described by MagoutaWare works very well.

 In theory yes, but although I'm most definitely not too much of a
 cracker, I'm confident I could disable a security check that's alone
 in its executable in a matter of minutes. :-(

 This sounds like a borderline showstopper to me, I'll have to consider
 whether it's actually even worth bothering with LVL under these
 circumstances...


You know, that's not a terrible idea.  You can still release stuff on Play 
without implementing LVL, right?  Or even if you can need some, you could 
implement token code that does nothing.

Iain 

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-12 Thread Iain King


On Thursday, 12 April 2012 16:26:37 UTC+1, latimerius wrote:

 I too consider not protecting the app at all a valid option.  However,
 ideally I would like to have something to deter the more simple-minded
 cracking attacks.  Anti-copying protection seems to follow the 80/20
 rule quite often - confusing and annoying the army of script kiddies
 or attackers who are not very knowledgeable or motivated doesn't cost
 you all that much.  The rest you'll have to bow to anyway.

 And I too agree that user convenience weighs more than good
 anti-copying measures.  Which is why I'm considering, if I can't do
 LVL under the free/paid app scheme properly, it might be better to
 avoid it altogether.  Because pretty much anytime you use a protection
 scheme, you run a risk of annoying legitimate users - and running that
 risk doesn't seem to be worth it for a protection that doesn't even
 protect very much.

 Not being able to obfuscate and hide LVL code in other code is quite a
 big deal here - under the particular circumstances (all of your code
 and assets live in untrusted environment) obfuscation is your
 front-line security measure.  Without it, your security core (the LVL
 check itself) becomes exposed and vulnerable.

 I'll have to think about this some more and weigh carefully pros and cons.

 2012/4/12 Kostya Vasilyev kmans...@gmail.com:
  I'll try to throw in a few more two cent coins :)
 
  1) Hackers and piracy, pt1.
 
  Some people on this list have stated that they've chosen to not implement
  LVL for a paid app, and to spend that time improving the app.
 
  There is certainly nothing wrong with that decision.
 
  2) Hackers and piracy, pt2.
 
  Not every user is going to search for a cracked copy of a paid app they
  would like to have.
 
  Some just press Buy, even when there is a cracked version somewhere.
 
  Of those, I suspect some consciously do it to support the developer, some
  don't realize there are sites with cracked apps, some are worried about
  malware and so install from the more official source (Market), some do 
 it
  for the convenience.
 
  3) Base app + unlocker key vs. limited free + full paid apps.
 
  There are apps in Market that use either approach, and at this point, I
  believe both ways are well understood by the users (at least the type who
  can find the Menu button on their phone... some can't...).
 
  I would look at how the users are going to transition from the free/base 
 app
  to the full/unlocked app with as little interruption as possible.
 
  If the app is such that the user spends a lot of time setting it up (the
  free/base version at first), I'd either:
 
  - go with the base/unlocker approach so that the data stays intact
 
  - provide a really easy, preferably automatic export / import or 
 transition
  capability
 
  -- K
 
  12 апреля 2012 г. 18:35 пользователь Justin Anderson 
  написал:
 
  In theory yes, but although I'm most definitely not too much of a
  cracker, I'm confident I could disable a security check that's alone
  in its executable in a matter of minutes. :-(
 
  An experienced hacker could pretty much do that no matter what you do...
 
 
  Thanks,
  Justin Anderson
  MagouyaWare Developer
  http://sites.google.com/site/magouyaware
 
 
  On Thu, Apr 12, 2012 at 8:31 AM, Iain King wrote:
 
 
 
  On Thursday, 12 April 2012 15:27:29 UTC+1, latimerius wrote:
 
  On Thu, Apr 12, 2012 at 2:34 AM, b0b  wrote:
  
   Would it also be possible to initiate the LVL check from the free
   app?
  
  
   Not possible. You cannot add the request LVL permission to a free 
 app.
 
  Hmm, that's kind of silly.  Obviously, it makes no sense to LVL-check
  a package that's free in the first place, however this should not
  depend on the package that is asking but the package being asked
  about, right?
 
   The solution described by MagoutaWare works very well.
 
  In theory yes, but although I'm most definitely not too much of a
  cracker, I'm confident I could disable a security check that's alone
  in its executable in a matter of minutes. :-(
 
  This sounds like a borderline showstopper to me, I'll have to consider
  whether it's actually even worth bothering with LVL under these
  circumstances...
 
 
  You know, that's not a terrible idea.  You can still release stuff on
  Play without implementing LVL, right?  Or even if you can need some, 
 you
  could implement token code that does nothing.
 
  Iain
 
  --
  You received this message because you are subscribed to the Google
  Groups Android Developers group.
  To post to this group, send email to 
 android-developers@googlegroups.com
  To unsubscribe from this group, send email to
  android-developers+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/android-developers?hl=en
 
 
  --
  You received this message because you are subscribed to the Google
  Groups Android Developers group.
  To post to this group, send email to 
 android-developers

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-12 Thread Iain King


On Thursday, 12 April 2012 16:26:37 UTC+1, latimerius wrote:

 I too consider not protecting the app at all a valid option.  However,
 ideally I would like to have something to deter the more simple-minded
 cracking attacks.  Anti-copying protection seems to follow the 80/20
 rule quite often - confusing and annoying the army of script kiddies
 or attackers who are not very knowledgeable or motivated doesn't cost
 you all that much.  The rest you'll have to bow to anyway.

 And I too agree that user convenience weighs more than good
 anti-copying measures.  Which is why I'm considering, if I can't do
 LVL under the free/paid app scheme properly, it might be better to
 avoid it altogether.  Because pretty much anytime you use a protection
 scheme, you run a risk of annoying legitimate users - and running that
 risk doesn't seem to be worth it for a protection that doesn't even
 protect very much.

 Not being able to obfuscate and hide LVL code in other code is quite a
 big deal here - under the particular circumstances (all of your code
 and assets live in untrusted environment) obfuscation is your
 front-line security measure.  Without it, your security core (the LVL
 check itself) becomes exposed and vulnerable.

 I'll have to think about this some more and weigh carefully pros and cons.



You've pretty much summed up what I was thinking. 

Iain

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King
In the near future I'll be releasing a game on Google Play: both the full 
game (costed) and a free demo.  The LVL license model looks good for this: 
when I check whether the user is licensed to play the game I can have it 
fully available if they've bought it, or switch to a cut-down feature set 
if they have not (i.e. a demo).

My question is: does the Google Play store support this?  Can it provide 
both a Buy and a Try button? Buy gives them the license and downloads 
the app, Try just downloads the app?  I've had a look, but for any given 
app have only found a single Install/Buy button.  Everyone who releases a 
free version seems to do it by releasing two different apps - I'd rather 
avoid that if I can.

So: does Google Play have this built in?  If not I'll happily go suggest it 
on their site: wanted to make sure I wasn't missing it first.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King


On Wednesday, 11 April 2012 12:47:30 UTC+1, Mark Murphy (a Commons Guy) 
wrote:

 On Wed, Apr 11, 2012 at 7:39 AM, Iain King  wrote:
  Everyone who releases a
  free version seems to do it by releasing two different apps - I'd rather
  avoid that if I can.

 Then use in-app purchasing. Only distribute the free app, and have the
 app upgrade itself to paid (e.g., unlocking features) if the user buys
 the upgrade through in-app purchasing.

 The separate free/paid apps are for cases where you do not want to use
 in-app purchases for the upgrade, and for apps written before in-app
 purchases existed.

 -- 


 

 Mark Murphy (a Commons Guy)
 http://commonsware.com | http://github.com/commonsguy
 http://commonsware.com/blog | http://twitter.com/commonsguy

 Android Training in NYC: http://marakana.com/training/android/


On Wednesday, 11 April 2012 12:47:30 UTC+1, Mark Murphy (a Commons Guy) 
wrote:

 On Wed, Apr 11, 2012 at 7:39 AM, Iain King  wrote:
  Everyone who releases a
  free version seems to do it by releasing two different apps - I'd rather
  avoid that if I can.

 Then use in-app purchasing. Only distribute the free app, and have the
 app upgrade itself to paid (e.g., unlocking features) if the user buys
 the upgrade through in-app purchasing.

 The separate free/paid apps are for cases where you do not want to use
 in-app purchases for the upgrade, and for apps written before in-app
 purchases existed.

 -- 
 Mark Murphy (a Commons Guy)
 http://commonsware.com | http://github.com/commonsguy
 http://commonsware.com/blog | http://twitter.com/commonsguy

 Android Training in NYC: http://marakana.com/training/android/


That would work, but I don't like the user experience: their first 
interaction at the store is to see Install (Free), and then their first 
interaction in the game is to see Buy me now!!!.  I take it you're 
confirming that Google Play doesn't as yet do what I was asking?  If so 
I'll probably go down the two-app route, (and go post a suggestion to 
them). Thanks! 

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King


On Wednesday, 11 April 2012 13:04:51 UTC+1, Mark Murphy (a Commons Guy) 
wrote:

 On Wed, Apr 11, 2012 at 7:56 AM, Iain King  wrote:
  That would work, but I don't like the user experience: their first
  interaction at the store is to see Install (Free), and then their first
  interaction in the game is to see Buy me now!!!.

 Then don't do that. You are the one coding the Buy me now!!! stuff.
 If you do not want that to be the first interaction, don't make it be
 the first interaction.

  I take it you're
  confirming that Google Play doesn't as yet do what I was asking?

 I have never seen it, nor do I see where it would be possible.

 -- 
 Mark Murphy (a Commons Guy)
 http://commonsware.com | http://github.com/commonsguy
 http://commonsware.com/blog | http://twitter.com/commonsguy

 Android Training in NYC: http://marakana.com/training/android/


You don't see where it would be possible? Fair enough. 

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King


On Wednesday, 11 April 2012 16:06:58 UTC+1, MagouyaWare wrote:

 I have an app that uses two apk's... One is the free one, and the paid one 
 acts as a plugin to unlock features in the free one.  I developed this 
 before in-app purchasing was available, but I don't know if I would have 
 used in-app purchasing had it been available for use due to all the drama 
 with patent trolls (you know who you are Lodsys)... 

 But what worked for me was this:

1. Put ALL functionality in the free app
2. Give both apps the same sharedUserId (there are some unintended 
side effects of this, and Dianne Hackborne often recommends you don't use 
it, but I think it is a good fit for my case). 
3. Put all the LVL code in your paid app... When the license check 
happens, set a preference value (encrypted) indicating whether it 
 succeeded 
or not
4. Create a service as part of the paid app that your free app can 
call to initiate the LVL check 
5. In your free app, read the same (encrypted) preference that is set 
in the paid app to determine if you should run in free or paid mode

 It seems like a bit of work but it wasn't all that hard to actually 
 implement.  My paid app actually does nothing other than the LVL check 
 through the service.  It has a launchable activity in case users get 
 confused but all it does it launch the free app and quit.

 On a side note... Does anyone know if anything has gotten resolved with 
 the in-app purchasing fiasco with Lodsys?  I know Apple contends that their 
 developers are safe because their license covers them... I haven't heard of 
 anything official from Google though...
  Thanks,
 Justin Anderson
 MagouyaWare Developer
 http://sites.google.com/site/magouyaware


 2012/4/11 Kostya Vasilyev 

 And to add two more cents: in-app items don't show in the user's 
 purchases list in Market... scratch that, Google Play application on the 
 device.

 Sometimes this raises questions about whether they'd have to be 
 repurchased - even though they don't, obviously not every user understands 
 this.

 -- K

 11 апреля 2012 г. 16:42 пользователь Latimerius написал:

 On Wed, Apr 11, 2012 at 1:47 PM, Mark Murphy wrote:
  On Wed, Apr 11, 2012 at 7:39 AM, Iain King  wrote:
  Everyone who releases a
  free version seems to do it by releasing two different apps - I'd 
 rather
  avoid that if I can.
 
  Then use in-app purchasing. Only distribute the free app, and have the
  app upgrade itself to paid (e.g., unlocking features) if the user buys
  the upgrade through in-app purchasing.

 Be aware though that in-app purchasing doesn't take care of content
 delivery.  In practice, that makes it quite a different beast from the
 two app model if you have content to deliver in response to purchase.

 --
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en


  -- 
 You received this message because you are subscribed to the Google
 Groups Android Developers group.
 To post to this group, send email to android-developers@googlegroups.com
 To unsubscribe from this group, send email to
 android-developers+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/android-developers?hl=en



Doesn't that end up with your user ending up with both apps installed 
anyway?  So at some later time when they are trying to clear up space, they 
still see YourGame Demo is installed, and nuke it?  Probably not that big 
an issue, but might be unexpected for them.  Regardless, it still requires 
you to build 2 different apps, which is the main annoyance for doing it 
that way.   Definitely better than In App (which looks fiddly and much more 
likely to foul up than basic per app authentication), but if I'm going 
2-app I'm gonna keep it simple.

Iain

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King


On Wednesday, 11 April 2012 16:22:11 UTC+1, latimerius wrote:

 2012/4/11 Justin Anderson 
  My paid app actually does nothing other than the LVL check
  through the service.

 Would it also be possible to initiate the LVL check from the free app?
  Client-side security has to rely on obfuscation to some extent,
 otherwise the attacker can simply find and disable the LVL check.
 From what I understand the LVL code should ideally be intermingled
 with unrelated code - but if it resides in an executable pretty much
 by itself, doesn't it mean the check is easy, perhaps even trivial to
 circumvent?

 I'm also leaning towards the two .apk solution but I thought I'd be
 able to run the LVL check for the paid app from the free app.


One thing you could do is create the app as normal, put it on Play as a 
paid download (and have it function as a demo when not licensed), and 
provide a link to the .apk on your own website, with a prominent link on 
the Play page.  Not as nice as if Play offered it for download 
intrinsically, and you'd probably run into trust issues with users 
unwilling to install an app from a 3rd party site (and it would require 
them to toggle the switch in settings to run too, wouldn't it?), but would 
basically allow for having 1 app do both jobs.

Iain

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Re: [android-developers] Demo/Full Game options on Google Play

2012-04-11 Thread Iain King


On Wednesday, 11 April 2012 16:37:24 UTC+1, MagouyaWare wrote:

 Doesn't that end up with your user ending up with both apps installed 
 anyway?  So at some later time when they are trying to clear up space, they 
 still see YourGame Demo is installed, and nuke it?

 In my case no, because I don't market it as a trial version... I market it 
 as AppSwipe! Task Switcher and AppSwipe! Unlock Key


 http://groups.google.com/group/android-developers?hl=en


Ah, that's nicely thought out. 

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

[android-developers] Sharing private data between apps of differing permissions

2012-03-08 Thread Iain King
In order to minimise the required security for my apps I would like to 
split them into 2: the core app which has effectively no required 
permissions, and a manager app which will have internet access/write to 
SD/etc permissions.  That way users can happily install the base app 
without having to grant anything, but opt into the advanced features with 
the manager if they want to.  I'd rather not use the external storage to 
store data, so what methods can I use to get information from the core app 
to the manager?  It looks like SharedPreferences and SQLite don't allow 
access from another app (even one from the same developer).  Storing to 
Internal Storage?  Any problems with that?  Links to examples would be 
appreciated!

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en