# I've just released a cube app for Android



## RichardSenior (Jan 10, 2015)

Hello,

Not sure this is the right forum but android devices are hardware aren't they?
I've just released my android app RightPrime
on play store. It's been about 2 years in the making, and features a link to this forum in the about screen.
It's totally free.. before anyone thinks I'm selling something..

You can use it to share and analyse solves (using QR Codes), get genuinely random solves, and various other things.
Currently it's internationalised for English, French, German, Russian and Simplified Chinese.
It has bugs for sure.. but it's probably the best cube app there is at the moment.. in my opinion of course 

If people have suggestions please leave them here?

If this is the wrong place to announce this can someone please suggest an alternative forum?


----------



## Seanliu (Jan 10, 2015)

As I don't have an Android, I merely looked at screenshots and the description. I have to say that you could make the description a little bit clearer, but just from the outside, it looks great.


----------



## biscuit (Jan 10, 2015)

There is a software section. I don't have an Android (or any other hand held by that matter) but it sounds great. I will see if I can check it out


----------



## dan41 (Jan 11, 2015)

* the icon show R, not R' (I just found it funny...)

* context menu button does nothing?

* on start, its purpose is really unclear. I was hoping to get scramble generator, but I cannot see where it is.

* I expected also a touch timer with inspection time, and avg of N, etc...

* THANK YOU A LOT for making an app requiring NO (significant) PERMISSION. Finally someone who gets it! Only taking photo is fine, not indicative of some scheme to trace me...

* if you get to render a scramble algo, please group the moves in 3 to 5 turn, use spacing or new lines, allow custom font size too. It all makes it much easier to read.

* if you use a true pieces scrambler with kociemba solver, say it! this is a big plus for you. Getting dummy apps that do 20 random face turns is not the same, they say. If you don't use it, say it too.

* I would also like a keypad for 

```
U         y
inv. L F R B     zx
wide   D
```

all 6 faces 3 orientation with a INV modifier and WIDE modifier. 
the touch interface is far too unstable.
The modifiers get consumed when a face or xyz are touched of course.

Hope this helps.


----------



## dan41 (Jan 11, 2015)

Oh, since you have customizable colors setting for faces, you can color code the scramble turns (either foreground or background, or none to make it optional). This also makes it more readable.


----------



## Me (Jan 12, 2015)

It's a little too sensitive on my phone but I overall like it. Great name, great icon.

On the keypad dan41 mentioned: a while ago I came up with a mobile keyboard layout for cubing. It was more for typing algs than using them to execute algs out. A sketch of it here -> https://imgur.com/wcXQttJ


----------



## Lucas Garron (Jan 12, 2015)

dan41 said:


> * the icon show R, not R' (I just found it funny...)



It needs an R' to solve. ;-)



Me said:


> On the keypad dan41 mentioned: a while ago I came up with a mobile keyboard layout for cubing. It was more for typing algs than using them to execute algs out. A sketch of it here -> https://imgur.com/wcXQttJ



Or implement something that's actually faster than typing.


----------



## RichardSenior (Jan 12, 2015)

dan41 said:


> ...



The code already contains a fledgeling moves keyboard, but I'm struggling at the moment to find out how to get the android
keyboard to swap between the moves keyboard, and the standard keyboard, which you'll need for comments.
I'll work that out and it'll be in a build soon.

* the icon show R, not R' (I just found it funny...)
Is your device set to an English locale? It should read 'RightPrime'.
It only reads R' if there's no space on the title bar...

* context menu button does nothing?

Yes, that's in line with Google's new recommendations to only use action bar menu's.
Google have deprecated the hardware menu button. Which I disagree with, but that's how it is..

* on start, its purpose is really unclear. I was hoping to get scramble generator, but I cannot see where it is.
Scramble is in the file menu. Once you've selected it the main icon flashes. Clicking on that icon will show you the generated scramble.
The scramble is true random, and would be competition standard if it were exactly 25 moves, but I cannot get the code to 
solve in exactly 25 moves. I'm working on it.

* I expected also a touch timer with inspection time, and avg of N, etc...

Coming...

* THANK YOU A LOT for making an app requiring NO (significant) PERMISSION. Finally someone who gets it! Only taking photo is fine, not indicative of some scheme to trace me...

I didn't want to even use the camera... But I like the idea of being able to share solves using QR codes, so that's the only required permission.

* if you get to render a scramble algo, please group the moves in 3 to 5 turn, use spacing or new lines, allow custom font size too. It all makes it much easier to read.

Currently scrambles are shown as 20 or so moves, all in one list without colour coding. Why do you need them grouping?

* if you use a true pieces scrambler with kociemba solver, say it! this is a big plus for you. Getting dummy apps that do 20 random face turns is not the same, they say. If you don't use it, say it too.

It does produce genuinely random scrambles using kociemba's algorithms. As I say, the scrambles are competition standard in every respect other than
that they are shorter than 25 moves.

* I would also like a keypad for 

You can use the free text box in file|import to enter moves. See above, I am working on a better, faster move entry system.

all 6 faces 3 orientation with a INV modifier and WIDE modifier. 
the touch interface is far too unstable.
The modifiers get consumed when a face or xyz are touched of course.

not sure I understand this? Can you elaborate?

Hope this helps.

It certainly does.. thank you very much for taking the time.


----------



## RichardSenior (Jan 12, 2015)

dan41 said:


> Oh, since you have customizable colors setting for faces, you can color code the scramble turns (either foreground or background, or none to make it optional). This also makes it more readable.



By colour coding you mean, if the back face is currently green, then an B' move would be coloured green etc.?


----------



## RichardSenior (Jan 12, 2015)

Me said:


> It's a little too sensitive on my phone but I overall like it. Great name, great icon.
> 
> On the keypad dan41 mentioned: a while ago I came up with a mobile keyboard layout for cubing. It was more for typing algs than using them to execute algs out. A sketch of it here -> https://imgur.com/wcXQttJ




I like that... But I have more space available on the keyboard, so my plan was to include buttons like L2 and L' etc.


----------



## dan41 (Jan 12, 2015)

RichardSenior said:


> By colour coding you mean, if the back face is currently green, then an B' move would be coloured green etc.?



yes


----------



## dan41 (Jan 12, 2015)

> * the icon show R, not R' (I just found it funny...)
> Is your device set to an English locale? It should read 'RightPrime'.
> It only reads R' if there's no space on the title bar...



No no, it says RightPrime, I just mean the icon is not illustrating a R' move.




> * if you get to render a scramble algo, please group the moves in 3 to 5 turn, use spacing or new lines, allow custom font size too. It all makes it much easier to read.
> 
> Currently scrambles are shown as 20 or so moves, all in one list without colour coding. Why do you need them grouping?



Something to lock eyes on, otherwise one could loose track of where one was (because of any distraction for example).




> all 6 faces 3 orientation with a INV modifier and WIDE modifier.
> the touch interface is far too unstable.
> The modifiers get consumed when a face or xyz are touched of course.
> 
> not sure I understand this? Can you elaborate?



I think the 6 faces should be only 6 buttons (add 6 more for x y z and M S E, which I forgot).
And don't underestimate how big they should be. A fingernail is a good size to start. Cannot shrink below 3/8 inch diameter.

Then I presume that half turns are just double hits. no need for L2, R2, etc... this would clutter the UI.

Then for sure the inverted moves a frequent, but making it big like a spacebar would make the inverse 'modifier' easy to prep. I mean modifier like you would consider the ctrl, alt or shift keys on a regular keyboard. Except, since the UI is usually single hand (thumb) driven, you must more accurately consider it like a caplocks. There is really no keyboard event at all, it is just stateful mouse clicks.

The 'wide' modifier add the 'w' to moves like 'Rw' (or r, in alternate notation).

Both modifiers may not have to stay toggled, that would be a pita for me, I think, but it could be 2 options (use sticky invert, use sticky wide).

In the end, if the user chooses to show the input keypad, the cube can be smaller and it makes space for a different layout. Perhaps a few skins would help for (left hand vs right hand vs two hands) * (portrait vs landscape) (which makes 6 skins).

* * * 

clarification: I'm speaking of a key input to interactively solve the scrambled cube on screen. I'm not commenting on how a user would import/enter a scramble, although it obviously shares similarities. However, inputing a scramble from somewhere else is not requiring the view of the cube, some that mean a lot more space for those R' R2, M', z', etc... (36 keys total).


----------



## RichardSenior (Jan 13, 2015)

*No no, it says RightPrime, I just mean the icon is not illustrating a R' move.*

Ahhh yeah.. it's like Lucas says.. it's a R' sort of, half way through it's operation 

*Grouping..*

Yes.. I like your idea of colour coding the moves list.. I just need to find a way of doing it nicely.
You can imagine that if I used the colours as they are it would make the text hard to read.. So I need to find a way
of taking the colours and reducing the contrast. I think I can do it though, I'm just worried it might make the moves list look a bit 'busy'.

*Actually playing the cube*
Ahh... right..
Well. my first though was that people could just use their fingers to maniupulate the cube.. but I did think about providing shortcuts so that
experienced cubers could manipulate the cube more quickly. 
I'm definately going to implement a pop up android keyboard for entering moves in the inport text box.. but I think you and the other person are probably
right. What about gestures? I think I might be able to have it so that you can just swipe the screen in various ways to move the cube.
If I get it right it might even feel a little bit like doing finger tricks on an actual cube.
So I could organise it so that your right hand index finger does U and your left index finger does U' etc.

I plan on keeping up to it, hopefully I can make it the best app there is.. At the moment I'm just trying to build up it's user base a bit.
There's no point in my wasting hours of my life if nobody is really interested in it..


----------



## Stefan (Jan 13, 2015)

RichardSenior said:


> The scramble is true random, and would be competition standard if it were exactly 25 moves



Um, no. 25 moves is *not* competition standard. So now I'm less convinced you know what you're doing.


----------



## Lucas Garron (Jan 13, 2015)

As Stefan points out, calling your scrambles "truly random" is deceptive.

Your scrambles are truly random in the sense that picking between R and R' as scrambles using a coin toss is truly random. But they're not random state, which is what everyone expects when you say that.



RichardSenior said:


> What about gestures? I think I might be able to have it so that you can just swipe the screen in various ways to move the cube.
> If I get it right it might even feel a little bit like doing finger tricks on an actual cube.
> So I could organise it so that your right hand index finger does U and your left index finger does U' etc.



Man, if only someone had linked to an example of this earlier in the thread. ;-)


----------



## dan41 (Jan 13, 2015)

> Yes.. I like your idea of colour coding the moves list.. I just need to find a way of doing it nicely.
> You can imagine that if I used the colours as they are it would make the text hard to read.. So I need to find a way
> of taking the colours and reducing the contrast. I think I can do it though, I'm just worried it might make the moves list look a bit 'busy'.



Yep less contrast can help. Dunno if there are built-in drop shadow for fonts in ADK... If not, it requires a bit of image processing. I never tried this, but sounds easy (recalling my image processing course...):
* draw the text in black (bold if possible) on chosen background of an offscreen image, and grab the pixels.
* apply a smoothing filter (or basically each output pixel is the avg of the 8 or 25 pixels around it), this is the shadow. (you can contrast that shadow prior to drawtext)
* draw text again with wanted colors (at same x,y if you just want font borders, or offset 1-2 pixels if you want a shadow)





> *Actually playing the cube*
> Ahh... right..
> Well. my first though was that people could just use their fingers to maniupulate the cube.. but I did think about providing shortcuts so that
> experienced cubers could manipulate the cube more quickly.
> ...



I am smiling at your ideas... Good ones. Here's another, use motion sensors/accelerators so that tilting left-right, up-down actually orient the cube on screen for looking around. Unfortunately it is a bit of math to make it work when the device is more upright (one would have to tilt sideways which is not great), but flat to 45 degrees should be possible.

Ok, I'm piling up stuff that could take 5-6 versions to realize... I know. But it's fun to dream...


----------



## UnsolvedCypher (Jan 14, 2015)

I can help translate this into Spanish, so please pm me if you are interested.


----------



## RichardSenior (Jan 14, 2015)

Randomness..

Cube Explorer works by essentially breaking apart the cube and reassembling it in a random order that fits parity etc.
It then solves that cube programatically and gives you the moves in reverse order.
Do do this Cube Explorer uses exactly the same Kociemba algorithms that RightPrime uses.
The difference is that Cube Explorer tries to make the solution to that random cube fit to exactly 25 moves whereas rightprime
provides the first sub 25 move solution it finds to the random cube.

Gestures.

Yes I saw that  And that is exactly the kind of thing I think I'll try and do.


----------



## RichardSenior (Jan 14, 2015)

UnsolvedCypher said:


> I can help translate this into Spanish, so please pm me if you are interested.



That would be fantastic! There is a Spanish (Spain) language pack in there already, but it's machine translated.
Please go herel and download the english strings.
Edit that file to spanish and mail it back to me at [email protected]

You'll find a section in 'about' which says something like 'EN translation by RS.
Please feel free to put your own name in there. So something like
ES translation by UnsolvedCypher (or your real name etc.)
That way you'll recieve some nice credit for the translation pack.

Be aware that I might edit what you've done before I include it, just to make it consistent with the other language packs.

Also be aware that it took me and a friend nearly 2 hours to translate this to Hindi.
If you want the current machine ES translation I can put that up on the site for you.


----------



## RichardSenior (Jan 14, 2015)

Scrambles used to be provided by Cube Explorer... and they were 25 moves.
I see now, having reviewed the Cube Association site that it's a 'minimum of 16'.
If this is the case then RightPrime is now producing truly competition grade scrambles.


----------



## RichardSenior (Jan 14, 2015)

Colours.

Android has a think called the 'Paint' object. And it also provides neat methods for taking a colour and altering it's hue or brightness etc.
So it's definately possible. 
There are things to think about though... It's not as easy as making all F moves Blue (or Red or whatever)
What happens in the moves list after a whole cube move is perfomed.
The code will have to know which face is now back and down etc. 
Again not a problem, but just something to think about.
I think it will really speed up following a scramble though, I like the idea.

Motion Sensors.
You know what.. that's not actually very hard to do. 
It might be very frustrating though! I'll have an experiment with it.
Yes.. There's a lot to do! But there's no harm getting a list of nice to have features, even if some of them don't actually get implemented
Thanks for your suggestions.


----------



## Stefan (Jan 14, 2015)

RichardSenior said:


> Cube Explorer tries to make the solution to that random cube fit to exactly 25 moves



No it doesn't.



RichardSenior said:


> Scrambles used to be provided by Cube Explorer... and they were 25 moves.



No they weren't.



RichardSenior said:


> I see now, having reviewed the Cube Association site that it's a 'minimum of 16'.



No it's not.


----------



## RichardSenior (Jan 14, 2015)

Could you tell me what is the official scramble method. RightPrime does not produce scrambles by randomly selecting moves. It produces a random cube using a Kociemba algorithm (the same one as Cube Explorer) and then solving the random cube, reversing the move sequence to produce a scramble.
In that way the scramble is genuinely random, even if the number of moves is 'perhaps' not what it should be.


----------



## dan41 (Jan 14, 2015)

RichardSenior said:


> It's not as easy as making all F moves Blue (or Red or whatever)



Yes it is.
lol.





> What happens in the moves list after a whole cube move is perfomed.
> The code will have to know which face is now back and down etc.
> Again not a problem, but just something to think about.
> I think it will really speed up following a scramble though, I like the idea.



It's only to read scrambles and scrambles don't contain cube rotations, don't they?
So problem avoided for scrambles. All I had in mind was exactly like D=white, U=yellow, etc... according to user prefs.
I wouldn't color code any other turn sequence (like a turns log).


----------



## Stefan (Jan 14, 2015)

RichardSenior said:


> Could you tell me what is the official scramble method.



Randomly pick a cube state not solvable in less than two moves and then compute a generator.


----------



## RichardSenior (Jan 15, 2015)

Stefan said:


> Randomly pick a cube state not solvable in less than two moves and then compute a generator.



In this case, RightPrime scrambles are competition standard


----------

