Skip to content
/ samples Public

Jetpack Compose based project, used to stress-testing compose features / integrations and explore non-trivial functionality

License

Notifications You must be signed in to change notification settings

Skyyo/samples

Repository files navigation

Project containing Jetpack Compose & Android samples

For pagination & network images it uses CATAAS.

Known issues

Paging

  • Can't declare state listeners on the Flow<PagingData> or Pager or similar. We're forced to propagate important events from bottom to top instead of top to bottom. issue

Modal Drawer

  • can't change width, issue
  • can't peek to reveal, issue

Google Maps

Icons

Keyboard

Miscellaneous

  • Need to remember lambdas which capture outside scope when not not used as a reference issue
  • We can't drop usage of liveData completely since it is still needed for scenarios which cover flow being observed with flatMapLatest ( as a typical scenario for searching by query ). Latter issue
  • Persistent Bottom Sheet sample doesn't work right now due to this issue
  • there is no out of the box support for scroll bars as of August 19, 2021. Sample for simple cases
  • bottomSheet destination is not preserved by default when navigating to new destination and coming back. Workaround
  • no way to create nested sticky headers. Workaround imo is changing design or making one lvl of the headers as a composable that animates text changes.
  • Fling breaks on skipped frames. issue
  • Health connect permission resolving issue
  • Language picker has issue on Android 12 issue
  • We can handle "save to wallet" result only from activity (https://issuetracker.google.com/issues/239603300)
  • Autocomplete issue
  • Custom text spans need additional API for proper RTL & BiDi support issue
  • Use ImeAwareLazyColumn until compose LazyColumn ime overlap issue not fixed (https://issuetracker.google.com/issues/192043120#comment78)
  • Drag&drop implementation is tricky because of lack of native compose support as of September 21, 2022 issue

Limitations

  • There is no way to navigate from composable to fragment & share a navigation graph between them. (not an issue)
  • Deep links might require lot of additional work if we need to open them in a specific bottom bar / drawer tab.
  • We need to use setViewCompositionStrategy when working with fragments
  • Surface composable has issue with elevation overlapping. This is considered a proper behaviour and one of the workarounds would be using Scaffold.

TODO

Paging ( all cases should be tested with both PagingSource & RemoteMediator versions ).

  • add sample of how to use maxSize
  • scroll to top feature with maxSize (page dropping) enabled.
  • paging with Grids
  • allow modifying lists using selectedIds array, to ensure any modification behaviour is working well & can be properlly restored across PD ( eg. selection, checkboxes )
  • immitate socket updates ( eg. stock price updates or smth )
  • check out if it's a bug or misconfiguration inside paging+room sample. Upon entering the screen we're fetching twice.

Pager

  • add tab indicator animation like on google weather application.
  • update ViewPager sample since they've removed scroll limit. Need to see when would we really want to use it now instead of directly using LazyColumn/Row.

Google Maps

  • try out the compose maps version, and check all issues related to the maps we have right now. Especially regarding dynamic styling.

Animations

  • Animations typical for iOS. can be found in olx, monobank. When we scroll something, toolbar changes content relatively to some text/icon being scrolled behind the toolbar
  • add more animate on scroll animations
  • add on scroll animation using animatable DP
  • enhance parallax sample, show how to add snapping behaviour
  • AppBar auto elevation for dark theme sample
  • Container transformations. eg. small circle from bottom end of the screen floats to the center of the screen and changes it's size. Both back& forward animations should be flawless and tested across PD.
  • Spolier animation on text, like in Telegram Android
  • add snowflakes as modifier like here, but snowflakes that actually look like snow.Relate to my gist here, it's a working solution for view system inspired by Telegram Android hidden winter feature, circa 2019. Modifier should handle being added to different view types ( please use common sense in case there are blockers )
  • Circular reveal animation. Ensure it can be used with Fragment based project, or show 2 different samples. Info: 1, 2, 3, 4. There is a library which needs to be tried out, maybe that's exactly what is needed
  • circular reveal upon changing theme
  • cool transformation animations in google owl sample
  • complex motion layout example ( currently it supports only 2 states so might be left for later )
  • animate shape form, eg from circle to star

Uncategorized

License

MIT License

Copyright (c) 2021 Denis Rudenko

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.```

About

Jetpack Compose based project, used to stress-testing compose features / integrations and explore non-trivial functionality

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages