* Simplify resource management for iOS
Introduces new a new task 'sync<FRAMEWORK_CLASSIFIER>ComposeIosResources',
which collects resources from all source sets, included in iOS targets.
With this change:
* CocoaPods integration does not require any configuration or calling 'pod install' after changing resources.
* Important: existing projects need to remove 'extraSpecAttributes["resources"] = ...' from build scripts, and rerun `./gradlew podInstall` once!
* Without CocoaPods, the resource directory should be added to XCode build phases once.
Resolves#3073Resolves#3113Resolves#3066
* Add a warning for a user who sets `compose.kotlinCompilerPlugin` to `android.compose.compiler.compiler`
The warning will show up only when a multiplatform project contains at least one of the non-jvm targets: k/js, k/native or k/wasm
* fix typo
* PR review
* Refactor to BuildService
* fix typo
* Improve error messages when checking tasks
Previously some errors in checkRuntime task
were reported as a nested exception.
By default, Gradle shows only top-level
error message of an exception, which
made some errors confusing.
For example, when javac was missing from JDK,
Gradle only showed "Could not infer Java runtime version for Java home directory".
The part that said javac was missing was only shown,
when Gradle was run with --stacktrace argument.
This is suboptimal UX, so this commit refactors
checkRuntime to make error messages more descriptive.
#3133
* Handle JDK 1.8 correctly
* Prebuild jdk version probe
* Redesign chat example
* Minor typography improvements
* Code cleanup
* Update examples/chat/iosApp/iosApp/iosApp.swift
Co-authored-by: Ivan Matkov <ivan.matkov@jetbrains.com>
* Use JPG instead of PNG
* Turn background in to a JPG
Add raw PXD file.
* Remove TEAM_ID
* Move to sp sizes
* Make Android text consistent with iOS variant
* Prefer light color scheme to prevent unwanted text color switch
* Remove PXD
---------
Co-authored-by: Ivan Matkov <ivan.matkov@jetbrains.com>
* Add a benchmark extracted from #2283 issue
* A benchmark with infinite animation based on official template project
* A benchmark app extracted from compose/integration/macrobenchmark
* A benchmark app extracted from the NY sample of examples/visual-effects
* First pass at adding Xml parsing support to js platform
Likely still need to add tests and samples
* Add JS to Parser Node and Element converter
Mirrors native impl by returning empty strings when content is unavailable
Moves MalformedXMLException out of native code, useful for common case.
* Remove unneeded null checks in Parser
Last commit handled null management
* Add newlines for code linter
* Fix namespaceUri bug
Undo accidental capture of localName
Also remove unneeded null check
* Undo grade.properies change
Had to disable webpack version number property to run sample
* Clean up NodeImpl comments
Corrected description
* Make NodeList impl lazy
Generates only when needed, serves cache after
* Remove submodules since they are not required for development anymore
* Keep only needed scripts in compose directory. Everything else is moved to core repository
* Update README.md in compose development folder
* Change web -> html
* Refactor video player`isMacOS` function
* Refactor video player `mediaPayer` extension function
* Re-implement the experimental video player
* Use icons instead of labels and buttons for video player controls
* Center video player controls
* Add a TODO to video player to make the slider logarithmic
* Add `rememberVideoPlayerState` function for video player
To simplify state management for the client
* Extend a comment with more info
* Improve a KDoc
* Specify video player minimum size for the window
* Use `VideoPlayerState` instead of explicit parameters for video player
* Reorder a statement in video player
* Use the implicit `it` instead of named lambda parameter
* Use `roundToInt` instead of `toInt` for converting a `Float` to percentage
* Update some documentation
* Remove a redundant trailing comma
* Add more comments about video player fullscreen option
* Add some functions to VideoPlayerState
And use them in the code
* Add `ms` unit label to video player timestamp
* Remove a redundant import statement
* Simplify video player `produceProgress` function
* Extract video player URL as a constant
And add some docs about local files
* Add some comments
About placing controls on the video player which is NOT currently possible.
* Add video player minor code improvements
* Ensure video player volume icon and slider are aligned
* Make video player control icons smaller
* Add some comments for video player Progress class
* Improve video player speed input
* Extract a remember function call to an outer function
* Convert a lambda to method reference
* Update the video player component
* Convert video player progress from return value to state property
* Add a compose html paragraph
* Update README.md
* Update README.md
* Update README.md
* tuned Compose HTML description and moved above "Learn more". Waiting for proofread.
* minor edits after proofreading
* fixed a typo
---------
Co-authored-by: Ekaterina.Volodko <ekaterina.volodko@jetbrains.com>
* Fix signing bundle with Gradle 8.1 with configuration cache
Compose Gradle plugin was launching
`/usr/bin/security --find-identity` in a lazy property of
AbstractJPackageTask. Without the configuration cache
the computation was delayed to the execution phase.
However, configuration cache serializes all properties of
all configured tasks, so launching of `/usr/bin/security`
shifted to the configuration phase.
Gradle 8.1 started to throw an exception if an external process is
launched during configuration time.
This change explicitly moves the call to
`/usr/bin/security` to the execution phase.
Resolves#3060
* Turn off Gradle configuration cache for one test
* Improve a message about incompatible kotlin version
Add Compose Multiplatform to the message
* Update gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeCompilerCompatibility.kt
Co-authored-by: Igor Demin <igordmn@users.noreply.github.com>
---------
Co-authored-by: Igor Demin <igordmn@users.noreply.github.com>