Last active
February 14, 2025 15:43
-
-
Save MaherSafadii/a9625035d78c69b801324af0ccb403cb to your computer and use it in GitHub Desktop.
Cupertino fidelity notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. The new CupertinoSliverNavigationbar.search searchfield bar has incorrect horizontal padding and placement. | |
2. The Cupertino wheel picker doesn't have the fade out effect for the items when they go out of view like with native. | |
3. The Cupertino wheel picker doesn't make the native tick sound effect when the selected item is changed, i tried playing aroung once to try and fix it, turns out the tick sound is a system sound that you can play using the AudioToolBox (iOS framework), you play the sound by running udioServicesPlaySystemSoundWithCompletion(1157, nil), 1157 is the id of the system sound. | |
4. There isn't a proper up-to-date toolbar API, instead we only have just trailing and leading for Cupertino nav bars, on native there is a extensive API that allows you to specify that widgets location, including on the bottom of the screen not just the top navigation bar, since the bottom is also considered a toolbar. | |
5. Adding widgets to CupertinoNavigationBar's leading and trailing is a painful chore, on native, the buttons for example automatically adapts a size and padding, and spacing, with flutter, if you want multiple buttons in the leading, you have to hack it by using a row since there is only one leading widget, and you have to set the spacing, padding and size of the buttons manually, on native you set for example a toolbar item and its placing in teh leading and it automatically deals with the all this stuff. | |
6. Flutter uses the pre-iOS 13 slider design for CupertinoSlider, its thin and the line isn't rounded. | |
7. CupertinoSlider doesn't have a haptic when reaching the min/max value, on native there is a haptic but it's a bit tricky, the strength of the haptic depends on how hard you "slam" the slider to the max or min, the harder the slam the harder the haptic. | |
8. CupertinoListSection.inset uses a wrong font for the header and footer, but CupertinoFormSection uses the correct one but without the needed leading padding, CupertinoListSection.inset's header should use the same font as CupertinoFormSection.inset, and both should have direction padding at the start in case the UI in rtl. | |
## DISCLAIMER: this turns out to be an error on my side as it turns out i had to wrap the pages inside the CupertinoTabScaffold with CupertinoPageScaffold's it just was't clear i needed to do that. | |
9. The CupertinoTabScaffold seems to interfere with the CupertinoSliverNavigationBar, since the latter received a PR recently that allows it to have a translucent background like on native, but when the CupertinoTabScaffold is used the translucent background is gone and has a color, seems some changes for CupertinoTabScaffold are after the CupertinoSliverNavigationBar PR. | |
10. There isn't a equivilent for iOS pull down buttons, so i had to use a package for it, there is a PR though that implements them but it's waiting for a blocker to get merged so thats good. | |
11. The CupertinoListTile doesn't have an API for slide actions like on native, all Flutter has is the Dismissable widget which is the bare minimum and lacks. | |
12. Animations in general feel somewhat smooth but stiff at the same time and thats because Flutter doesn't use physics based animation like on native, the dialogs on appear animation for example on native feels like smoother, the cupertino sheet and action sheet too have the same feel. | |
13. CupertinoTabView currently feels way too off & needs changes to the tab items need size and padding and font size changes. | |
14. CupertinoTabView's background is always visible, on native the default behaviour is to be hidden but visible when there is scroll content is behind it, and has an option to be always visible. | |
15. Blur surfaces in general are lacking visually, most are acceptable but the most important ones are the worst (all Cupertino navigation bar widgets and TabView background blur), they lack the native look and feel like a cheap rip-off, thankfully i wrote a proposal about implenting HIG blur materials to Flutter, and it seems like the Flutter team began work on them, this will solve future problems too, by using one of the fixed blurs that match native instead of eye balling values everytime Flutter has to introduce a new Cupertino widget that uses blur. | |
16. SF Symbols aka CupertinoIcons are out of date, no support for different thicknesses and many missing icons. | |
17. The Cupertino switch doesn't snap when holding and dragging it between on & off state like on native. | |
18. CupertinoActivityIndicator's look needs an update as it looks off compared to native. | |
19. the width of the divider between CupertinoGroupedListSections widgets is always short, it should extend further unless there is a leading. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment