From 794b705133f8564690869d023e4e6d2bb058ff4c Mon Sep 17 00:00:00 2001 From: Viktor Lidholt Date: Fri, 1 Apr 2016 15:25:51 -0700 Subject: [PATCH] Merge pull request #3052 from vlidholt/linedrawing Initial version of complex layout performance test --- dev/benchmarks/complex_layout/.gitignore | 9 + .../android/AndroidManifest.xml | 22 + .../android/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2453 bytes .../android/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1572 bytes .../android/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3602 bytes .../android/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5800 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8870 bytes dev/benchmarks/complex_layout/flutter.yaml | 6 + .../AppIcon.appiconset/Contents.json | 142 ++++ .../AppIcon.appiconset/Icon-60@2x.png | Bin 0 -> 4630 bytes .../AppIcon.appiconset/Icon-60@3x.png | Bin 0 -> 7707 bytes .../AppIcon.appiconset/Icon-76.png | Bin 0 -> 2763 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 0 -> 6241 bytes .../AppIcon.appiconset/Icon-83.5@2x.png | Bin 0 -> 6981 bytes .../AppIcon.appiconset/Icon-Small-40.png | Bin 0 -> 1293 bytes .../AppIcon.appiconset/Icon-Small-40@2x.png | Bin 0 -> 2952 bytes .../AppIcon.appiconset/Icon-Small-40@3x.png | Bin 0 -> 4630 bytes .../AppIcon.appiconset/Icon-Small.png | Bin 0 -> 869 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 0 -> 1976 bytes .../AppIcon.appiconset/Icon-Small@3x.png | Bin 0 -> 3216 bytes .../AppIcon.appiconset/icon_128x128.png | Bin 0 -> 5057 bytes .../AppIcon.appiconset/icon_128x128@2x.png | Bin 0 -> 11759 bytes .../AppIcon.appiconset/icon_16x16.png | Bin 0 -> 425 bytes .../AppIcon.appiconset/icon_16x16@2x.png | Bin 0 -> 952 bytes .../AppIcon.appiconset/icon_256x256.png | Bin 0 -> 11759 bytes .../AppIcon.appiconset/icon_256x256@2x.png | Bin 0 -> 29082 bytes .../AppIcon.appiconset/icon_32x32.png | Bin 0 -> 952 bytes .../AppIcon.appiconset/icon_32x32@2x.png | Bin 0 -> 2237 bytes .../AppIcon.appiconset/icon_512x512.png | Bin 0 -> 29082 bytes .../AppIcon.appiconset/icon_512x512@2x.png | Bin 0 -> 57476 bytes dev/benchmarks/complex_layout/ios/Info.plist | 47 ++ .../ios/LaunchScreen.storyboard | 27 + dev/benchmarks/complex_layout/lib/main.dart | 636 ++++++++++++++++++ dev/benchmarks/complex_layout/pubspec.yaml | 8 + .../test_driver/scroll_perf.dart | 11 + .../test_driver/scroll_perf_test.dart | 47 ++ 36 files changed, 955 insertions(+) create mode 100644 dev/benchmarks/complex_layout/.gitignore create mode 100644 dev/benchmarks/complex_layout/android/AndroidManifest.xml create mode 100644 dev/benchmarks/complex_layout/android/res/mipmap-hdpi/ic_launcher.png create mode 100644 dev/benchmarks/complex_layout/android/res/mipmap-mdpi/ic_launcher.png create mode 100644 dev/benchmarks/complex_layout/android/res/mipmap-xhdpi/ic_launcher.png create mode 100644 dev/benchmarks/complex_layout/android/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 dev/benchmarks/complex_layout/android/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 dev/benchmarks/complex_layout/flutter.yaml create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-76.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_128x128.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_32x32.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_512x512.png create mode 100644 dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png create mode 100644 dev/benchmarks/complex_layout/ios/Info.plist create mode 100644 dev/benchmarks/complex_layout/ios/LaunchScreen.storyboard create mode 100644 dev/benchmarks/complex_layout/lib/main.dart create mode 100644 dev/benchmarks/complex_layout/pubspec.yaml create mode 100644 dev/benchmarks/complex_layout/test_driver/scroll_perf.dart create mode 100644 dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart diff --git a/dev/benchmarks/complex_layout/.gitignore b/dev/benchmarks/complex_layout/.gitignore new file mode 100644 index 0000000000..14c7d4c3f7 --- /dev/null +++ b/dev/benchmarks/complex_layout/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +.atom/ +.idea +.packages +.pub/ +build/ +ios/.generated/ +packages +pubspec.lock diff --git a/dev/benchmarks/complex_layout/android/AndroidManifest.xml b/dev/benchmarks/complex_layout/android/AndroidManifest.xml new file mode 100644 index 0000000000..794a13f5d7 --- /dev/null +++ b/dev/benchmarks/complex_layout/android/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + diff --git a/dev/benchmarks/complex_layout/android/res/mipmap-hdpi/ic_launcher.png b/dev/benchmarks/complex_layout/android/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a55cda78cb9334956103574920b4abe035ac6c GIT binary patch literal 2453 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/android/res/mipmap-mdpi/ic_launcher.png b/dev/benchmarks/complex_layout/android/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..eb98dc451df0af092661c34b561b729431efa58e GIT binary patch literal 1572 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FH6BT;v&p9h2H(q(o6PCvpO4|aIBTuv8k5aQF)TY84YjM3PDmE}ar?>igS=!|Ft52i5!|s zS7y#S`}iZz*6rKhuUxT0g5#By@N&m6&83Ph2DfkDzMHrG_q=79d=9SrPq}1U>L|9n z`&i-j>h){>xfX?sY*%D^G_2w%)wq)~#F4p`oFtnIfiJf3QCw#d;`) zXU!|V6+CZVwl8c~C@I*XaF;dei)P|i#+u{{#nSWsv;9jDRX(tjdz(CSbyP_8&Rq

0nOit9%NqE0}!ZzMp z(F?W;y2Ur%<-56a!&U~aGN-IxcVt#G8{Fc~y?@|~OUn0xdX~ddcmBkQW^_NDJo({V z=MB4ga>~Nw9De>eeENZ8$C^Ep3gjBB*FN~zGX4HW?moHWUOs$tjufUVrpCVi+%R>i zq=rk0v`sDR1{jY_{ICW>Up}=QXvWg-j84FZT1FmrBSgd3Z=m_nYY9 z7KZN%GnyZYdh4`2i<>d4i)R7TuN$6g7TFdu{LuaKPMWb{Y1@8*x{rr%pWIN)a7NW= zf~_o@?1v}opK8XJ325~tymXUcm{<4ZnfJnG-4$+5TqWWT-#OltG^}P{7Oxv-lxV$W z#s4Y4TP52V+4~R8`@7(EA=}3r#$TSTSBma&`XTzk*LfxLCM)q}myhtg@NS!T??Z8F z+Tn*@CvMx7s~wr%`bVwm_I86m7Jm*oHD65HVLv<4>$1XT;gCNX@n*3XexqXbtwsPf#nM`Z{PI%ie zg;7GT<%o)gZu_L#37h_OnUpm|n{SAE=UTqfJml?s&dk|~7x?xb-e4^pbMt{-WWW;F zO*J3>-(al!#kl%wT?xbIt+%2$lBA#HwaH3Om}MF~$JIKCeMfNr)e37XhN(=kc^W!x zdz=DV=gng&W4;o+v1qY|`x}P-TN~>B=ovMf6l|jS+mw2@0ZUvlFw)Sy|e*OB-pFcx6IXPEtT()bf;gPsM^I5Kc`&naC@!`R%e}8}5 z&wML&w$$I5vE$RHPm4Z3KVSc_XeXa^+rrZ~kA?iv(yecMFl$h&7@?0MGQ;ZA@3=E#GelF{r5}E+v8}I%A literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/android/res/mipmap-xhdpi/ic_launcher.png b/dev/benchmarks/complex_layout/android/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f1783dbbf3c9fbf1b5580e117fe6ebb201c1f978 GIT binary patch literal 3602 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/android/res/mipmap-xxhdpi/ic_launcher.png b/dev/benchmarks/complex_layout/android/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..46828a290a7c26895fd4d51588079812046b875c GIT binary patch literal 5800 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 QFfcH9y85}Sb4q9e0G$6UJpcdz literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/flutter.yaml b/dev/benchmarks/complex_layout/flutter.yaml new file mode 100644 index 0000000000..16e08e1385 --- /dev/null +++ b/dev/benchmarks/complex_layout/flutter.yaml @@ -0,0 +1,6 @@ +name: complex_layout +uses-material-design: true +assets: + - packages/flutter_gallery_assets/ali_connors.png + - packages/flutter_gallery_assets/ali_connors_sml.png + - packages/flutter_gallery_assets/top_10_australian_beaches.png diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Contents.json b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..363d1c4ce4 --- /dev/null +++ b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,142 @@ +{ + "images" : [ + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-Small@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-Small-40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-Small-40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-60@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-Small.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-Small@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-Small-40.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-Small-40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "icon_16x16@2x.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "icon_32x32@2x.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "icon_128x128@2x.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "icon_256x256@2x.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "icon_512x512@2x.png", + "scale" : "2x" + } + ] +} \ No newline at end of file diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9996f5e598a72e8bef1db45c0b41ca9da6db01cd GIT binary patch literal 4630 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7a543edbdd4abd8835a0ef3e7d561801dffe1394 GIT binary patch literal 7707 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 E0EnXM*#H0l literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-76.png new file mode 100644 index 0000000000000000000000000000000000000000..05a826810499225d51642e35b7bfd6809d555fb4 GIT binary patch literal 2763 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 l33?*VdZx|RD7>k44ofy`glX=O&AobtV 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40.png new file mode 100644 index 0000000000000000000000000000000000000000..3006f1d348c1633d4d076ccf82bb01cec4d92480 GIT binary patch literal 1293 zcmeAS@N?(olHy`uVBq!ia0y~yV9)?z4mJh`hMs>rav2yH7>k44ofy`glX=O&z;fKv z#W5s;^X>Gz#loo~$L6c}{<=G5n^+F3*TSu9SsABti^}c|kod|b+xGFC2nGTWMtPJN&Fxzprhfzoa=eW{kDqlwKUz%yL? zFLy;trgU_Lbh5T{Hp3coXI?gGo@=Ka_I}>Jmu>c|yNOT#Tq)HwRh`-uRI~nyxmxSu zsd8KG+qXSZiJUR@pQXAgV?+#_%ZfjXe@rkb^U8X=R(6K<;=G2<`@QSym7hNUnrL{g6KsH?>S|TAiK# z-^##KX&>DG%En$|2&(wFz~qGO3A3{g?xemv74COJKr{9JUDCY`tLs}C?dMO``{OZ-G3m@rncat$ zSZ28%`MlMB$>w;E@9AOBZ(ZJ{8F%1kq0=ebq9gf^vu`bl7IBjJ+j8MjRhoQ}?%hlK zH683C;`7-|O5=aMWPf?scy%B%qu!&6&(WH-lSLF>eG*rG(6jNG*fBN6z0x0*|GbgC zci3e@YtO^Fmu9m~p3Tep@!jV6*H4URY+X*odtI|qdb29(&$5+!m%RDS^w@f-=ewD^ zS=KUT&d%!f=KQmnnl_=I(W~=`z{?~&^d7Ii*3@+u*k1EM(Yo##oOxbt>@wlH7&b;Wz!4hhMkJJcOvff z|Feo-`D95+{){W1-~9WWkT84Yt;`v5kGO8FI2zq{*KAA8BjJ~CC+8fQ?r-!$@6El( zzgOsREu1A-e&?NPnrmLM*MTI#WpztCjFjK}J9%tP(dRjG<-Tf+D@!A#D?P3L?lk#V zlv?tBGk-$#e3M^{JPbhwflYPVeEpK$20NrR-#DdPM*L#Ee?nm0h9u4T%Ov%K6Q-u| zJeTZ0{I0WqX}{gnUGs~0etB%Y`!s`BRm;??I)lkWu^eDL3eDaa_UYXMljDD^MJ6$t%yreY@Ln$JBtJF2 zyHa9LMcl5B(=Wf)@tF94U!%$7YF5wD7u9b!T;Oz`8zNoG7<-A4LI2I9b%$Q$=WG&R zz$#(fusG$>3+XvKtIzB#`^?~TZc@;B>HKC>-=&ELsg-OkKcgP!r7PPq$T?JV&UmwY zuZ&alIdp!5)cF{?((W&#yk{#18T)HAE(Y*DWANvWu0})Txec8G;s+PI1hQZw6 z`OIB5o==QpH!nLX#gM&7`@qhF2@IO1d$SB8gku@c-JW;wKVx5dN|$ceAwvcR1_n=8 KKbLh*2~7aX&0X~X literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5f7d22d364df330c5ac4ef603ddaf04a42b95e99 GIT binary patch literal 2952 zcmeAS@N?(olHy`uVBq!ia0y~yUk44ofy`glX=O&!0qJe z;uuoF_;%LM;?Sp($K^LU2nlU!pCB+z!i<@NNvx|;%Ww77zSuQe-}+3S`K|q*``?vw z&z1b@UVFJO#9bsuP-AO=W0wY}w}Rs|2O))Or(ZwsO>S1S{C=mT75URw%DuJzcVNxe_i1yFbMizT z4T=Ar@p;RBtB-TJwDt*^{F^D9w%p$2^*bZs30+Sn$=q?aJGf$p$Ty*@;p>f~KhB7B zWXns)lQ`kV5_jBCe^u4(q93O#xGZkhC5J_LPGH>QoX;e;;MpOIjd`myHobn#zGPF; z=B=~OnB|&lubpwr>gRh)#sIbIj}6;jKJo4@OP_OM&rfj{(HUP9AJ>2AJHBbdVva9{ z5xaIAdDFRmVb9$sbGt8n=M#K=iC<``>vhXN_Y@DD-t@V_XIiuLj?%--2KtNgKcB7Q zu&;b$yV?GKpUoEIzvt3K9YRIc&ImgsZux7^%IMRq8*G{mUo7Vob9t8e^YIlv&$`v~ z|13UG{g^*(dh}$IIXi5s8Tw|-{l9wVDdYPWm&Zl@*ll!Q=+th%8|5#J8_qE87QNBN zcIIB4Y*@ViKC$O3pLDp-%*g5BpB4UPGRG1ZryjTB3olG>O!vPMe9ORXc23g@%hT6p z%c?(03l^#Q^;_b5?dItolba&u3N|S7+^TIn@4DG;i(QSl0IQtOjF|0NPOdw%7Ttcx zq@>c$X#IWWT{|CnhVyJ4O!=O&*^Y_xw^s+6&sNaty1&Rv>S$BStzcE5hQ$^)`s!!K z+IMPxGZ1;>-M|pQzxD8cpp` zO;+9Y?uJzjHVyHyr(+nZUvIm~cucGQm@)VLH<#BxxhQrkQ_)CA)a&)<<+kf9Y@YKR+ojm>PN5XDa zvrNp_jdp!%afePU~N|AY_u*0Xwss#WQ_{Y>mYjqz>H|EuCTd zh}k`Ify0{vbNY++mYFLr{-~jJOmwZG^>=%J&A?yFvQ{T-WO3d9CwQ~z*_BaM-!Cz( zX!f03wxjFD?b<%0&R~K2iqDyoUW;ahZQ1+9^I77@M3>irC$HV>tyi6)`q@A6*r(ek zdV3~#nwZS``(XN#FZt)ky`ZV#wWntiXOiO2M~k}Cq{B8vL}&x>3RTxwXnhH;Xol#~a`N&BWFFV$~(4 zh!YR0xTakQy3nT-H~GJ`s{9?cW;gXe^Lzph$YdQ}|Mrtig;DF%g=g-tF-bS5pA%F* z_uf2w%GG(Zw$Ix8OMBkhf@w24m#_w?#eBaao^vu~(#hHoxzc#WrHWP8u2!VZefQer ziJs_L!Js*><{s1$IWaZc@}K$-4UN=CziZ;vukHP?N<6cBD?(GadPQ`ER1#vi%8`>7DZhI||qXU7y!7)oSbfzqtPF zwcIYNLtnlvWC-co`Ylyr^Wo&SMN7T5__)q~alBr1p84%dKU^IyR&Z&l@3_a_aCF0w z`R>JG>kgMNMw~ZW#9}sc^`*&HP1nEI=Y4xq{^4MV>&*!#)Gys#t8#GpN-wK|M@s~f zb$l4qg(4d|RemhE_1wbfP|ogm4=$@+S;;$HXiwa#)OF>I6CI!aKJ|Up-tYUCA2IlR zA|{k|>Y@%=-8AX#JAa;CVCl?QA%DMwarxbweoI__yJoCkHmQR%`WRzjgVmP#D=cgd z zdrPkW;WT!8^URZ%|M_w*F#8hk7w;$6ShzQ*@9xXV9`--kDt^=pW*AO-8IAM$#anv zvosFQyLI};=^&GHht@7($XeL`ZT8%xk6z*;s>{0?Lab-bDYCJhAh_V_hRtgx_)fmr z&-h0`ZBCoxsLn{qRHy}P##>k6~A`B%>|ZILn1{^+>WqwNO^}t zmlP$eO5__DBj2+6T>YH(n{k8q^oPHlXBM3nUSc8t*lArsEmMrVxahw{KR1bn2>DkZ z-M?O9|5=|pb=D91`;V{DQ@LI-!_}89BrTMoqe^*!jKgV$?Gh8jnJ)aWJrE+0c!Aye z%)hqz-Yn`8OAWhTT)&j?Z9eln>kD`63bw}7e|jzQufKYkbXx4qoaTGWyJa>oxlg$1 zmp}JU*9?Q1hF*2-i4S-q)B;nc%3poyUMYH?VXMgHd+d+-=6pGDS)x2q>&LB4RdLKa z&&*h}i|<(O&6lA9lb>JMv03vV!y&G#9cye?D;a#LTp{7JOWyVF@j2G|)!$3@Ph4^-vR#&3i~&FA9h>FZ?XkUY!EaCD%)M8C zF27%O+#yiRR?^_B_L3#5543aYZ1nl(>-ulH>m;TXymHnr_G+uomta|R!0XDPU(Xi5 zSb04qbf2#3OVP_;);?acMt$mM7iLf2h}XA&^71R})v`VjI91;3vFMiqkDLh}yZ+Xj>K9>5bbuoa^Elu-5*O!C#nqPmc^3q_~zv@BD z&GG_Op=IfJ)EXUl7AOlQF(fm{3KqPPGd5tmAjo+9ogp*v0v7}i{AbSSPyBK~{LDE9 P1_lOCS3j3^P65WL{& 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small.png new file mode 100644 index 0000000000000000000000000000000000000000..3433da11966752007a87523c4804e71f51fc8547 GIT binary patch literal 869 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c23601cf477e6733d327084a1b626a283c88f6 GIT binary patch literal 3216 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5fccb0a995841418e8ac7a872aeb500eabe652 GIT binary patch literal 5057 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 O3=E#GelF{r5}E*`WIUt* literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..40a701b5146efad1146d345afeae89c60dc71b3e GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z?kgm z;uvBfxOMVruckneR{Qrer@Agp%}Di1Z5Ep2A;7}>O1HWtIE>QX#q!?KN2R@ZSa+tdF4wo(79^!6P1EBR#Jf!)jt zl}|iBkk$OLQ}5K5=#Hi49x~2`%xa!D-Z14HE@gV76w&QaBR@w^aNEvJo*wZB%LU`+ z2CQBYxxQC4)TKbV;H&p{qnNmcdeKACx=m4{@B9`{VB5^<^?Aal!@rm#T)wPXahl28 zXk%B&dx0kDwvx+@kg^$8O3Td^~y6ZI5cVRo;voEeAGhlv*CT!u@i8`L&1>t0PO2Zyiv$swly7<+k;$ h{TEh$x&D{k;$Fu4$#t&|FfcGMc)I$ztaD0e0sysZyW0Q& literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..06c1a805609c0f9ab826ed1927860c4f042941e7 GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U@r1> zaSVyzd^_!?_mo7DWAi1`3uhK;Uf*|N*dc5&Ql zX1SBpz<+w_@sM_;;9ocV0-md%_ioV6^Kw%%{?h^|wS`N_BF z!KN=S1t-=k7nO_LQTXmOX?x7Bg89|0A~U9lJy+fCzG~g$RnzBK3eB6&bbJ4jiS3uF z7z$*T&l2`OD4NOp!1LSQ3a*v0M;v9911~Gg-QVLCyK;HN|8!P~8;kjuwD#Y8P&l3M z+mEWH(+^*IS0-Y!ZyUFy^snc?mi%L^IpTDF<$?FAnUzkPe&6GpJuz>sSCrECxRm4J z(`FV=uB(}~i=$|nMy>as+80}|l!aM&UYwOG$g#)qQ2M29qT+2$f=2?nO=5a`<`mSo zMx-1RTb%Zi*C`=SP1#1v0*ZN5p z?oT>jAbjN8B=y5K)mlq4J!U8E%xQoBwf9o*?x30WJC%DIwoVD%to&Acc4t|-b5^Xo zx)e|=VDG!w1{{G^!6*ICj1MIZ6Zc!6swe;O;U~PNi zcA(B#rxYGZ+byvY&-E7ZJ6xFeIL$OMaQbGm0{2~Y-dcLS>($;z#%}mE*Qx4I;-Za> z$$~Ci2aC>amVWSk!W{Rt-WF?q`h0m(s&ZhP#7hCKN{`U={*sSbyPkNyco8hs_%ZM$ zbEuSxlzpZC@=4wui#k^E6-Q=sK963WY09xP;Hgwsk7HG*WWv@2&5XS1zkV&YJkN5b z#=qp?qd6u&B>rF9Z{gT*;x6+5TkyH_C5s=3S`!Dc|<4uhy>DORcV~e0oa!PKO%Dj}}~G SA2Bd6FnGH9xvXPn< literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..1909e275118bcfa992bbcaac677508cf3cf57fe3 GIT binary patch literal 11759 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 O3=E#GelF{r5}E*`WIUt* literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..69c96ef1e27378813dfcf93758cd1ae569077aaf GIT binary patch literal 29082 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 SA2Bd6FnGH9xvXPn< literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9437146039dc8f0fcffe07d92750b3294feb92 GIT binary patch literal 2237 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 Z73=&z^?MEWF)%PNc)I$ztaD0e0suRyU3vfj literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/dev/benchmarks/complex_layout/ios/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..69c96ef1e27378813dfcf93758cd1ae569077aaf GIT binary patch literal 29082 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

Xh|2tSPwbP;VKn3fm+y7TYEGxg> z*CE>9_x((tvcrO0P*6?(r<1gi#L0!x~+mKfN^j^y=*T%l@lBgIkYTc8#&6zDM@| z{eN>e|9gvd#^-Y01RY$Z5Lm8`Et39)Fx?oBqG!`<~}} ztbf1Tz1do>|FT8TQw8r$O;d}ft&q`7>#}^#Fya0CL~b>XD{J4e?b@|^)&B1?0uFay zt%{z{)VS{Xz27msKfenyh_I~EbYNI8>z1v}^@c=S8wP!MhQ>P_IdO?)3B_NYez`1E z9=<{6fuzNE+vO{TZ=b(Wa?D&gEnBqJ`}~a~<{T`nkE;Hc=NR7JV)r9ROTb~lIo7s5 zgWs37b1^o=vCMn@XZb?2>HZ80%--F#%6|MIZ*PydVuOPmtI7J>t&{Gwo=Q6FE4SQS za!Qj!_UxOn{j=ZNi-=`L`UM@>z-RiFN%{FqUb*Z4Vy~a?|FiP7**1j+1|~g&aP12< zPp#7yZ*AgWZH(d+U|2D=#{8T$Xb;1c3Qne&z zx^S8tPlt}t?CRBR$$edGQk9vOFYEM)lxw@OW{$A+wzk(R9T^&biM&{DV|@M9`_orv z8r7`lWuGBcH`Z}|1_!={GG$6qv-dEK3OB<{np+_d^i z%RS!C^_wfV&;FUt#Wa`IP5+8eY*e0c$cw-HCpXA8{t}(BVE^Ixzw?UDzWC10+GxTd zz~FH>R%0V?uk+ce@0x|_WzGzZy96xOV~KkM zgG1Fj*NfA>T$)|cwoEKFiJj$@U&7tXX~&t1Z?~JyoV(ic^b})OxtfbPwPym}3KpMH zi!FMV{bSue)?*p(-ZePH^-fklE0_ANzV?4Z!B>tFfsCN#cg6Spj9g?tZ=2PL52;ct zKPLJdj@4MqTiDrt%7SONQiDSuOB8>0qysCX)6*c^9Xv^Me;Zfa@|*GZq37Bq3cCX` zcizdFF-bE>-~&U=9WBA^@K@=X@_r!K-#qg(tz6^c{U0YY6ejpFGBLc|qkk}rS5A7( zA|^(bR}l%HSEsd`?6+NIqV-VVG*j7B%c&v(+RPOO3afrh$oJ>+_%~H!?yp;Bc`GB6 z6EyDy@BRP%%5?VdZU&}UR-23WP2&TY?%h7~i~mK`c`=qtN)8MPy5)4+hC@V@u|Qk=zv|7aJiPILgeh-H?E#$JHOZX<)aT* z>ptzfIq`tVoDZv4I5ITaaQ4hz^7QY%wSNrLpT1nRW7-}r0frMd=6=;=uoIcs#K6Q+ zB6j2J#+&c_t@3qi-k)ZQD~~IQ-J4(glzFr0Chn<@$y4^uT+*O8?@qq_dY4&$+g;+9 zvEQ5bqqsyiTF^n^Khxf?^Zx94nijw3@|u}XcYUruTwK)3!eCUUT>U*%?czttY?HID z42`Qe*Ie4vpniLizj@}Cn@Z2NxId~0I^b)qwAwFM#`1d3qt=I2S)Vj7ESM-iS&u9J zHhca|SzDoX%h?!NK4}{`)d%PQ7wi1@sk;4hbt(&kQAPf2PpwG@ce_m%T+w%6;oGVS zp>_=cJ739sP1Bm-VHvz2)N%6eDf|x-&K$mTW%ZdhKkLt>HPiDOIiJt|Dl1aktA6G8 z|1ZuLOLJTq8f&<9uDx&5&pz>AqxZ~Gg$bsNObn5`le6+aPvJ3}rKa5AaFykn*6zO> z|6W|4EtOGr^U;f4Rrhy&Pf+9#m@ZNgC&k;N3 zNwEl=nBSoPzWlZMS-rjI);Ruj)Zj=7Y+!I;dw)wnRqErLDAgDeZ4))_WKM$k$EBo@5ImA7|N*LXZrWy{denCTei)z{ag^jdt1Ok zVLj8^)4zQ)PQDf`iv6l|AUTEY{g(ZTiu?|2`7*w43%Z!1@0r}*Z}_W)_t)9~J7>&0 z`y%}6`D@ef8CN^M-qr4P*=2L)^_Hxg^Vl2rNohVl{NMSh@6#R&!4q2rt9WkSoF8jtKe9` zH;;Lb=c}^XEO{xi(CD+;=EhS@z9*+U>_1qhbwGI6s_XMZV{`=~xc9cbp&$riNGbzpd~#dX;}DVu9+;)9pX@<|p19ng_2XPj*-RQo8+ z_C?GNgs| zUfhzUZ$&s3xNz6(Ir!%0_QkJjUN;CzN&Wg+U~76)=*9XcGagTCyM5-u{|&sR94WB} zHvft*nR-+F{gwN!fAf|rObBOWVvyXodGVB!vq2eIMEJ&+P1m;Hm)aYCpKbH%z0;e8 zL@J6}KWS!IxvuD$vH0mDJ)WzZY`vK#>+`PvQ1E2K&FEkIT^t!2|8Vw%7G1aAm%Z&v zQrN9i_wPRKvf>tCc%d_C;rrRqCcF*vcJtgdoYm!!%i=fBAo}a{4?Caxo6fdVjER45 zYIpy4zrW}*mKL35tFEt@xui>Ro==Xv!JV8pj|zh4*Q><1^D=Ry1TWa$^x(O!`R=#x z&$RWPd1iVci{+H40z<&Mh^}w%m+m&76v&{tOWB0A@e9|R$mDI0{}%jS7aCR_FE>F* zw;-Z;|NjqDB4;;g1|F@KKmS+B@utS?H950uW>)?CVjvL8rzL-+I^X5$23|&%O8sL#{_11zzhp2mNbYYok#Bs(xuz zoY%*4)A;ub-8(A0`CM?&feX$lKc-%}5_O>1@`A77fc<|#gRXK3`|tXTj5=k(dN zk)8kCG*_CjHdYBMFiiMpZRax6tM-NxD)-5}tNT(cW2chM`||z&?$-zzSE=0%cY7`1uwe0lj*DsWzoy;X zDfRL4?BxskOlo4?nf|;;|C{#x(ww6+dX7f!x4G5Nz%*6##)myOC)!>-{$@4L2|LjS zA^i^xO&Yh$+P}}NXk3Xu~PMaN^+IFH2naemyo9l9Vh8V>lV*x!#*@Kbo^_lVb28rsGj(>%O<# z42*OWV@*rH9}}TuuxVcJN}&(;{$Gf?UtKnH?O%(~vr7#*6atnxRIlH!|M9u^-#~#C z<%~=WmOnUOSf4mEec>Wdb7?8Zn?EPc*gHLC)6IOom{B9KQC3Rq-}2>W{n*MfU&Nna zzpy($f!%Dm(*n=c@jWv{^G*qWZ+#7_%}TiETzqYBcQPW8|K8sk zYiWG#+P>Z`42&$N#3dH4w6(iFKkomhw-v7cSUDJ;JdrcsKEu>7$6UR9@@WT!N=AQ< z9S?7QsI*})*kl>w@9X&B;`KAvayhemg8QZ!b|3nB<%-{e%1zh)&XcqIpZvWA;#{tZ zw*ULjeO-Rtey(|E*wq-&v4{DNPo*AoF4y2tXmD7`Bt7NKy9rg6i@lovS;f@Xh49|C z;+kWT_^o~U89teJJHDP-pMGaS4TJLeJIBhmid$U$EuV3$jJ0%Ijns-1V+&DQmP5b@zlgz?5muJ^~XQ_tZQADadpz%*?HV@t>SjevYd^m$)b>BDS^I^f=W@tA>wVD@-`>A(*5ptKh-vt* zb+p%L>v0KP&Kv7BgMF86VT;KTBr*XL`LxiYt&YT*C z^s1|`tm949_0rERKJ$0|)wK`za7@v;;I6!C&-MS^_e1pfmqko{bF7bJ2LofnoWC+( zt{JS*JY8HC7{kZJp`umrrs0~^^4EoF`eW z9PplLcHGtG>;>O_7{M(Uv6Q~~9{ax=y(R}8sMU@+7aj^(E zELh!8wcftc;U~k?t9Gk=E(n}fHC~)`<67i`DK!knU(}`r#WMcCEn)7IcQ|Wv?e5jL z)y}msFfHZunVb6U>igNcR{aSjnMrS29U>YS9B!yxHr=P>FxjXgSipgyF^KhB{-sOl z+J~y+xBBc|-utjB%a6OluHot@o~awtXZPA^hn)VV!g8lNAz|GH|N9j!Xa0L`DE48g zQZXplaMN`AjJqZ6_pY0Le-W@pf|11zR7PHxXXU**_oHR(96P8L*KG32{v>?4$87rN zQ`Fae0bSfbn4ike?>f(J@Y!uyw&?UVXXN&7QTs9F^r7QXyDzHq zX_KhMTTieHu&r|FUEgQ?bJB;#u-b$&3xijxf3&g$92Q(++WR$R(~p|X*87(K-^^te zEa0FZ$;iZTa>ue~D{9$h_+GVI32G58kZJ6HAAG(v`-^s)siyGfM=z|lm5Ek7)7>1} zC@NNy|B120boG;Ih0kYvLj=^*2hTA$R}jZVoi`E>XM9)z{}x z3+nT>|6c3Tu-QKU+5(n1us=c?zn-5ZdrNNbcK)k-J}RwE_g{1|V}W0^_epkx=V4EC zLpND@J!LsIKl_@0?l8Z(4c}_Wl>v=Xn3Uu_#u?UJT+H!58aat_;7EQug}(EZ)>7!A2)!L>na-nHUT$ zDp!B1T&Dc&$=g*sm_!9<6i>TpUYD@Vq24-T)h?waGAxaoSUDJ` z_)dE(ekSOMsfmoy?Qpl(f({CrjaU0K=6(71V)6Iue|+b2IcWMWu$4c+sJmSv(qw7U zIq@I1vYElh-25A?9d90SetP%%nOjVrdd}+;t(iDV;ulm_Bxdf<{_;E5LBZhq-^HK3 zSOhdc{cX!A%Ny6LouA!3XLDKRj+Y)|<0{TAa)DyM+Yc|FZFw;#&wIzbS;nk?9{!Je z8qRTMjm6dMx0TTvcg1HcSr9V+*o*7GoBtPcWd#a2C{#AyJC*&Y_|N`twbQUZnhHy_?^ zko@@hy7ik=)913-T(GT+T;40YulBR**MHeu46KYSlSC!#Z@$sKubJ{Q|Hb4tJ1wl3 zIHu@1Ff1rp9rN~O=fq<=r>?3N8geL1*l<97mhs&(onI=x%xBkqv79?)602P8)tt@K zqIssS44-M5S;D&1rt#$Tmhioqwt3$k2|tzX-z(^_z=qNPQ~AxWUZ2XB7y0+As%Ij;v7FLPL3webIk zB{u_Yr?`p63tjlkxS=I`ir<%Q|D4Ypn=2gqJUYJq-kItD7b`S47%>%J-TB1xpV-{x zFPG^E&*m|5cU{oV#KKU;G2`j<-$I_;`_iuMw>%y0cw5k6!7QfvSwFrsI*3)*Z!TYK zwBG!~^rcUtHxW|ElEP?I{PtUnF{6^<8Mlu_WTbk}7}uf18DFuvP`S z^BeDuIBgT?B_8o{ouLdUcq6-b(N#O%QHC?0+<__XP>p}eYtht75Rv-25y?M z59)Y*@5@GHUF_@~j|mt1=mTUOn8vo`!yWP7&z zf+D7QPu^$$U(v9{t?Fal#-epHoQ+vrEdOG{HgnF=_GL;wua`2HZ|_8};OIhc-8G?Yv!Mo|M$K&O!76e_@mX^ zH<% z^0c4sj%HP+Y=`rjf+waN==*;5k8;SmxMePZz6+zaxpS_$lkqL9XXXF8KIw0ArDtsN zW(ygA|NlX8^Y?ov9)}kDa;RtdJZp} zt$S_G`hR~IPh6>8ypba$I^ijE+Hroj`CH@V_fEWWr_`&GsXybzuWNT7UO%(r;F`jW z9d_?cnca_n|7Y+1zW!c4%Z`0q++SX1mmQoMb?g1_wBWRm9}i^s7+Hdp9T*f$w=3=C zm0V&T>Af%YndA!4NU6h=2Kztj>r_CgYF1sn&OFI=%a^SNjYHd>Z<)^a=5oXd_JH+2 zqoSsr)|n9hXhWTx{etiNU-OGb3vh63;r||A*6CJf#!{AK%*64;se!>kFE9C%_(lK2 z<>Ix*`?jn83@cz`5%Ac2;M(>xWpyHX4@;lV{#SK}X0>+8Smx*MWq z8p3a4{!W}xXM2)SyX{n?z=@d$)cHXz_kAne{_^d7c<6=Iwl>yz*Dp0>o3+1=*1OK3 zYb$U)_~V)X3-A4Rj+**t@rWPT`WdyS)AC@k70{ZExoMyHa3l8p~RfdBEN_ zx$H;Ab*uZAqAkUq-C1>h*8XVz)DIS$1yA|OX`R3HTYgcZHPdnyHUH~2|KHDyt(rSi z|Fb)2&|OG@At3(y?xgV7KN-$lo3%kX;@;|{WilL%dpL6H&gOi7_2KHBg2tN)XXBSo z(c9o(d`rGcbI*SLcJr^R3To$N)f{nN@%{gUy08DTkFc;Zvh3peQSd)I&+zx3>syUZ zpIG-b2V{wW0z-iOcgu;Z-xxdCR>tf3aKAXc=blTCr3O=^XvEKS)%Dh5cYifj{rFzP zFy#}=y|~nGem)7QhjykNE}oaM(evQ*9oaR{^qh#|8rcw795RHX5u)) zDZtQidEq*h#=u$D+d{mL^~?#s^zKay15>F&fy?RZYpacF7IK@il=dxS4mc%T@ql&n zUMXII$SH#L*Y0O{W{2q^TYo>1Y9?u(rLXC?cmimNfgOm~GdaAtbOw<95-qB@z;c1hiul?>`pi+OGM4?Lg3-w-tKz^=7v`un8odY`9B z?pBGJe|1)H@qgyt`}?owTy1akGE)w4XR4jT^JUM|wEI8Qdp9NRsF%H4sVCZa3Dg+N zJ33F5>qk+e97Du1d%NTxkAoLU?N*%N-{^e%>@|DgeP;234WW#O>=w>ak2Al$NjoIl z>}}NMe`g>5T65JTd)J8znGeJ4{|4;nlVW-0ny@PD_>Wb~QmPmZFf)PzM8T_p!C?y5 zZ7rn-`F82rx8FS4Z=5|VVxn`A0E@th1qa%mpZQiVmG^^JJWIA(RdneTy$fZB-t_y= zl+Ew1^Of&iH{(5Ywo=-l!N8S+Pg7-Jl-@iFhz=3tZcv9|L$T)!{du<ceaA@8)iM_88RBdlH(^ z78dvG7eCkGztSgmPPu;jOsV384hF^smk7&@IS$nd2`9Iob<ICcYZ?Ec~q_8epa@}&aMjOsA;q#`PUZ=0}bM~Q(l{R;y*0DCO;uc_7VP&cQM(4rF zRmXHqqkqNnGVTjr%yjP33WiPB%hDcIvlJ;7xHxaSZYQ^I%1hxh=jMs7Tdo%MfY+9z zUch+QqNiM}k?!vM&DKV@pEr>fn(Xk+Q`gYbQQNH&Iq&{kTYK%#xq$w}lgHECSp+AOHJ4t?MhdSG`U9d;h+C=;>_}4*Weo+xMEsDo3tWWqNzRUca}TY0t;^Y3j_{ z>?L)+YxmFJWOJv<*7~g38qVv%%?@%bYFk!Z|8KQwZjwP-Ou6s`1V$xQo zAfQ^X=xWY)^)zccgWD?;99}0>hRmu!`}@Y(7q}P#Q+t^h_E%`EYRfHT z;$Akhwy?6If2;qDwe@N-^QTGqi@f$sc7FOUenzeegTSN2>SL^I{D!+fc==Ag(%}*O zoC7pMyJ880GK1F2lN*HuKg?S#Sj;8AZ_bT_x~&ck?96;QUQedTh%mAUiCHXCeG_IM zbmG5Y>8h2F&zzf^{jH0se##}*d$DUD9+Gl3t$~v$9n0n@pR? z_2a^Th+Zq73oH5&A@ISN<& zFkzU_H{sYL&O~&9S6(oD6-!n97<%kxrX5o%cTZqjwts-QR{!3#Z+C7ljM~=Dl6TSI zm#guj>{_dF4FFD%;q>~)d0+lSKs|Mfp(md^o7IbkeP?6YDEcHU%K+jM1h zd03RMwV;CnKNAbXrvmYvZHt)ptvV35H}gwFgSzmSmCPb60v`Ph>NTH_ zZo&4I?y>xrc2AjDx!vylW$7<}Uqyar|NCxQU9T61S&(hxug4Z;i*Ein8KoU_Up=x< zKInJ2=rXP!Ma}oqwQJuxA`xQI&a2uN&A9@L!&P11F`r8f&Egy{6WLkmlPZr6nM)Ob8|23 ze)D!#_RhGy52a0Q>Nd+YRbN^ifAaL}rG;x2AD_?1@k68W-d^p>Hsk)%KMR-`i#{YY z^b2KNEn(wg;!sh4u$pns-`LH^7G8XQW4)l&|L1aRKOOvkG-JVmYbzh0*;iOwp><%^ z@iS&N;uVF5X7Bxee|bF*$CrQA7k+NH_u3&SBiG2qWpI9f(+n9dMiwnS2ZjZYmfW;S zcwKmwIX3b~#B%m~&A&Gn%G#wSTnaIkmwn*bAf4zdiECLJhf3);vxtzW+P@^UT>g#w42LK++j7it;n4PyS3r}+vm>M!)My=H$Yq+xDU zAt;xv@k}d^k-hhSGW*o`Pp1~tF3mosYdX6!_{WO<7gw~%&SG+KR9MS&=Cl9nxeH@C z6a<767z8Gry!q|#tF?9CzaDD--)L2PIOc3hlY5ys6JrnGiJSE*ddpWaF}rKZAJ{(i zxwGx{z|`h2rJpyM)6`epNS3|YwMu)!qd=U*0yZU^LArI-b%Lye#|1#|uxS4!&r3l4Dt9$0}A6 z>V4yE&ptE$oPQyU8O%QI)|1lM@KxvUyx)gX8@+P>z3@+qHVxHTd1-h5vw#05NB)2I z!uZE4H^37u*n+pDy!e$auRZkk9_dqoXWXFhJq)yIqX+kyY#Q^=6%eI z*C$V3X8QN_-l%n7DoSjl7qjlGnR;{1$&00H+t0@R7N05CvF`oLYagGl`u@N8;o?7D z&(#`azb#z0i>bMN#@y8nH~*+Uyz05?wi0L}g`*_Cfx+SX+n~>0{!hMdn`E|ko!o!r z_Mppa?wA~r|9AYg@22%S59F2IUS2Y3Rp>nQ0$lyevACVNIQzYR`}!wW`OnH-c<xb7x-4=M9$+Hk_Ol{@Rw!bIRde*LR1D+I?GN zn03B4@kmgZWPw`L+ba0aZ~q!> z`@=rx8RsO8m%=ZuM%zw#%+1)ia`PFt*RSv03VZoTn_K2ikc8v|WtMLlC*F9f)-O?* zP~NCG`Ha|I$$9O&{r>CMeH8F!p7y!ez-RG{edXP9r+&Na&zih!M(wABlGvTm>RDS3 zn%Ks)p3?t6y>9(mj;otw8=tV)d_Vtl`s}lF=HIcjFk<3Rn83!!#E`jzTXoCB6;<(Z zb*J8}o&I&f^W<2~nF22s-&3`qpx&s9snRBk?>oZCil-e@~V-le5f^yD~7c?9z5%Sg^Y&v}P{<_xewD zo0(6Q_@3N$fMM^)xi=R5TwnZ^!PwV%=GSA&otF$}F7TILapl8Zm0PC_1vSDKgg4(z z>SfB9CGpoQUh2bhDb@{j*(J8oySaWepWmJrawzy~liO70*=O(l*vNEY)7!k6B^#L* z&I*=|6uI&5=>HIf;_?(-X~7jc9GdI;e>ngDdD`^X(v6SWpEqzQG&p2|#xB2I6Pfm@ z`i5E=> zW8SQFOxNeHe|Uk*!%fuR=GU$LFUsA_-4_3x!aIMLV5G=|KRc`bf4}%!{^a3fr#OGS zvK5by{Sh6#b8(RhXpLAj6AMF7+5Vb!|Ap(#J~J>Z-N$NE-{3DiV|D8JWB!KH6E2iA zI^X85WUg6tVBS`*d1ZU{-QD>shx5#?n>lYL70mwsXV1;or+OVVeHZMnd;jP0+B9dT z{rP2k^1uCi?`0kKJI>DQ@biD)B`@rIdggq#>8ZE-;^*(|eJ`+L$$<}nY2vYKH8s4> zd4t+auVNb*9J=b5wq^D`b*@T2Dsw{Q?i3Nzqo3K�AXIGbmc~Oy}GBn#Z@6bHBL~ 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 literal 0 HcmV?d00001 diff --git a/dev/benchmarks/complex_layout/ios/Info.plist b/dev/benchmarks/complex_layout/ios/Info.plist new file mode 100644 index 0000000000..9c5e317f53 --- /dev/null +++ b/dev/benchmarks/complex_layout/ios/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + Runner + CFBundleIdentifier + com.yourcompany.complexLayout + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + complex_layout + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/dev/benchmarks/complex_layout/ios/LaunchScreen.storyboard b/dev/benchmarks/complex_layout/ios/LaunchScreen.storyboard new file mode 100644 index 0000000000..78686cd075 --- /dev/null +++ b/dev/benchmarks/complex_layout/ios/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/benchmarks/complex_layout/lib/main.dart b/dev/benchmarks/complex_layout/lib/main.dart new file mode 100644 index 0000000000..91993a98f4 --- /dev/null +++ b/dev/benchmarks/complex_layout/lib/main.dart @@ -0,0 +1,636 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart' show timeDilation; + +void main() { + runApp( + new ComplexLayoutApp() + ); +} + +class ComplexLayoutApp extends StatefulWidget { + @override + ComplexLayoutAppState createState() => new ComplexLayoutAppState(); + + static ComplexLayoutAppState of(BuildContext context) => context.ancestorStateOfType(const TypeMatcher()); +} + +class ComplexLayoutAppState extends State { + @override + Widget build(BuildContext context) { + return new MaterialApp( + theme: lightTheme ? new ThemeData.light() : new ThemeData.dark(), + title: 'Advanced Layout', + routes: { + '/': (BuildContext context) => new ComplexLayout(), + } + ); + } + + bool _lightTheme = true; + bool get lightTheme => _lightTheme; + void set lightTheme(bool value) { + setState(() { + _lightTheme = value; + }); + } +} + +class ComplexLayout extends StatefulWidget { + ComplexLayout({ Key key }) : super(key: key); + + @override + ComplexLayoutState createState() => new ComplexLayoutState(); + + static ComplexLayoutState of(BuildContext context) => context.ancestorStateOfType(const TypeMatcher()); + +} + +class ComplexLayoutState extends State { + @override + Widget build(BuildContext context) { + + return new Scaffold( + appBar: new AppBar( + title: new Text('Advanced Layout'), + actions: [ + new IconButton( + icon: Icons.create, + tooltip: 'Search', + onPressed: () { + print("Pressed search"); + } + ), + new TopBarMenu() + ] + ), + body: new Column( + children: [ + new Flexible( + child: new ScrollableMixedWidgetList( + key: new Key("main-scroll"), + builder: (BuildContext context, int index) { + if (index % 2 == 0) + return new FancyImageItem(index, key: new Key("Item $index")); + else + return new FancyGalleryItem(index, key: new Key("Item $index")); + } + ) + ), + new BottomBar() + ] + ), + drawer: new GalleryDrawer() + ); + } +} + +class TopBarMenu extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new PopupMenuButton( + onSelected: (String value) { print("Selected: $value"); }, + items: >[ + new PopupMenuItem( + value: "Friends", + child: new MenuItemWithIcon(Icons.people, "Friends", "5 new") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.event, "Events", "12 upcoming") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.group, "Groups", "14") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.image, "Pictures", "12") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.near_me, "Nearby", "33") + ), + new PopupMenuItem( + value: "Friends", + child: new MenuItemWithIcon(Icons.people, "Friends", "5") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.event, "Events", "12") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.group, "Groups", "14") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.image, "Pictures", "12") + ), + new PopupMenuItem( + value: "Events", + child: new MenuItemWithIcon(Icons.near_me, "Nearby", "33") + ) + ] + ); + } +} + +class MenuItemWithIcon extends StatelessWidget { + MenuItemWithIcon(this.icon, this.title, this.subtitle); + + final IconData icon; + final String title; + final String subtitle; + + @override + Widget build(BuildContext context) { + return new Row( + children: [ + new Icon(icon: icon), + new Padding( + padding: new EdgeInsets.only(left: 8.0, right: 8.0), + child: new Text(title) + ), + new Text(subtitle, style: Theme.of(context).textTheme.caption) + ] + ); + } +} + +class FancyImageItem extends StatelessWidget { + FancyImageItem(this.index, {Key key}) : super(key: key); + + final int index; + + @override + Widget build(BuildContext context) { + return new BlockBody( + children: [ + new UserHeader("Ali Connors $index"), + new ItemDescription(), + new ItemImageBox(), + new InfoBar(), + new Padding( + padding: new EdgeInsets.symmetric(horizontal: 8.0), + child: new Divider() + ), + new IconBar(), + new FatDivider() + ] + ); + } +} + +class FancyGalleryItem extends StatelessWidget { + FancyGalleryItem(this.index, {Key key}) : super(key: key); + + final int index; + @override + Widget build(BuildContext context) { + return new BlockBody( + children: [ + new UserHeader("Ali Connors"), + new ItemGalleryBox(index), + new InfoBar(), + new Padding( + padding: new EdgeInsets.symmetric(horizontal: 8.0), + child: new Divider() + ), + new IconBar(), + new FatDivider() + ] + ); + } +} + +class InfoBar extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.all(8.0), + child: new Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + new MiniIconWithText(Icons.thumb_up, "42"), + new Text("3 Comments", style: Theme.of(context).textTheme.caption) + ] + ) + ); + } +} + +class IconBar extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.only(left: 16.0, right: 16.0), + child: new Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + new IconWithText(Icons.thumb_up, "Like"), + new IconWithText(Icons.comment, "Comment"), + new IconWithText(Icons.share, "Share"), + ] + ) + ); + } +} + +class IconWithText extends StatelessWidget { + IconWithText(this.icon, this.title); + + final IconData icon; + final String title; + + @override + Widget build(BuildContext context) { + return new Row( + mainAxisAlignment: MainAxisAlignment.collapse, + children: [ + new IconButton(icon: icon, onPressed: () { print("Pressed $title button"); } ), + new Text(title) + ] + ); + } +} + +class MiniIconWithText extends StatelessWidget { + MiniIconWithText(this.icon, this.title); + + final IconData icon; + final String title; + + @override + Widget build(BuildContext context) { + return new Row( + mainAxisAlignment: MainAxisAlignment.collapse, + children: [ + new Padding( + padding: new EdgeInsets.only(right: 8.0), + child: new Container( + width: 16.0, + height: 16.0, + decoration: new BoxDecoration( + backgroundColor: Theme.of(context).primaryColor, + shape: BoxShape.circle + ), + child: new Icon(icon: icon, color: Colors.white, size: 12.0) + ) + ), + new Text(title, style: Theme.of(context).textTheme.caption) + ] + ); + } +} + +class FatDivider extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Container( + height: 8.0, + decoration: new BoxDecoration( + backgroundColor: Theme.of(context).dividerColor + ) + ); + } +} + +class UserHeader extends StatelessWidget { + UserHeader(this.userName); + + final String userName; + + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.all(8.0), + child: new Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + new Padding( + padding: new EdgeInsets.only(right: 8.0), + child: new AssetImage( + name: "packages/flutter_gallery_assets/ali_connors_sml.png", + width: 32.0, + height: 32.0 + ) + ), + new Flexible( + child: new Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + new RichText(text: new TextSpan( + style: Theme.of(context).textTheme.body1, + children: [ + new TextSpan(text: userName, style: new TextStyle(fontWeight: FontWeight.bold)), + new TextSpan(text: " shared a new "), + new TextSpan(text: "photo", style: new TextStyle(fontWeight: FontWeight.bold)) + ] + )), + new Row( + children: [ + new Text("Yesterday at 11:55 • ", style: Theme.of(context).textTheme.caption), + new Icon(icon: Icons.people, size: 16.0, color: Theme.of(context).textTheme.caption.color) + ] + ) + ] + ) + ), + new TopBarMenu() + ] + ) + ); + } +} + +class ItemDescription extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.all(8.0), + child: new Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") + ); + } +} + +class ItemImageBox extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.all(8.0), + child: new Card( + child: new Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + new Stack( + children: [ + new SizedBox( + height: 230.0, + child: new AssetImage( + name: "packages/flutter_gallery_assets/top_10_australian_beaches.png" + ) + ), + new Theme( + data: new ThemeData.dark(), + child: new Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + new IconButton(icon: Icons.edit, onPressed: () { print("Pressed edit button"); }), + new IconButton(icon: Icons.zoom_in, onPressed: () { print("Pressed zoom button"); }) + ] + ) + ), + new Positioned( + bottom: 4.0, + left: 4.0, + child: new Container( + decoration: new BoxDecoration( + backgroundColor: Colors.black54, + borderRadius: 2.0 + ), + padding: new EdgeInsets.all(4.0), + child: new RichText( + text: new TextSpan( + style: new TextStyle(color: Colors.white), + children: [ + new TextSpan( + text: "Photo by " + ), + new TextSpan( + style: new TextStyle(fontWeight: FontWeight.bold), + text: "Magic Mike" + ) + ] + ) + ) + ) + ) + ] + ) + , + new Padding( + padding: new EdgeInsets.all(8.0), + child: new Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + new Text("Where can you find that amazing sunset?", style: Theme.of(context).textTheme.body2), + new Text("The sun sets over stinson beach", style: Theme.of(context).textTheme.body1), + new Text("flutter.io/amazingsunsets", style: Theme.of(context).textTheme.caption) + ] + ) + ) + ] + ) + ) + ); + } +} + +class ItemGalleryBox extends StatelessWidget { + ItemGalleryBox(this.index); + + final int index; + + @override + Widget build(BuildContext context) { + List tabNames = [ + "A", "B", "C", "D" + ]; + + return new SizedBox( + height: 200.0, + child: new TabBarSelection( + values: tabNames, + child: new Column( + children: [ + new Flexible( + child: new TabBarView( + children: tabNames.map((String tabName) { + return new Container( + key: new Key("Tab $index - $tabName"), + child: new Padding( + padding: new EdgeInsets.all(8.0), + child: new Card( + child: new Column( + children: [ + new Flexible( + child: new Container( + decoration: new BoxDecoration( + backgroundColor: Theme.of(context).primaryColor + ), + child: new Center( + child: new Text(tabName, style: Theme.of(context).textTheme.headline.copyWith(color: Colors.white)) + ) + ) + ), + new Row( + children: [ + new IconButton( + icon: Icons.share, + onPressed: () { print("Pressed share"); } + ), + new IconButton( + icon: Icons.event, + onPressed: () { print("Pressed event"); } + ), + new Flexible( + child: new Padding( + padding: new EdgeInsets.only(left: 8.0), + child: new Text("This is item $tabName") + ) + ) + ] + ) + ] + ) + ) + ) + ); + }).toList() + ) + ), + new Container( + child: new TabPageSelector() + ) + ] + ) + ) + ); + } +} + +class BottomBar extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Container( + decoration: new BoxDecoration( + border: new Border( + top: new BorderSide( + color: Theme.of(context).dividerColor, + width: 1.0 + ) + ) + ), + child: new Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + new BottomBarButton(Icons.new_releases, "News"), + new BottomBarButton(Icons.people, "Requests"), + new BottomBarButton(Icons.chat, "Messenger"), + new BottomBarButton(Icons.bookmark, "Bookmark"), + new BottomBarButton(Icons.alarm, "Alarm") + ] + ) + ); + } +} + +class BottomBarButton extends StatelessWidget { + BottomBarButton(this.icon, this.title); + + final IconData icon; + final String title; + + @override + Widget build(BuildContext context) { + return new Padding( + padding: new EdgeInsets.all(8.0), + child: new Column( + children: [ + new IconButton( + icon: icon, + onPressed: () { print("Pressed: $title"); } + ), + new Text(title, style: Theme.of(context).textTheme.caption) + ] + ) + ); + } +} + +class GalleryDrawer extends StatelessWidget { + GalleryDrawer({ Key key }) : super(key: key); + + void _changeTheme(BuildContext context, bool value) { + ComplexLayoutApp.of(context).lightTheme = value; + } + + void _toggleAnimationSpeed(BuildContext context) { + ComplexLayoutApp.of(context).setState(() { + timeDilation = (timeDilation != 1.0) ? 1.0 : 5.0; + }); + } + + @override + Widget build(BuildContext context) { + return new Drawer( + child: new Block( + children: [ + new FancyDrawerHeader(), + new DrawerItem( + icon: Icons.brightness_5, + onPressed: () { _changeTheme(context, true); }, + selected: ComplexLayoutApp.of(context).lightTheme, + child: new Row( + children: [ + new Flexible(child: new Text('Light')), + new Radio( + value: true, + groupValue: ComplexLayoutApp.of(context).lightTheme, + onChanged: (bool value) { _changeTheme(context, value); } + ) + ] + ) + ), + new DrawerItem( + icon: Icons.brightness_7, + onPressed: () { _changeTheme(context, false); }, + selected: !ComplexLayoutApp.of(context).lightTheme, + child: new Row( + children: [ + new Flexible(child: new Text('Dark')), + new Radio( + value: false, + groupValue: ComplexLayoutApp.of(context).lightTheme, + onChanged: (bool value) { _changeTheme(context, value); } + ) + ] + ) + ), + new Divider(), + new DrawerItem( + icon: Icons.hourglass_empty, + selected: timeDilation != 1.0, + onPressed: () { _toggleAnimationSpeed(context); }, + child: new Row( + children: [ + new Flexible(child: new Text('Animate Slowly')), + new Checkbox( + value: timeDilation != 1.0, + onChanged: (bool value) { _toggleAnimationSpeed(context); } + ) + ] + ) + ) + ] + ) + ); + } +} + +class FancyDrawerHeader extends StatelessWidget { + @override + Widget build(BuildContext context) { + return new Container( + decoration: new BoxDecoration( + backgroundColor: Colors.purple[500] + ), + height: 200.0 + ); + } +} diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml new file mode 100644 index 0000000000..db5f9bf178 --- /dev/null +++ b/dev/benchmarks/complex_layout/pubspec.yaml @@ -0,0 +1,8 @@ +name: complex_layout +description: A new flutter project. +dependencies: + flutter: + path: ../../../packages/flutter + flutter_driver: + path: ../../../packages/flutter_driver + flutter_gallery_assets: '0.0.14' diff --git a/dev/benchmarks/complex_layout/test_driver/scroll_perf.dart b/dev/benchmarks/complex_layout/test_driver/scroll_perf.dart new file mode 100644 index 0000000000..c8a016b41f --- /dev/null +++ b/dev/benchmarks/complex_layout/test_driver/scroll_perf.dart @@ -0,0 +1,11 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_driver/driver_extension.dart'; +import 'package:complex_layout/main.dart' as app; + +void main() { + enableFlutterDriverExtension(); + app.main(); +} diff --git a/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart b/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart new file mode 100644 index 0000000000..5aca2114c8 --- /dev/null +++ b/dev/benchmarks/complex_layout/test_driver/scroll_perf_test.dart @@ -0,0 +1,47 @@ +// Copyright 2016 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter_driver/flutter_driver.dart'; +import 'package:test/test.dart'; + +void main() { + group('scrolling performance test', () { + FlutterDriver driver; + + setUpAll(() async { + driver = await FlutterDriver.connect(); + }); + + tearDownAll(() async { + if (driver != null) + driver.close(); + }); + + test('measure', () async { + Map profileJson = await driver.traceAction(() async { + // Find the scrollable stock list + ObjectRef stockList = await driver.findByValueKey('main-scroll'); + expect(stockList, isNotNull); + + // Scroll down + for (int i = 0; i < 5; i++) { + await driver.scroll(stockList, 0.0, -300.0, new Duration(milliseconds: 300)); + await new Future.delayed(new Duration(milliseconds: 500)); + } + + // Scroll up + for (int i = 0; i < 5; i++) { + await driver.scroll(stockList, 0.0, 300.0, new Duration(milliseconds: 300)); + await new Future.delayed(new Duration(milliseconds: 500)); + } + }); + + expect(profileJson, isNotNull); + await new File("build/profile.json").writeAsString(JSON.encode(profileJson)); + }); + }); +}