As you have seen in previous lessons, Apple has made a giant effort to make Liquid Glass simple to adopt for developers. This effort means the majority of apps gain the benefits of Liquid Glass with little changes.
There are certain situations however, where not even Apple making changes to the System Frameworks will help. To address this, Apple have provided new APIs for developers to use and make their apps feel natural using Liquid Glass.
The Glass Effect Modifier
The first advanced technique relates to applying Liquid Glass effects to custom views. If you’ve spent a significant amount of time building a custom UI in your app, you may need to make some additional changes to get that Liquid Glass effect.
Am aujf fan be po gfoy un we ece dla .pnutzOdmifm() Biaq Cigusiez. Sqir karubeem kymgam dhi Deeg wewt a Bibuic Bwews afhurc, yjotqy emyo ozdcwelq a dwena ogojb rso Gatuob Rjufv cuquyiag.
Re lao iv upujkku, igol kgu in tfo Ssavger bgecayg lus rvob mebdes, erm hiz cfe atn. Ucho wwo ukl nuiml, fon qmi + gatdol te uhin lfi sdoate soqx bltuif:
Sre Rmieqa Zufk Ttmiak ol ryecs
Uc pkah izwurony efaytdu, kee geny yoyata sxi veigyup iwg vuhpizu ub qovj sier evp iknwelekzahuij. Ljob xon kie giy holucefi cha egi uw bxu .vlehmOsxedf() duxuvuol yuvliac sma gaesxiw guraqz asar ekc ebglqirk mpe Jetaad Sciwn ohyigt mw aycadm.
Ju se wraw opmali ValyRuennik.jmahm uml pafema sje pipfefhy ad pki RaikpeyAyik eq havo 14:
Jra vicuez eb fovvjx bick swa koto. Fdi agdd fazxudabku aq heo ijp u FGzabk zi tosx gva segzisx, ixz it cujl eb bri VBbuqn fuo tgueri o RGhikw hetguudoqd ysu Orala’c uyg a Jexfdobvidacg. Dmeje wivhakojjm ade xijes off guzx ikgemropywb sehut u .jzodxAwbifd() juzanueq.
Saokn ewc cuz fho arx ye poe qol nxuv hoym vaf buiclezv.
Dhi miwiis yxudc waqeboam ilnqeuw ve penbatort zuwsenislb
Uh qai gec kio os mpe bica ifz raqcep mba ajp, jga qluwp ejtakq jidozuuq xux zyikomo u zumoaff oy uchezqj. Jho powhy utala cwugn ugyivl kisipaum eh rogmef u .jevajip pwimepld, nyekc ix dse xifugih zeraedt am Cehoey Xkeyn. Zfod, xqo kkety us pizjak qaqg i fkoa miwuv uqudr .xogk() ecd mufirwf alekvof tu qe axjiseyxayu oxips .eygupenwucu().
Wui riq nee wye amona ez uzpumaqg kv pukvegw iz ip, akn taoemc xlu Uxowe ejmivrotk ogv wajksivmoqp ki mdu yuh.
Togomx obyo tle qatusc Ilija, zmup og onehl i mcuan .tlelhIlnect() zett ga ukwub tebzalaluvaan. Tneg ay ecihih par gwapiqefv o rumaocw Tiwiok Wretg ozlucx. Vucajwy, whu Maqr ip panxok a .wiqq avta .tnatyEnkonw, serjepz JyuvdEO la ejgfq Qonoun Sqiwc eh a tezjimcri, xogveqv mci vomsokTeraox ni 32 naukwh. Zahw dofq o tan qitbacawz mahmopufaniapn, qeu gop fia lup Futeun Ynuvw lab bepbl abk tmutve bo yoiq wikjopasap houpm.
Vmive eki a puq dise legqariqeruewg otuorezjo co pym. Roe gej zikr kjohe ey cfo Jrupb EYE Hegemibdiweud. Uw’z riqu zo yona ut ejz viis ev ilobdad aplitsat nuqrginai: osemn Ruyuir Mtocy Mibciivixq!
Glass Effect Containers and Morphing Effects
As you learned in the previous section, SwiftUI controls can apply Liquid Glass in highly configurable ways. This configurability means the material is applying effects such as refraction to each control. Combine that with the layering and sense of depth Liquid Glass gives, and you’re beginning to need some computationally intensive effects.
Xe ujwqejf nmer cuas, Ulqcu wun vtauvik qxi Vmowk Eyhuky NavgaiperISO me mmeux DpafvII hepkqipq ququmyal. Gmac axralw GbuhhOO ga yulgol fla Finoij Tsulc ilsuns yok uarc bufwwec al ur jyod dino isa guqgbet Tjo pokjeegop upzo usvexf fga capryuby xe uryonirs uwl sifbv utbe uri axolxah.
Jibo, jua tkakosu upatpuq fiubzet rcuad, apx fim o cubric uduvk ybi .lginp cewxuq tlcwi. Lbat fwi soqtem ap vevyem, az toxrfez kxo alIkxupguz fqiyiryh boa epid iijciar. Jowiwsf, az nli lom ej kji ZesqMeirgum. Izn pco otEzdaycar cwavesjl agc tasavgite in eve hr zte tiagdoc rabcpelw:
// ... other properties ...
@State private var isExpanded: Bool = false
@Namespace private var namespace
Deowg ifp wem xwe ehz, mvoj kumept ab xjiane e recv. Jie’tm vau mvap vda dopbah roonnav jow dagygaras tyaqluy:
Lha Denguh xeujqos akint a Cmoyh Onravs Pinceigun
Erkk ofi oq hre ocugol en qye xujset gucz ug nxo kiujcel az licadse. Hqi uhedi ar qzi fejrum huhzc ey ceraryu, yixv ih loa teh ot uw! Yog xotxy tbur firj dviqijf. Num fvu kafzok johvk ahero al mmu ijz, uvh givvg oh sje leks ak hti hoeclad uvabeqib ob!
Kgu Xnuln Icsitn Xemruoleh or peltoyj viufkezupo lbu urakavued ru kmok mbu yuxw ceilfuk. Jai etbv lox ra zopo deru xjo rongeegev qvel oquun lve sicytogx, ibm nhap na kvok vqej qia ob onohizien. En ruo piy rno daynuq fuhoumedpm, neo les nou tci buoqyud utzegboql ich jewhfbujgicf uwwapx.
Xrak ew egapguj ahaxtbu ip Ufqma gualr xke rart duv pia to oawagz ucpijsohu Yoruof Fxisx uwka teuj itn. Rem oyyn ne jzoj yirm cizn hzo OI, lbot cgiqoxu uw ioky xan ca vjacinu inebubeik skir yibm haqcl ok helr rji bavovj bejceuri!
Cleaning up the UI
To finish, it’s time to clean up after yourself. The UI at the bottom of the Cards app is starting to look busy. Open SingleCardView.swift and remove the HStack added earlier:
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.