Testing and Issues
Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.
A giant leap forward compared to the submission in Stage 1. The contest task is almost completed, the app can send and view many media types. The work on polls and maps is in the early stages. The overall speed of the app is about average: choppy animations when clicking on a chat in the list; scrolling through chat history could be smoother and faster; the app becomes unresponsive when the stickers tab is opened for the first time. Initial loading speed and the speed with which chats appear when the page is reloaded both have plenty of room for improvements. Search allows to find all types of objects (global search, chats, contacts and messages), however there is a little issue with messages: the results for message search are returned under the title 'Global Search'.
Some imperfections identified during the testing:
– When logging in, the app sometimes returns SRP_ID_Invalid after the 2FA password is entered.
– The chats screen is not optimised for wide screen environments.
– Some chats cannot be loaded, console shows TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)).
– Media viewer missing navigation both via keys and on-screen arrows. There is no way to stop downloading files.
– When the right sidebar is expanded, it remembers the previously opened chat and does not show new content correctly when switching chats.
– The stickers tab is incomplete – there is no way to browse through all the added sets.
– Some icons are sometimes chaotically replaced with symbols.
– Layout issues when the app is viewed on big screens.
On the positive side, tons of extra features have been implemented:
– Working QR-login flow.
– People and Recents sections.
– Right-click context menu both for messages and chats (pinning / editing / deleting / archiving, etc).
– Archived Chats.
– Chat background switch (in early stages of development).
– Additional tabs for Shared Media.
> Instant View implementation in early stages of development. +
Transferred size on startup: 1.5MB
Transferred size after logging in: 1.8MB
– Scaling issue causes the 'Next' button to appear partially outside of the screen on certain devices like MacBook 12" with zoom 100% in fullscreen mode.
– One column layout requires certain optimizations for cases when no chat selected.
– The error with unloaded chats appears occasionally, it's fixed by reloading the page.
– Almost half of the transferred size is taken by flag sprites, which allowed this submission to support flags and emoji on Windows.
— Fixed issues with 2SV
— Login UI now renders immediately after page load
— Fixed some monkey animations
— The country field now supports typing, it's now possible to login without selecting the country
Second round features:
— Chat list gets updated when new message received
— Message input and sending
— Displaying and sending media, files, and links
— Displaying a ‘Shared media’ section for chats that includes photos and files (links and audio also supported!)
— Displaying stickers, sending emoji and stickers.
— Legendary camomile background
— Global search and messages search in chat
— 2SV just works
— QR login supported
— Improved country search ("Uk" returns both Ukraine and United Kingdom)
All message types are supported:
— stickers (including laggy animated ones)
— animated emojis (try sending a single "❤️")
— albums (grouped photos and videos)
— round videos
— polls (voting feature is currently broken, sorry 😢)
— maps (live locations updates also working)
— documents(w/ download & save to disc)
— audio (can be played, loads thumbnail and shows it in the play button)
— voice (w/ waveform bars)
Bonus: Voice and Audio messages, when played, will display in MediaSession tab (if supported)
— Dialog title, online status, avatar, etc. are dynamically updated
— Online members counter for private groups
— Date separators
— Replies and forwarded messages are supported
— All message entities are supported (including nested)
— Messages from the same user in short periods of time are grouped
— Fancy "tails" on media-only messages
— All messages are updated if changed
— The pinned message is supported and takes you to the message in the chat upon click, pinning from context menu is also supported
— Some optimizations on out-of-viewport messages to improve scrolling
— Updates are applied sequentially with appropriate validations in different queues for channel and general states.
— If a hole was detected, the difference will be fetched.
Overall - Chrome Part1:
No media opening animation
Media in Forwarded messages not displaying, its written “Photo”
Messages cannot be edited
Messages deletion does not work
The message loader does not show the download progress
No default video support, no default player, selfie circle progressbar goes jerky
No message caching
You can’t switch between media left and right, there are also no arrows
The file download loader also has no download status
Chat too lagging when scrolling up 4-5 times
Stickers answer does not work
The application is too slow, especially if you scroll through the media in the right bar
If you open a private search, then you can’t close it and go to the right bar, page refresh helps
If you click on the nickname from the group, then the right bar will no longer change to other dialogs, you need to refresh the page
Photo message too wide in groups/channels
Scrolling in the contest channel lags, messages flashing, do not appear immediately
When reading a dialogue or entering a new message, chat messages disappear on their own
No bottom bar of stickers
When you open a group or saved messages, the dialog again jumps up automatically
Curved progress bar in the circle video, climbs out of the scope in the safari
I want to correct this item for REPLIED messages
Not forwarded. Sorry
Do you virtualize message history scroll view?
Looks like the app creates new auth key every time. Got an unregistered error after page reload. Google Chrome.
You should check your 2FA algo and refresh SRP_ID after wrong pass entry. Possible workaround:
if (bkgx.lesser(BigInt.zero)) bkgx = bkgx.add(p);