I’ve had to take a break because I’m busy but I’ll start working on it again around July.
I’m writing it in C# with Xamarin for Android.
As for beta testers/translators. I’ll probably be releasing a beta version once all of the features are implemented so I’ll post about that when it happens. It will be in English only to start with, if it’s successful I’ll add some more languages and features
This is a passion project so I can’t really afford to expand upon it much unless I get some compensation for it, it’s possible that I’ll open source it.
I’m looking at the end of the year/very early next year for release.
A little more(stress the little) info here https://github.com/EReeves/OGSAndroidCommitLog
Thank you for working on this. Can’t wait to test it out!
that sound cool! Keep up the good work
Guess that leaves the iOS part open… Any “swift” takers who want to chip in?
Would it be possible to get an android app that simply puts a notice in your alert bar that it is your move in one or more games? Even if you can’t play on it or see the games? The web app looks great on my device, I jut don’t like always checking to see if it is my move.
This is a little more challenging than it seems and requires some server infrastructure to work… we would need a service listening for notifications that could push them to android and ios devices and it would need tight coupling with an app. both android and ios now have pretty strict guidelines on what an app can do and a simple notification app likely won’t pass muster.
I have no idea how the back end works but would it not be possible to just add another page to the API that lists the gameid of games where it is your turn? It’s not something that would work for real time notifications but checking every couple hours would be reasonable for most correspondence time settings.
It’s something I’d like to add to my app at some point if possible.
This will always list your own ongoing games:
Notice the me uri so it requires that you be logged in.
i just bought Android TV Box, and thinking to enjoy Go game on big TV screen.
it will be fun to enjoy Go with family in front of big screen.(be it online, or offline challenge)
Anyone or any group can develop client to be run on Android TV Box ?
This needs a lot efforts, and many thanks in advance.
I, too, have an Android TV Box; and, I love it!
My coding skills are not up to par for this task.
But, I will be glad to beta test.
@pathogenix, do you have a repository on github yet? If not, I’d encourage you to choose a license, and publish your code (even if ugly)! The sooner you do this, the sooner others can collaborate with you and get a working prototype.
by the way, you can run OGS through dolphin browser on the android TV
just download dolphin browser from the play store and GO
I’ve released an open-source android client to play correspondence go for some time now, and I’ve just added some simple beta-code to allow playing OGS correspondence games on android smartphone.
It looks like it’s working for me, although nothing shiny can be done for now:
- you can only play a move on every game where it’s your turn
- you can also accept challenges, but not propose new ones
nothing more for now, but I think it’s enough to start with, because the rest can be done less frequently on a real computer.
You can find it here: https://github.com/cerisara/DragonGoApp
I’m currently beta-testing it: you’re welcome to also try it !
After a few days of beta-testing to locate bugs, I plan to release a version on F-droid.
I have one question: do you know how to access the chat with the API ? Because the app is unable to see chats/comments for now, and I think that’s really the next feature to add.
Thanks for your feedback
Just looking through your code, it looks like you may be exposing your OGS api access keys via your github repo. I’d strongly caution against doing that.
Thanks for the real-time api, I’ll have a look at it.
As for the keys, I don’t have any key stored in my repo (neither client id, nor client secret, nor of course the player access token). Both client keys are downloaded at launch time from a live server. I don’t know of any better (and reasonably easy) way to get them (?).
Thanks for the help.
I think the best way to go about it is to keep them alongside your build tree locally and prevent them from being stored in your source tree. Other developers would need to generate their own key in order to support it in local builds. This is a pretty well documented development pattern.
The problem here is that anyone building your app from source would use your same keys, if anyone ever started abusing the key then we’d be forced to disable it and that would disable it for all app users.
OK, I understand the risk and I’m going to use this solution for now.
But I didn’t used it to start with because it’s not easily compatible with the F-droid open-source approach, which guarantees that delivered apks come from a known open-source repo by rebuilding the apk from scratch on their server.
There may be a way though, but I’ve got to investigate a bit the f-droid builds…
Also, with the keys kept locally in a config file, I assume that the config file has to be encrypted in some way ? Otherwise, it may be easy to decompile the apk with, for instance, intelliJ, and get the key ?
Just thinking about it, that may work indeed with on-demand deciphering the key…
But there still is a vulnerability I guess: what about wiresharking the connection going out from the mobile ?
May be it’s not an issue thanks to https, which encrypts the messages…
It’d be nice to have a wiki page discussing about all these issues and solutions.
Sorry to come back to this, but after more thinking, it looks like the only safe way is to ask every user of a client app to create himself the client id + secret, and enter both in the app at runtime
In other words, doing as if every user developed his own app.
That’s because whatever encryption/keys/server you use, it’s always possible to decrypt everything in an apk and extract the keys.
… But then, what is the whole purpose of having client credentials ? A single user-specific secret is enough to also identify an app…
Anyway, this type of discussion already occurred at F-Droid, and they rejected the option of having private configuration file for these very same reasons.
So, I’m gonna build myself the apk with a private config file, and don’t distribute the apk with f-droid; it’s far from perfect because the keys may still be hacked, and the app’s users will not have any guarantee about the software source as with f-droid, but at least they’ll be able to play go on android
Certainly there are ways to get the information from the client, there’s no real way to stop that but it’s immensely better than having them available in search results and widely viewable in github.
I’m familiar with the f-droid discussion around this from the time they basically grabbed one of my open source apps and built it and hosted it themselves without even telling me about it. Then I had to deal with all of the support requests when features of my app that required externals keys (much like you have to do here with OGS) didn’t work.
I’m not a big fan of how they run things.