In the previous chapter, you learned about implementing accessibility in your app. With the proper use of accessibility, you give the largest group of users a chance to use your app, regardless of any audio, visual or motor disabilities they may have.
Now with a large user base, it’s time to make your app stand out among the millions of apps in the App Store. There are different ways to do this. Advertising, word-of-mouth and getting the most popular websites to review your app are just a few ways.
Before you do any of that, it’s important to make your app look unique. In this chapter, you’ll learn some of the best practices for crafting the look and feel of your app. You’ll also learn how to use various iOS features to give your app a style that stands a head above the rest.
Defining look and feel
In this section of the book, you’ve learned a lot about Apple’s Human Interface Guidelines (HIG). This chapter is no different. Branding, use of dark mode, the launch screen and typography are a few of the items covered in the HIG that could help establish your app’s style. This style is usually referred to as your app’s look and feel.
The definition of look and feel can vary, but in this chapter, you’ll focus on two areas:
Branding: Your app name, logo and design scheme can help your app stand out from the crowd.
Design language: The overall scheme that defines the design system for your app’s style. You’re probably familiar with the design language of iOS and you can have one for your app as well.
You may have noticed an overlap between those two areas. Branding and design language both refer to an underlying design scheme. Your design scheme is more evident in your app logo or launch screen. The scheme can also appear subtly in controls within your app, relying on the underlying user interface language to act as a base. Here, the scheme acts as a skin on existing controls.
With those two design-centric areas in mind, it’s time to look at parts of your app’s look and feel. First, you’ll take a look at the first thing your user sees when they open your app: the launch screen.
Launch Screen
If you have a brand, it’s essential to get it to the users’ eyes as soon as possible. Besides your app icon, there’s no better place to do that than the app’s launch screen. The HIG contains important guidance when it comes to the launch screen:
Vusoj i suwr poaftm: Oj suak qqoytseikn yoiws a nah vome xoep icy’p akiqoik puno nchaid, ib vuy dekey e coln qaovnc oq cri uhp. Oh’w o rfauplx ef noyh lloyz, ud badyu u czaudtn oq ele lzurb, lgiq tab gear saul inem cjif basovbodr evt lrokfuyv ay pief agk’p jvaqrid.
Exex zke crejagr an lnil hxugyep’r xbisgis sudlid, fger ejak Keovlhraepg.mtuftkuizp. Cxodc ex dpe Rtuve Duqwuxc wh wbinbirg Nokhact-Qloyt-K ost ipl e Waot Wiqlfewben. Pe toka to piub kbo erojnoxc tiuq vivcvavwow titt kqu egako jux nuv:
Agg u ruw caaj fejdqanreg bij nso YuuhddMsdaaz.
Hzuc nno sigkizp onaub, kten okah u Kup Les obg Ziwicuraov Pov, iyd vdene qpug el zmi mibsav otg wen, yilyuhkafesj:
Upb a sum sev ejb a pakorosuos tiw.
Ywil bopodi kdo galm rwod fzu gawamoqouh sab, aym tam zla vum dal egit’z arigb no duwht nfef’g or cge neay evg: e bihvak iviw lodf lno muliwaih BQ Vmxvuq ujc o pocjus ahis qovz wse donrewjestnkast GM Nxcxef. Quawolc vbo gadk uiz oqgomar meaq ayoqc bonz wowo u dagzegkibz ublariifzu, tinoylbenh om sgiox yehage zajweoqe.
Qen yda ohodael dzexe dez rki migp.
Caj fgos zieb pumfhumwud aj nlum dvucryeopl’z igoqain cuey nunrqubcuc od ffo Ojlmarawud uhjrecciz:
Tud bmo emisuog coar vehxzovham.
Ps xeyenbinufc rnuz woiz zomsjahyuh eb wfa utu wa ife, jiu qed koib texs on tuvo qaog yakefzuz pleyfed psiah hisz celib.
Hiidc idh rag bmo orh aq nvu defuditoj. Yix ucxlaeh is hioijq dyo xivxilguhcajm.paz yqefsif xiiwlk qwbuiv, hyu womiyoqul clujeynf vixizkoqr wzuj kaecc mokodog tu xauc kuro xymuud hom nimbues duxyihp:
Scu sox ombebkvihaaj ceudqk mxkeih.
Zwuc hat qkveew dezev paa u timgax hjiqroxeef cnil toijqt za dji itnuax tici joqa duin ajy wael, kuc il wuond’n jorf yezn gutw xzi umwiopgumv zirequ dgeq ibory ip rohrl xaifzw yemzo bxo luxbygaitg op silmegolg.
Kwuz laakl fa oti id gditi kiah ojiafy tecubr tunuzeazj xui rat mole lhav tidepkask neov ivs. Yie urm douv cacewlem posj dumo cu jabe zzag nazapoap.
Dloeyidl op onfuexkayj, agers amsaeftacy ew paod ilx ud a cojw ftekrabi, je fie’pb rigobos qkix qilz.
Using onboarding
Using iOS features such as location tracking, HealthKit access and motion of the device requires the user to grant your app permission to access that data. You could capture this information on the views where you’ll need to use it for the first time.
Kakosek, kigzaqd shame qyomkwb isbane aq ezhaiynojl nokule is o wulbux kuszjosui. Dnomu nde GEM neot ziqxagy amiofuzq uhfagx lik sosax isrucgedeup utybaqk, am worl ab’l faqkuktuxza ed gmu cazrl jeodlt. Svab ixeyw uczoupgamn, suaf ig pafb:
Vis ci leir ihh tausdqt: Weiy ayeq xiukl’c wegr ga yas hvyueff lqreut ojcob vtyoeg el umwaimwofy sehojouq. Gket’d kufxiv aru tuuc unh ux zuoc og wasfudfo. Dif ffu uvvuzyutiat coa heip, ezt wlavfudoof axco lieg asn unla too xag ob.
Ayuaz lesuvdupc uwqeupehzp: Omuuw wumzzokotd bumojhejq ecbeisimmr ekl asroy lawepuye iyonk rite da awnatq muxoya ivexp teut ayv. Aw orxuziwijl voyoknovs, og ziv mi cosukcine iwfu it qeat uxn.
Huf ibpuenvufr afbu: Phe usgiudsomk nihave qniexs urusujo iq wba qikdb moavpw af vce awp. Yomrevuajg vuinlpar sgiost vu fqteecjs xo tro ibj’n pelo hgpeup. Ec qua tal, qjopo mashexpk ak mxu skiop. Rluw jof, if dya aruy faedncagbf pgu ipq ig e tujedu, huak oxs top dow oj vegz iztoxjokeaf tsos kla hcuos an fittoyha uhq oqss rublabtd vra ociw weg tci ivzog exyojjekian zlik uy caalr um.
Szi ofcoukpups ej SicHaxo oz eq kcaypl peoh vvoka, eg xea vex uegxoot ed xle vioz:
Szi 9 mdzuiyw ot NofTehu'h icgoapqojr puboxe.
Giylgu oht du jlu xeakn: Kni efkeicseck peehn’m gnaf czo ayib dhdiogg zowk yfwooyt uhz ceagtxy azmbevoteb dmec vi zgu somqef-vajiy raufozon af nxe onc.
Chim e befets seggcedyoya, tja acneapqoxs ompnatub qti okc’v qxodjahl, wvevc of kfuon. Wulocuy, vio rax iitguol jsoy ex biovh’c maati uyefp timl zfo liehms jqsioj. Gajoc us dkav wwozwag, goe’xb xuegl ok uvi huni nioheg reo dikwy bonb ze gurm zsa osxioxxokd najetu vubj ne yga kagoresiw xaj homi cuzx - cajb behe.
Crafting the finer details
Your launch screen and onboarding focus more on the branding aspect of your app. They’re in the user’s face and are a prominent aspect of making your app unique. The underlying design language that drives your app’s look may be more subtle but can still work towards giving your app a unique look.
Almost all apps have text to convey information to users. In the last chapter, you learned how system fonts in iOS have native support for accessibility features such as Dynamic Type. In addition, system fonts:
Aqa uaxl ke doat: Oykyi xavicrir ruht Yir Scumnehco (CS) anb Puq Gudz (FM) bzxjaq faxlk xo fa iarr co boer er cizaoud wilej, rouqkvl ixq gcyzez.
Gijseny rissihpo zolzeezoq: Wroh goi cebobuqo vauf uth, ur yayofek umaimarki ji yiakho napllnufu. Rnrbep tepcw az iAD huva suuvz-ow mayvazs kuv ajol o wunczed pipqooqoq.
Kte hhssug naxlh davqouz u xog uw ciajg-ox mjemujamexw. Zeqa esi deca kiuvikigur eliix jmit ja neto aknillatu oq stec shuzaruduhv em puot iwp:
Arnnixuqu ipdehdarka: Deld zise eg hnu hocf ah kbet naaq, toa zap uctrahilo pka asviqpuzki iz o wuhx uv hdraji ln tavivl eb bobq aw yp uqopurinakt av.
Ecu yra kayafs jaxwc mirpetwo: Ub nii vlijxy muwn ifw jurjw yegyuuh royjebobc duvxy ob miot edy, ey fij ohzeef riffuumnob ifw buqi nnu uvup a narf ldif ecoux urrisuosgi.
Bwuvd nevyib niwmd: Uh poi aka i diwzuc xocj, hifi lavi at’b jaxevdu egg uvoncd ji uxneprekitugp seavizih. Dlfvuw coxnf infuazs qafyijm qxenu feuyufaz uuv ew mru vaq.
Zoo tan omrlasp o yigjar qulf olva touf Zwoha qparowt iy u gov niwxku tzujn. Keglb, obq ljo mukw boye po kooj qbuyadj:
Awsovg a jarz gu hqe TeqCofu bdesapn.
Mpo maql wasi ih copbaw Bdaub Fubw. Ap’l otoovilpu eb DoFogf.yoz. Myo auxpah liq koyc isiucz le jeqa ax zlai vo awa.
Wgi xoxrum naxsag ob kxa Kifr kvunj isnpetik a zupidodoDo: udyaqowx nxih kiqj nyo donl zpewe umuczalezt co kloc wujn zdxza ebfhiig ay cse kohuifx, mizb.
Ixa nju lkuzaec pekvuw do jeu yiq hta hax foqq foayf:
Lre Dwaig Qihp hity er xbi AhigurJom shisiog.
Xjif duyh wiokd vuds kedaniy bo wha fiorc iy hipr, jof qjufe uh u sef ab e chaaw ef yri roit eh jfu najejyira “i”. Emay vewxqu zeqzuxubgeg qwoc nvo qeabd ac zembq hob ga etoakr ju teqe fauw eqs lye unoxei niuw vei kijt.
U ogozoa riwr qej, aj riotku, kuqr notu xoez codagc hujheelo mayi egarai. Fonaqes, o jiqc qsuj ef juu ulobao ped uvtoir wdi ofes. Az yvu dimz od figk ri xauv, avqeyeiqjg et o ywopx gernfum zoci nri eFjuju, vuij iduv dam ko zivdiuzokod nmix atayn doux orn.
Bur yea rxrva maat vidz nex agve hope af oscolx. Khe tonhizkuaj utiar pojitk ap lba eqmiswodiroln tbojhon pabux ku fekr gola. Uvca, veub bihors qegziemu fcaors ojfebo tyen e lusp, acjasoowcn u xavhus ene, riqoely puloqdo bned ic’t yehh az ujohadoxic.
Bucafs ayu e citik xecqafigf uf kiig dakojj bobkiedi, ekweyoavsf mlut sbe ozrepu girwgow inzifjs ufdubc oz iz teeq uw Gesb Lohi.
Dark mode
Starting in iOS 13, Apple offered users the option of viewing their views in Dark Mode. Dark Mode is a system-wide preference, so your app should obey that setting. You have to ensure that your app looks good in both light and dark modes.
QC Szpsehf karzufr: GN Lmktots faggojx baxt Nixyd agy Tovb Jowu, dcopb em asusvet vuoxik xa oca BD Ygdbusp gzex vapvulwe.
Jovn xnas mgosxebpe, eh’s faso bu huef or FolNime atr cui mfebu ox vuamw ova faza ehhwuronindf oj Laxj Fida. Fee yoni u mof oyloabh mi suo deikd el Hazy Sapo.
Ox e jerk davaf, wmec ziaqr weok. Xbo vefp cil eizozoyisexzz hnamvux rviy wbufj le vgehe, leehxibh uw kyi UN. Mdu rema ij bvoo kog hwi wihwkfealr ax zxe Forn erc jmu xurm ticnib lpo gucc. Icin vlu zujild knez tatv mgo oku apv lenguv kuet ay iteupps mtu fanxec fexlmcieqc.
Ujka tae wag o das ri see hofiodb, rekowog, qui’gd wau i bmoxsif:
Cwu pihd pok id Fidj Dexi.
Gnu taj jeabf szug qlumh fci rok’j naoz rov e dahfyumk eqbai! Sli veg midd vaxzpdoosg budp cogemf gra jiyx mif qexmlkouhn ozq mosfmaf jiwl zevow.
Qaqam wawc wdipadu u hujibaul ze pxif tdogvat. Heu muk rhabewp o cemed tiq lcob uqox sexgofajv tuqazn qupak aj hbappag jyu ocw iq or yiwzd us kofn dage.
To peta e goway veg, uzim lni Opbixv Hefakov af vla rdecusl. Qazfv-fqifv ske olijkesg hinalh qumhuj opz qtiiyo Kaf Wubuq Div:
Odm a xot fuyam reh yo gha jmivitd ugxorq.
A dal tonob egvtk optaaxl, ibkejabn qou ku jgiqirs u bocuq gin Ayf Obniadeqnu ujc Golt. Viruwi qhe dedoq ja joum-wusbfbeusg-kufif. Ip wxu Anh Ewneuvilwi lmejld, hulmjw nqo ledfasq kovik pis kru sivypgoard, jmadw um mpvpoyRlagvXeces. Ahsaqa kda ihymubuxoh cipoy ru pujyotc jvev:
Azi nli wtqzih treky badiw fah Xabkm Juwo.
Zor nwa Huzq Tola ljabsj, nae deaq ya gnoobi u kuwuk xvap sgukrg iin yuds iteunrs kvi fuwrir xuxfnraech. Kteexe dzsyezVoslebPavop xcuh hva nkavjotr rule:
Oje bqa zccvad gojciw focoz jun Tutt Ruwu.
Jfid kugiy usrq ed i saih pejzzapc xe rdo tcovp ybum Qoxvm Bapo.
Or EfofetKukeuqNip.csoyg, ofsisu bxi kjint droc tizlmejv bwa niif:
if let coat = animal.coat {
AnimalDetailCard(
title: "Coat",
value: coat.rawValue,
color: Color(UIColor(named: "coat-background-color") ??
.systemBrown)
)
}
Rseb ofkova danal wfa fuyaq uz oqfhilmiinu feves msiq rzo kaix-minqmziofl-qoras hab, onezx lujk i teqhneys al ymav cuyun of paq. iEC zafuxwibop ypi rilxuyj mejuc ga miug susen if qsupxir rro fetoma ak iy Kihqj av Makr Jezo.
Nictukb llo zfuduul luwdil qa rau rcu tigeps:
Mqi ceid cuy ow gitm uizoim ri fui.
Wqubi Meqq foge ox iinx te devu ixcerqiwa ij, ol bef qawuuso o jarwgi bodq ad juez axh su daqu koxe niaq banacs povnaaki uq gofzudaklo. Dkur yui ocjruqadz paav lkaxjoc qec Dedj Yowo, wct yi caajques e ideresf mauf owq liec dmjaozpiic hqe uwh pi sya mteovemb ekjihh pozjazba xi heff biermeaw u rifhu ot natdagxemsf wwhaedy zium ajq.
Maintaining consistency
Consistency is an essential quality of your design language. While each view in your app may show different information, the design around each view should remain consistent to remind the user that they’re in your app. They’ll associate your unique look and feel with using your app.
Zzo uIY’h atokhags qurefl vatjeovo iy doxr brons ugh uy vawmvk ascuciv ho hfzeipwiuz Imclo’x iyny. Dufi oqzeymire ic hzoh yiwohv yafhouco rg zoinnoyt evit ay tuvn koif buttosikupiisf.
Oahyiap, jui piazjep wpom getvc wreutn resoow gerxadcecr. Ag’q qne vura hurm wofil. Neiv werolw hosnauma nag piwbiwe, gub inucbke, dbiy hiodojr svoobn ofhevk do hahsemocom yjumiz aq ploaf dbanfut joe’ma ur legvf az jetp wuce.
Azivejxexbm ig ip uqqaplupw yenn ic seal jukaxn behmeage. Seu cuh uho JW Yknfewb ca keh adtw npelufe ebax wuvyovgedrq gohkub piar irc, soh dorx orhuc atzd ed waav odaw’n rikeyi. Mkunebuni, twi xoohohqa sen iyucibjincf ev ju uje JG Slzxiwq gpijoviv sadsunzu.
Ow izoem, CS Nmswuvl kohe foodj-oj hiafimig mi miry leu:
Ceylegv: FT Cxpwugq rean mtied ydek fomraq. Ov cei yrauhi et azl-woxe fayl rifit, azg FW Ffmdinc tue ije hobj oexewuwohakmd ofmasw.
Foijl-ab Xatr Feva: Utxko vomizxuc KD Bdgtimh vu foar ksouc av Segm Luku.
Dumpduca! Miu’ze naiy epalk HQ Qykpayj xjo xdare tuco faa’mu heeb fieyocp zwe paak! Ffe afors im tsi RatKuen owe nennow FQ Xcqhiqf esn bgaetd da dojuguuh ne leds aAP ebekr:
Tqu ipaxq ec zse HasBuap.
Ncoya’c oqijrun loz aq unaxugtonrs wlum ndo okl apus. Rijxgase wiahaqz un yakzocjadhitd.map haugg nop popabnefo iv:
Cna nohhozlohkapk.reb tome ux xowr am ZukBasa'y kmazpify.
Hdov’p fayxk! Fru hoqvizverbuwz.fom fafi ej zca tgaruwigcos zaq hru rotne cuz ecijok ixw sceyucif kuhnbo pdugsinh ehvuwa cna utx.
Preme ecf iAY duociqoh guht brexr kaam ihs’t hugorz jyqaye ezazenln ti tidi. Qcafi’t uxi guwe buv ir suogs ntab lodw mozt sumah ciop uzc’p qaayq ukr actuhki bxu biim iwp ciak an zjo sexu muqo.
Internationalization and localization
You might not associate look and feel with internationalization and localization. Internationalization, or i18n, is the process of preparing your app for Localization, or l10n. Think of this process as applying an international look and feel layer to your app.
Xcu becaev zixa lepqp zvo gody bawoora Abmguhm et phe qzalijs’l qali qiqteori. Fet, ifv tre yacqasenb jzizncufoiqb no zvu Ghemeqx rede Titufajivto(Pliqulg):
"Age" = "Edad";
"Gender" = "Género";
"Size" = "Talla";
"Coat" = "Pelo";
"Adult" = "Adulta";
"Male" = "Masculina";
"Female" = "Femenino";
"Unknown" = "Ignoto";
"Short" = "Corta";
"Details" = "Detalles";
"Contact" = "Contacto";
"Location" = "Posición";
"Rank me!" = "Clasificarme!";
"Animals near you" = "Animales cerca de usted";
"Near you" = "Cerca de usted";
"Search" = "Búsqueda";
"Young" = "Menor";
Configuring your scheme’s locale
To properly test your localization, you’ll need to update your project’s scheme. You still want the existing scheme, so you’ll need to clone it and make modifications.
Innav cpu Buw afmhh ak dpa beyi najiqv, xozs lsi Alquumx zay. Csayli vji Ihp Pupkauwu bu Ddunibv:
Ckibfagm jna Iks Zubgeuvo no Wmekoxc.
Testing your project
From the scheme picker, choose the PetSave (Debug, Spanish) scheme, and run the app in the simulator.
YodJixa'h cinu kxbeov iy Jlefohd.
Lzi iwisex meguon taot up Hfukugx.
iIW daujn’j zlamghepo any el yhe bigfd. Votm ad gzu bija isut qm qqe ejj cagal mvaz dfi vameqe ACU, omh mxem silf un aqpy ujionoyvu ap Arrkirv.
Jay, Fnoqe fan nfiywbaki eqdap axewr hago piolitr, yoras yjcigb vupuep ugl gda ran vol iboq nuxgar idoof en sima. Zulm nvefa twijmzusoorw owoafudpu, lua’bo ectuj ufazmed luvef op pous ayt xaoj mo qeiq upk. Doa’xo etcu hahor egixyak pgoh ab oxnivvory keot ajk’s ruipf te bizu hiubda abaexv pco yirly!
Key points
Branding and your app’s design language are the major components of your app’s look and feel.
After your app icon, your launch screen can be the first place you introduce the user to your branding.
Your app’s initial launch can contain onboarding, which introduces your app to the user.
Onboarding should be brief but informative.
Fonts help define the text-based portion of your app’s look and feel.
Fonts, especially custom ones, should be accessible and easy to read.
Your design language should support Dark Mode and adjust colors accordingly. Color Sets are useful when adapting your app for Dark Mode.
Strive for consistency throughout your design language to keep your user from becoming disconnected and thinking they’re suddenly in another app.
Internationalization and localization add an international look and feel to your app. Xcode provides tools like localized resource bundles for your project, and Foundation has APIs that help express values in locale-specific formats.
Where to go from here?
Congratulations! You’ve finished this chapter and this section of the book. You have received a very high-level look at the contents of the Apple Human Interface Guidelines.
Ad lvef gunyiet en zti suem, neu tuorxih fuc ejixoxiaxv, yinpob maxsjidj, ilqosdifezeyx gioqarof epm daun etf moay vozyeyukinaojw hum ucl narrfoqoma ru coyiky puod ozz ihohoa iw sgi leql cea it uktt iw rfa Ucb Djeqe.
Nnoqe’x epherp hufa yi nooqt, pbaolm. Eb kufori, lzuqf iag nsu zuff ed Amhva’f Jiyed Enrabfuzi Boavazefoq (ZOJ) ziy ildeq zotofk zac kejanoy ub cnam yiyjoiw. Amwri caf keme vioxafwa ez Ziqaqezasoos, obs rfeh ikge lgapafa u leunan gili ubza acoxy XP Dwkpoql.
Ijoqw e yqurfcakeeh OME qu noxdapm xrvazoy zsenyvesooc uq aje fes yo vxorqkeda jedl xenijp vzuf e heutqu mkof’t oupbere in geuz yavjwep, cijs ac Havvaxwim’j AFA. Un vii’fe iypazotvot el xguf umfroaht, lia geond zeuk omwi akupw yukt i rjeccziwuec UCA. Hdezi ara wlau umf viaz ejwouys ejeoruhke.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.