Programming [11/13-alpha09] Unofficial Showdown! Client for Android

Hi there,

Intro
I've started working on an android client for PS few month ago.
This was motivated by the need of a new project that would be easier to understand by the community, easier to maintain by the community and that uses more modern code, patterns and design.
Why developing a native app when play.pokemonshowdown.com is supporting mobile devices ?
Well, web client does its best to support small screen sizes (and it does it pretty well) but the user experience is far away from what a native app is able to provide.
What this client is ?

The goal of this app is to provide a client with a convenient and suitable UI for mobile devices without loosing any part of the experience you would have on official client (eg. tips, types, stats etc...).
What this client is not ?
This client is not, and will never be, a replacement for the desktop/web client. It's more like a companion app to be able to play PS everywhere, without needing your desktop computer.
______________________________________
Current state: ALPHA (ver: alpha09)
Do not hesitate to post here your thoughts on the app, your bug reports and recommendations !


______________________________________
How to test:
The app is available as a closed alpha on Playstore (Easier for bug reports and logs).
To be able to install it, you need to be part of the closed alpha I created.
To do that follow these steps:
  1. Join this google group.
  2. Now you are allowed to enroll to the test program here.
  3. And now (if I didn't messed up :mehowth:) you should be able get the app from the Playstore (by searching for it or directly here)!
PS: You might be able to find the app on the playstore website, but you must be part of the alpha program to get it.

______________________________________​

Bug Reporting:
______________________________________

Want to help ?
Non dev:
You can help a LOT by reporting any bugs or giving your thoughts on the app and recommendations !

Dev:
If you are an android enthusiast with minimum skills in android development and you would be interested in joining the project and helping for alpha release and bug fixing part, I would be more than happy to help you understanding how this client work ! The more we are the more we can do!
The project repo contains a README file describing how the code works and the project code structure so it would be easy for you to get in!
If you are interested, send me a message!.
Source code:
github.jpg
______________________________________
 
Last edited:
Changelog
  • alpha01
    • Nothing its the first one lol
  • alpha02
    • Added hit sound
    • Better move "animations"
    • Added sound on/off
    • Added pkmn's cries
    • Added chat messages in battle
    • Various fixes
  • alpha03
    • Improved team builder layout and beahviour
    • Added import/export pokemon
    • Added stats table with indicators
    • Added HTML support in chat rooms and battles
    • Added user search
    • Added high quality type and category icons
    • Added same username colors as in official client
    • Added "gg" shortcut
    • Added overlay when no battle is running
    • Fainted pokemon are now grayscaled
    • Better handling of login and logout
    • Better handling of network disconnections
    • Added new "message" indicator in bottom tabs
    • Fixed stripped username in chat
    • Fixed speed ranges calculation
    • Fixed battle previews
    • Fixed crash with some Z-moves
    • Fixed raw message order in battles
    • Fixed alot of crashes
    • Fixed some too bright colors

  • alpha04
    • Added support for gen8 (updated dex, move infos, items etc...)
    • Implemented support for dynamax
    • Fixed some infos displayed in lowercase in tip popups (Items, abilities etc...)
    • Improved tips for zmoves
    • Fixed text layouting for some inbattle UI elements (volatile status, abilities activation etc...)
    • Fixed some crashes for unkown species or moves
*I'll add gen5 community sprites support soon :).

  • alpha05
    • Implemented support for double battles!
    • Added support for unanimated sprites
    • Added shortcut to bug report from
    • Fixed drawing order in battle layout
    • Fixed crash when switch request asked
    • Fixed crash when searching for battle while user teams aren't loaded yet
    • Fixed crash when parsing smogon team
    • Other minor fixies
  • alpha05b
    • Added team preview decision support (Yes, I totally forgot this one in alpha5)
    • Added gen8 dexicons
    • Added gen5 icons fallback for teampreview and teambuilder
    • Fixed battle request widget alpha animation
  • alpha05c
    • New PS servers location

  • alpha06
    • Added night mode and reworked a bit overall design
    • Updated all dex, items and moves data
    • Added support for ditto's 'transform' and other forme changes that weren't supported
    • Fixed PS server's disconection when opening team builder or minimizing the app
    • Fixed learnsets that didn't include pre-evolutions moves...
    • Removed "not ladderable" tiers from search battle menu
    • Added copy team feature
    • Better ordering of teams
    • Added support for boost commands variants (invertboost, clearboost etc...) (ie. move such as haze etc...)
    • Added support for sethp command (pain split etc...)
    • Added keyboard input for evs (a value of 4 was really hard to set with the slider!)
    • Fixed boosts and unboosts amount rounding
    • Fixed formating for some messages in battle log
    • Fixed accuracy and evasivness stat names in battle log
    • Fixed "can't miss" moves handling
    • Fixed crash when minimizing the app
    • Fixed lot of crashes in battles

  • alpha07
    • Overall
      • Added support for private messages and challenges
      • Added smogon thread recommendation when reporting a bug
      • Added search cancellation, improved searching ui state handling
      • Fixed WS connection when re-binding to service
      • Other minor fixes
    • Battles
      • Fixed status not well set when cured
      • Fixed some null log entries during battle
      • Fixed field effects not showing up well (weather and fields)
      • Added support for baton pass
      • Fixed wrong item/ability shown in tip popup
      • Added support for pokemon swap in battles (Ally switch etc.)
      • Fixed lead choice for doubles
      • Added support for latest battle texts
      • Fixed bugged switch choice in doubles
      • Fixed username issue causing inverted foe/trainer battles
      • Fixed battle choices not showing up for pre gen5
      • Other minor fixes
    • Team builder
      • Fixed item not assigning to pokemon
      • Added highlight to item and species selection
      • Fixed wrong pokemon icon showing up when scrolling
      • Added icons and matching text highlighting to species selection
      • Fixed species selection not showing up in team builder
    • Chat rooms
      • Added user list in chat rooms
      • Added support for PS custom message formatting (bold, monospace...) and urls
      • Fixed url span when an url is at the end of a message
      • Fixed announcement color
  • alpha07b & c
    • Various crash and bug fixes

  • alpha08
    • Overall
      • Added support for landscape on large screen devices
      • play.pokemonshowdown.com urls can now be oppened directly with showdown client
      • Better handling of disconnections and config changes
      • Fixed uncomplete searchable tiers
    • Battle
      • Fixed wrong disabled state for gmove and zmove (ie choice scarf and gmax)
      • Added save and share replay feature
      • Added instant rematch feature
      • Better support of watching battles
      • Full names for volatile status (confusion, yawn, perish song etc...)
    • Chat
      • Usernames are now clickables for private messaging or challenging users
    • Team Builder
      • Totally rewrote team builder
      • Reworked team list UI
      • Better support of team/poke copy-paste
      • Added import from Pokepaste (thanks ArkUmbra)
      • Fixed few bugs with smogon team format
  • alpha09
    • Overall
      • Added support for replays (Huge thanks to ArkUmbra). It supports replays searching with filters, play/pause, skip turn and restart behaviours.
      • Added support for watching battles. It also supports searching and filtering.
      • Added support for showdown news.
      • replay.pokemonshowdown.com urls can now be oppened directly with showdown client
      • pokepast.es urls can now be oppened directly with showdown client
      • Show full alert messages if too long (ie. rejected team reasons)
      • Added (clickable) joined battles/rooms in user details popup
      • Fixed a LOT of bugs !
    • Battle
      • Added decision modification for doubles !!
      • Added messages in battle when pokemon cannot move (flinch, sleep etc...)
      • Fixed shiny pokemons shown as regular ones
      • Fixed wrong sprite dimensions for 2D sprites
      • Fixed withdraw message line shown after a pokemon fainted
      • Correctly cleared sprites when a battle ends
      • Fixed wrong dex sprite shown for non base forme pokemons
      • Fixed pokemon selection during teampreview (ie. for VGC or when a pkmn has Illusion etc...)
      • Decimal health support in pokemon's condition
      • Fixed UI in tips popup
      • Fixed the infamous unkown battle type !
    • Chat
      • Fixed rooms sorting in room selection menu
    • Team Builder
      • Fixed nicknames not saved correclty
      • Added full base learnset for mega and other formes
      • Auto select required item for special formes (ie. mega stones)
      • Fixed bugs that led to crashes
 
Last edited:
I there any way to log into an existing Showdown account? It auto logged me into a guest account and I can't log out or change it seemingly.
 
Sure, it the actual version, you have to search for a battle to be prompted to login, then enter your username, if it's registered, the password will be asked.
Also the alpha03 version will come at the end of the month, it'll bring lot of new/improved things, including better handle of logging in!
 
Hi majeur ! This is a great project you have here :)
I would be happy to help testing the app, and also developing as I have some experience in Android development (though it is not my area of expertise anymore). I'm lodart (Romain Lebouc) on Github :)
 

Alumn

Sukcesu cena
is a Contributor Alumnusis a Smogon Media Contributor Alumnus
It's really a good project imo, I'm sure I couldn't make something like that. So gratz!!!

Secondly, I don't know where you guys have a bug/suggestion report, so I will post my though in a spoiler, so I wan't pollute the thread.

1) make that yellow color HP better, I can't really read that + fix hp show (it shows hpfire60) + show opponents Pokémon used attacks.
SmartSelect_20191106-225740_Showdown Client.jpg


2) you can join just 1 room at the same time + it cut the first letter of regular users/rank of staff
SmartSelect_20191106-225854_Showdown Client.jpg


3) show opponents killed Pokémon

4) fix outrage client show (null/null if protected and -1/-1 if used error)
SmartSelect_20191106-225944_Showdown Client.jpg
 
It's really a good project imo, I'm sure I couldn't make something like that. So gratz!!!

Secondly, I don't know where you guys have a bug/suggestion report, so I will post my though in a spoiler, so I wan't pollute the thread.

1) make that yellow color HP better, I can't really read that + fix hp show (it shows hpfire60) + show opponents Pokémon used attacks.View attachment 204376

2) you can join just 1 room at the same time + it cut the first letter of regular users/rank of staffView attachment 204377

3) show opponents killed Pokémon

4) fix outrage client show (null/null if protected and -1/-1 if used error)View attachment 204378
Thanks, for now it's not that good in terms of stability but thanks for the kind words!

Usually bug reports are done through Github but that would be more convinient for everybody to do this here in smogon forums. Do you know if we can make a subthread thing here ?

1) make that yellow color HP better, I can't really read that + fix hp show (it shows hpfire60) + show opponents Pokémon used attacks.View attachment 204376
Too bright yellow: already done, will be avaible in alpha03
Move names as id: will be done, maybe not in the next release.
Move used and pp tracking: planned.


2) you can join just 1 room at the same time + it cut the first letter of regular users/rank of staffView attachment 204377
First letter in username cutted: already fixed, will be in alpha03.
Multiple rooms at the same time is not planned for now


3) show opponents killed Pokémon
Also already done and ready for next release: they are now grayscaled in player info bar (where you can see player's team)

4) fix outrage client show (null/null if protected and -1/-1 if used error)View attachment 204378
Needs to be investigated

Thanks for reporting.
 

Lu

Said the Moon to the Thief
is a Site Content Manageris a Social Media Contributoris a Forum Moderatoris a Contributor to Smogon
This is indeed an interesting project, mainly because the browser version of PS! is rather uncomfortable to use, at least for me.
Anyways I wanted to report a bug:
If Meloetta uses Relic Song, its transformation is mentioned in chat but not seen in battle nor is its Speed stat change visible, showing only the speed it may have in its Aria Forme and not the one it may have in its Pirouette Forme. (I forgot to take a screenshot of its Speed stat)

Screenshot_1.png
 
Works pretty good, the only weird thing is that the ability names and items are all in lower case

The chat is a bit too low for my linking, but that's a great client :blobthumbsup:
 
Have only played a bit but seems I can't Find a Battle for Balanced Hackmons. It force closes the app whenever I try. I was able to play thru a random gen7 singles battle just fine though. It looks nice, too.
 
It seems to have updated to gen 8, but only gen 8 random works. I tried to make a gen 8 ou team, but none of the new pokemon were available. Also, in the random match I played, the pokemon's sprites were on the wrong sides, and I couldn't look at the item or stats of the pokemon I had out. But other than that, this is a great app. I look forward to its growth and hope it's successful!
 
The current version does not support gen8, you could see [gen 8] tiers because tier list is comming directly from PS servers but, gigamax is not implemented yet and pokedex, moves etc are not up to date !

This will come quickly as there is not a lot of work to do.

Glazed_Belmont : This is already fixed and ready for the next update, what do you mean by the chat is a bit to "(s)low" ?

Fm27483 : I've never tried that tier, I'll look into it later. The tier that I play the most (hence test the most) are RandomBattles Ubers OU UU (NU a bit). Thanks for pointing it out.

ZeroRanger : It technically could work, but new pokemon and new moves will be unkown to the client, gigamax will not be possible to choose etc...

To All: thanks for the support ! And thanks for reporting issues, I'll do a google form to let you report bugs and track them in an easier way.

Edit: See #Bug Reporting on first post (BugReporting form: https://forms.gle/tqSeeZ9De3ik97CK8)
 
Last edited:
Guys, I just uploaded alpha05 version.
I have finally achieved to implement support for double battles !!
It also brings support for unanimated sprites, ie gen8 temporary 2D sprites.
See the changelog post for other addings.

Thanks to all for reporting bugs, it helps alot in making this client better!

Edit: I just released an alpha05b version where team preview is fixed !
 
Last edited:
Your app is still in alpha, and it is already much better than the last attempt was when it was abandoned after 2 years. I would love to see continued development on this. A small feature request (very minor, mostly needless) is to not show the pasword field until it is possible to enter a password in the login screen.
 
Now that I have some experience with Unity and Unreal, I'd like to help. Especially since it would be a good excuse to give myself a reason to start up my balance mod.
 
Your app is still in alpha, and it is already much better than the last attempt was when it was abandoned after 2 years. I would love to see continued development on this. A small feature request (very minor, mostly needless) is to not show the pasword field until it is possible to enter a password in the login screen.
Thanks, appreciate. Ok I'll take note for the next release.

Now that I have some experience with Unity and Unreal, I'd like to help. Especially since it would be a good excuse to give myself a reason to start up my balance mod.
Youre help is more than welcome !! You can first read the Github repo's README and navigate through the code to get familiar with the project. If you need some explainations on some part of the code u can ask me!
 
Just thought I'd say I love the app and the work being done so far. I was going to see if it'd be possible to add weaknesses to the pop up after you select a pokemon?

Also, I've noticed I've had problems constantly disconnecting. Happens every few minutes in the app even though my internet is fine.
 
Last edited:
Just thought I'd say I love the app and the work being done so far. I was going to see if it'd be possible to add weaknesses to the pop up after you select a pokemon?

Also, I've noticed I've had problems constantly disconnecting. Happens every few minutes in the app even though my internet is fine.
You can type "/weak thepoke" in send message popup it'll show you what you need.

Are you leaving the app ? or like putting it in background by opening another app ?
 
You can type "/weak thepoke" in send message popup it'll show you what you need.

Are you leaving the app ? or like putting it in background by opening another app ?
Oops! Sorry completely forgot about the command because I use an extension on PC haha. Sorry about that.

Nope, leaving the app open and just switching between teambuilder or any other tab makes it disconnect. However, after some thought and testing it turns out it's on my end. I have a very very weird internet setup currently. My setup is using an old android phone to grab the signal from roughly 150 feet away with an app, then that same app broadcasts the signal back out through the home. It doesn't support HTTPS unless the phone is rooted, so I believe there's where the issue is stemming from.

So with that being your app works fine! Sorry, about the non-issues!
 

Lu

Said the Moon to the Thief
is a Site Content Manageris a Social Media Contributoris a Forum Moderatoris a Contributor to Smogon
Quick question, is it mandatory to do report the bugs using the google form? Or reporting them here still works too?
Both ways are ok, but reporting here could be quicker if there are various bugs to report at once imo.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top