All Projects → Skyyo → samples

Skyyo / samples

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

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to samples

Coffeegram
Android app using Jetpack Compose together with StateFlow and MVI
Stars: ✭ 155 (+638.1%)
Mutual labels:  jetpack, compose, jetpack-compose
Jetpack-compose-sample
Forget about bunch of XML files for maintaining UIs. Jetpack Compose is Android’s modern toolkit for building native UI. Here is a small example to get started.
Stars: ✭ 29 (+38.1%)
Mutual labels:  jetpack, compose, jetpack-compose
JetComposer
Collection of UIs and Animations built with Jetpack Compose for Android
Stars: ✭ 294 (+1300%)
Mutual labels:  jetpack, compose, jetpack-compose
arkitekt
Arkitekt is a set of architectural tools based on Android Architecture Components, which gives you a solid base to implement the concise, testable and solid application.
Stars: ✭ 114 (+442.86%)
Mutual labels:  jetpack, compose, jetpack-compose
bitcoin-market-android
Bitcoin Market app shows you the current Bitcoin market price and price chart of different time intervals 💰
Stars: ✭ 284 (+1252.38%)
Mutual labels:  jetpack, compose, jetpack-compose
Composecookbook
A Collection on all Jetpack compose UI elements, Layouts, Widgets and Demo screens to see it's potential
Stars: ✭ 3,516 (+16642.86%)
Mutual labels:  jetpack, compose, jetpack-compose
compose-charts
Simple Jetpack Compose Charts for multi-platform. Including Android, Web, Desktop.
Stars: ✭ 30 (+42.86%)
Mutual labels:  jetpack, compose, jetpack-compose
PCard
Demo project to showcase adding payment card details using JetPack Compose
Stars: ✭ 61 (+190.48%)
Mutual labels:  jetpack, compose, jetpack-compose
Delish
Delish, a Food Recipes App in Jetpack Compose and Hilt based on modern Android tech-stacks and MVI clean architecture.
Stars: ✭ 356 (+1595.24%)
Mutual labels:  jetpack, compose, jetpack-compose
ComposeBird
Flappy Bird game
Stars: ✭ 193 (+819.05%)
Mutual labels:  jetpack, compose, jetpack-compose
Compose-Settings
Android #JetpackCompose Settings library
Stars: ✭ 188 (+795.24%)
Mutual labels:  jetpack, compose, jetpack-compose
neon
Provides Jetpack Compose support for different image loading libraries.
Stars: ✭ 13 (-38.1%)
Mutual labels:  jetpack, compose, jetpack-compose
wordle-kt
Wordle game clone made with Kotlin & Compose
Stars: ✭ 33 (+57.14%)
Mutual labels:  compose, jetpack-compose
me
A Jetpack Compose Kotlin Multiplatform WYSIWYG blog editor
Stars: ✭ 62 (+195.24%)
Mutual labels:  compose, jetpack-compose
Jetpack Compose News
基于Jetpack Compose实现的一款集新闻、视频、美图、音乐、天气等功能的资讯App,持续完善中...
Stars: ✭ 58 (+176.19%)
Mutual labels:  jetpack, jetpack-compose
RocketXDelight-Playground
Native Android application built with Kotlin and Jetpack Compose. This project also illustrates the usage of advanced libraries such as Ktor, SqlDelight, Hilt, etc with the recommended practices and Unit Tests.
Stars: ✭ 37 (+76.19%)
Mutual labels:  jetpack, jetpack-compose
kmm
Rick & Morty Kotlin Multiplatform Mobile: Ktor, Sqldelight, Koin, Flow, MVI, SwiftUI, Compose
Stars: ✭ 52 (+147.62%)
Mutual labels:  compose, jetpack-compose
Holi
Holi is a lightweight Jetpack Compose library of colors, gradients and cool utility functions for all your palette needs!
Stars: ✭ 160 (+661.9%)
Mutual labels:  jetpack, jetpack-compose
datmusic-android
Music search, downloader & player app using Jetpack Compose
Stars: ✭ 448 (+2033.33%)
Mutual labels:  compose, jetpack-compose
Compose-BreakingBad
🧪 ☠︎ Jetpack Compose - Breaking Bad ☢︎
Stars: ✭ 26 (+23.81%)
Mutual labels:  jetpack, jetpack-compose

Project containing Jetpack Compose & Android samples

For pagination & network images it uses CATAAS.

Known issues

Navigation-Compose

  • Issue with fast tapping on destination

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

  • issue, issue, issue with adjustPan/adjustResize mode not pinning to the focused textField. Workaround
  • issue with keyboard being hidden when focus is shared between composables & views

Miscellaneous

  • We can't drop usage of liveData completely since we can't return stateFlow from the savedStateHandle, also it is still needed for scenarios which cover flow being observed with flatMapLatest ( as a typical scenario for searching by query ). Latter issue
  • drag & drop feature. possible workaround, library
  • 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.
  • LazyVerticalGrid seems to be really imperformant and not adviced to use. Instead use combinations of Column + Rows
  • Fling breaks on skipped frames. issue
  • Need to find an alternative to onboarding guides from the view system like these libraries provided: onboardingFlow,TapTargetView,Spotlight

Limitations

  • We're forced to use ProvideWindowInsets composable as a wrapper for composables in fragment based projects
  • 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.

Snap behaviour ( seems there is already WIP on it and it might be available on accompanist soon

  • grid snapping

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
  • 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

  • issue with changing focus on backpress ( affecting OTP sample ). It's marked as fixed, let's check it and adjust code to have proper OTP sample.

  • spinners with a lot of items like country flags etc.

  • Draw / hide something using coordinates. Look into onGloballyPositioned modifier

  • How to do custom shapes ripples

  • Staggered grid example

  • https://github.com/Skyyo/drawing-floating-objects-inside-view in compose

  • compose with ad mob

  • draggable sample like here. Sample which allows to drag elements in 1 screen from top, right & bottom for example.

  • memory leaks in compose section

  • add reselect bottomBar tab listener and dispatch this event to the composable.

  • sample of how to handle exclusion of back gesture areas. Sample should contain a LazyRow, which has it's sides excluded from the system gesture invocation.

  • custom calendar, should be customizable like this. Info: 1,2,3

  • DownloadManager sample. Should cover all cases (internet connection loss, fresh boot etc, cancellation) Compare with WorkManager, and describe pros & cons.

  • Baseline Profile. Measure the impact on dummy flows

  • check the issue with compose & svg's. Icons don't mirror?

  • add flexible autocomplete & auto-fill sample/samples

  • exoplayer sample with gestures like here

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.```
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].