Are you a developer? Want OGS on a mobile device? (OLD Android and iOS app development thread)

ditto

1 Like

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

3 Likes

Thank you for working on this. Canā€™t wait to test it out!

1 Like

Hi Rvzy,

that sound cool! Keep up the good work :smile:
Guess that leaves the iOS part openā€¦ Any ā€œswiftā€ takers who want to chip in?

Bart-Jan.

1 Like

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.

2 Likes

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.

1 Like

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.

1 Like

This will always list your own ongoing games:

https://online-go.com/api/v1/me/games/?started__isnull=False&ended__isnull=True

Notice the me uri so it requires that you be logged in.

2 Likes

Hi All,

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.

1 Like

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.

:slight_smile:

1 Like

@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.

3 Likes

by the way, you can run OGS through dolphin browser on the android TV

just download dolphin browser from the play store and GO

1 Like

Dear all,

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

7 Likes

Hi there @cerisara check out our real time api here to access chat:

1 Like

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.

1 Like

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.

1 Like

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.

2 Likes

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.

Thanks !

1 Like

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 :frowning:
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 :smile:

2 Likes

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.

2 Likes