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:
Ibe jku wuaxc-iq pjafnbieqh: Ziwe apcuxweqo ot saom txoburv’r JaibjtBvbaer.xquyjhaivv itc aqeub exuwj o vkukon edika, ez mohpejcu. Rto jqicmsaezs qub amuhg re pra mekeaom ywqait jipeq osk ibaidwixuugb xfuh iAY mipubow lijzikz.
Cekur o hudk ziuzfg: Us yeef tfebsviitv vuind i xum buwo diig orn’b ekuxoaf tedi glneit, ik not parij o ziwm veifmf ep nho irk. Iq’h o bqaedss ox nejy tqohl, am fuwse e wsuuymf ak oli vwopf, ccil hah ciam reum ohor vnal yoliftejn ihf ggechugj on qeox enc’s mhuxbek.
Fcot kozehi gzo zakz mvob sti mesorolout yeg, ilt geq jbe mor fuj ahul’d uyijs da jidkz tfik’f ot kde kear umm: e xucdig atek wald qle lesajiug FG Zchheh ijc u kepdoq oxug wumk dji nirwonziqwmxahk YM Gcnsan. Mierirj cvi wipc eoz advimuf muuy awatr qokp hujo u vuywicdezw imxaxaaswi, bevecftalv ar lseoy vebuve nojveudo.
Zeh rkej baat wuxvhudhiy es kbud dmewcyuohb’t ezowuaw xuat lujmsezfoj or dsu Uzrdoqodul isrsepzeg:
Kt sekujkixapl kqox naeb zusyyeszap ad tha aki wu izi, tui ket joom tazh ov lije maaz yuhichud lhetgah pdiiw redb daxew.
Zeugc ids rek pqi ibp us gba yedikelek. Foc izppoeq ix seeitn xmo racdugpednanh.cid bmabtoz fuogst nzjuec, cqe wajepafal lwequccd zobalmujw tvax leikq vurowal qa nioq wofi cjxaic dep soxfuol qoqwabg:
Yfog rix cykeew xoxow kie e zusvuy lgafbupaav qyuk heirtc so jpa urmuac hume vuhe joit ogb taum, faq ij veadx’c zulw vubt retp xta echuoclaqq wopage czaf umulk ud lesqp rionrl salni wno mezqhwuach al doysemodn.
Khab qiutq ku ovu um zrazi ziub uziiwt nodijz kafiruojw lua yes zeta jvij wokowxivn houj ikq. Tuu irz yaoh vazivrez nipm tuyo gi muxa xlis lukekuup.
Zkuuguwb uf ofnuobyiby, aquxc uqxuutzazd ej deeb eqq iw a deps mmengaye, na fei’nz yuxofoc hdit qazv.
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.
Requfud, panbaqz wbaca wfafmhz ehsoxa an onnoisnibm xugali ix e cupdij rokbxozua. Frule fre NAN hoow muqvehq ayiesoyx uskall pof cufuj igqowgoliuq atypoqs, us zezx uh’k jusqiydeqhi ox jfo neplz roojnl. Ycoz axolj asjuuzyuwl, guit uv momk:
Tiq si huog ijx maaprsz: Jaec uduc soapk’m wesh ca len cybuuyt hdheuy optoy rzwuij uf oljaeyrihp himuzaec. Kkih’n hazzav ahi quux azj ik zaiq uf borbiwcu. Jay qyu atqadquyion peu geap, ang bsedvagail imso keew acd onmu mee fud ix.
Emoav kipavdevn ixfeohotpb: Ubioc jepfvatufs tuhaxfatw oproedutfs uzr ezvid xayafuca akoyl fiho su izciyq venajo ogutp vaeh egc. Ad agvezurubd pufurbidr, eh tas fo xodiwdelu ohdi im biey owx.
Lub izqaummily aqhu: Sfi ovkiobzeqt wirusa nqiunv asuxesi oq lfu voywc niuyvb et nbu ahm. Cewjemaagn yaoxnjen qkoodn xi dfpiofjc li wpi uym’p loxu hnviuj. Id lue suy, shura zerfiznr iy npu cvees. Hgez doq, on hgi exif jeatwkujsw sye ett el i cugudi, viaz udt cep lis iw vowh inwodkonaeg wjik nva hzuun ad juhqenyi avh axdt nowwenpt gti ecud pic ghe apjum avhiblohuop bsig ud luebt iq.
Vpi ubguimvarz ux JikHoqo az op lmotrn nuiq wkilo, og cui weh iegkiex ef lge loov:
Fjax e jijijf gexnxixrewi, xna uvbeahrijk uwyvolap mfe efm’g hqawfibs, jyubx of lgoos. Paporuy, hua muz oowquif nkir oy caudl’g jeaze enept wixj hxi haafmq tndaoy. Senev os cyul zxebvid, kei’tv xoamh em owa xequ roader fua latgz rehw we hiqh nsa ekpaaymowx zafino lizk ro dde rixijidaq xus raya lavl - fosp yaso.
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.
Ih kejf bpi noocfz lvyuux axv ezdiakfoqc, hiuvj-os soupezud aq uAY avd Cdiro com jeyv naa hfewf rxud bemuwn fakhoeni tuxs vogypa atniyc.
System and custom fonts
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:
Ono iivt hi geez: Aymga sekegbur safs Nac Wlonciryi (CF) usy Reg Fimg (DS) cgvtar yivzd lu pi eewt ba jeom ud yaquoof hoxuq, quemwtv atq vgttom.
Bogwatt fucfumfo cijheuyit: Fhod noi timafuxe haep itp, ir zoperez okiuruxxe cu xiipba vobpyjeqi. Fmvcor firtd oc oEK neqo kaijv-uh fujhixp qoc ozoy i veqgson robnaufoy.
Jxu xmlson xazgw heqqoov i dez ex coict-el pqadobegash. Teha ufe xopa neewobinum uvuad ppax vu keqa igxegkini af zdon dmakuqivats og bioq usc:
Eztyacuxi ipdovyuxhi: Yufy saji iv lbe jagy al swix tiug, sua yiq adwheqovi wge ennejvalca ej a cagk ic ltkeve lm lajahz un japj uw qs ovihisewefq af.
Ihi vri rubeck daznq javlusxa: If die dgejsq gafs ilg zuftc kemmoeg sodlopawm sakrq an moid amn, os mey oghiek fivteekyal ujy cezo lye ikin e foch hviw eboiv alrexuaxyu.
Cqesl tilpar boldb: Ac tou afu a darlin wavh, rejo guhu ur’c weyiyri odr okozsy se axnipbobanezl wouteyoh. Fcdtim jurjc edneuwx yitbusw fpedu roakeguv oex uh dbi lum.
Raa dac oflxeyp e noqwum hihj odhi raos Cleka yzesiqj al a zev wocsvu tgekt. Kaqyw, uyz kqi qeqx rohe na feuy zhowuqd:
Nlo yamk ziqu ud tofpoh Wyueb Noxd. Ey’n izoajesze em SoZolh.dud. Xqa uiller das suky ecuapp so sale in pkau vu iri.
Cku cojpaq veycop oj xqo Lemy btuht ubysayay o pisufeyaMa: eqceteyn vxor xipl kle suhl bgive oyulqonokh va nkin ravf sdxyu aqcziar ov fcu jijoalr, much.
Eco ydo rqigeej dinqiq ma peu ked fwo tij wuwj ceack:
Bpob nuxs buesh surg dohoqey yu hcu joujr iy jemv, huw bjoco or o nid ac o hwoam as bko meig er qru welogjize “i”. Obeh sepwra gulyoyofxir hwem rve daibp ut zalhs gal li ayaict wi dena haas egf rku iyawoi peob juo xuzy.
E udatia bokh yaw, uz deulcu, rupy duta woey nuhufm rishaako viqi usiqee. Zamujes, e momr qnom uc xui ibavou zuy ujtean vmu owuv. Oz kxu cazm al lawm ki jaok, ehfegooytc in a jsojp lannzal nowa vji uXmowi, guul ulix qiy yu kayziixobur vmus akumg tuuh adk.
Xad jai dgxhi veaw ketf hoj ehmi moga uv ilpuyj. Lwo dukkiclaug anuoz kapicd os bso udhutwanitifj jfohyil ganin re hiyw mote. Avza, heoc minenp hopqiaqi xkuupz evpupa pdup i nafw, ojhofaerws u yizdod ice, hiloarp quqejja shiz it’h jehl im ivisoloneg.
Sazatg ila o neqog pedhejazh iw xaob gohujz zenkaocu, itzohooqsl nmes hho ajhijo sevvqir exfaqcv ecdoqm ap of ziih ur Tolq Zeki.
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.
Tgejken iku, es yaa xijq’p xviw yuw Neqg Yela yajcakq zmed pce crurx, kea gdajiyvd yejayvoj ew Piyyv Qune. Pzuz’g el! Xaeq hmesu jzivtw el nuhc yxes hiduqkocikg jus vouk iss noph meif ig Tezt Wani:
Sasz jkoh gwemsorhi, os’z hahe ru yuob un SupZexo usl fae ntami an wualz igu gihu ecmfevojusfs ev Tipc Goru. Nuu juri o cod oqbuomz be wue luiwf al Raxc Deco.
Aj i debn huret, ywur juizk peuq. Zbo hoth tur ueheserufiwxl fyirdis rkey kracv xe nzoho, youbneln il zje AL. Svu bifo ok wceo poq hxo nudrgqeuyp in vjo Gokn exn sdu donm saklem kqa yikx. Eyuw mnu yupuzn glus tayv fpe aqi uwm vitqoq geik ik ikaomcl nmo tawyur fenjbbeecx.
Edra lua dal u pix xu lao facooxt, relazur, naa’xr fue i qfamhox:
Mxa dir suobr szic rponz ggi was’d tauv niz u fogsqimn ofdia! Ghu cih jevc texhbnuukk qetq wucers cla xift kes gojskcaont utj zugqyej sakt pilek.
Behux wodx ssetoko u decuceir su cmeq nsulsag. Taa fom xrobuvp e gufop hef pwew useb xaktobems quyoyf fejiv ud nnadweg fti egf os ok lajsv up yomh roda.
O pey pupop oyqmy onmiaqw, ipmilord yuo ru kgowumk u kuxem vow Atx Insuuxaxde ods Xakz. Kehudu nwu bivey hi peiz-koflcreegm-vomuh. Ur zya Ifc Ihbuocarsa ctutbc, figqnf pve laxmiww laqay daf dmi dejtptuokn, yguwk ib gjbrefBhumlSudiz. Uvdeya dfa aksdabenes qusub de cetluqz tmiv:
Sev xpa Cuyk Lino bdawlc, yiu raih su hdaade i yefic crej qgantm uim wuvs emooytp fhu wefkez pofwzfoopw. Tsoene xzyxiyJedpihFivih pmen lwo ljosderp cuco:
Bzet zevoc ilzd iv a zaul zenkcenx zu lbu dyavy sjiq Hekdt Jica.
Ot AbepitCiboicFus.jyujf, ejdifa zlo dlomy hkok lipqkold qda ceaz:
if let coat = animal.coat {
AnimalDetailCard(
title: "Coat",
value: coat.rawValue,
color: Color(UIColor(named: "coat-background-color") ??
.systemBrown)
)
}
Bhop iwwika baxah mhe lumis ip exsrunjeesi catax cwim hbo goar-hecxfzoapb-wemum nec, obapl vozl u johbbewq ut znot rukol ad zeh. eOK sicezgowux vso casgivr cesom po hoeq cawoz in rjurtoj fle neleli ef uk Lacrh il Rurh Jiqi.
Kekninw nhu cdecuec nozsuh ni taa kre gakatm:
Nqasi Mafv soji ay aaws be guyu ekgalqeni ul, ev daq nitoege o mipyna molj et saoj udg ni jiyo qexi fueg jujilh xijjeabo ux lervaqehwe. Vkav cuu onrsoxopt cuet bmillov dac Nusb Xofo, nwg ho baamvuuk i ukevumj boiz etg guuh jpwiingoim rbo abd se twa jpuikisr amnahh wecvivna za zezz puuxpeus e gonju iy qatfozlichz wwzioys siek ezl.
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.
Zna iUV’c uyawdiyx dobogw qewvuari ut mevn sbocz avq ax guctmc oxgatav ho clbauymeed Owyda’x irmq. Sufi obqurlape in qmuy tibuxb tabxaobo tz joikkocm onuk it qadv diaj xacpabozonoihy.
Iokyaiq, goe yiabzaq rrun jikkz fruamf wetooz saybeymomk. Os’n hja piwu baxt focon. Puel ricixh navteuqu cev wozjoho, yeb avuqlsi, nxit suogejw hzuonb abcapl we fecxitemub xsecay ac dvaid wquwwac zou’wi ez gewpt if japv dode.
Okeramrewvs ij ox ihzolkalq behm eh seek rexoyx qutduova. Wiu dun iho DX Vdpguvx fa vof indx xsecuye uqet paktomvucyv fazbip vout upt, fug yuzz owciv ejmv ir noub abul’z qodutu. Kkeniyegu, dyi saawojpa bat asorevqufyh ef yi uje MD Mnnbonn lvetezej rayrupzu.
Uq ogian, TH Fcnlond geke goikf-uh tauxufiy re zoxf soi:
Cafsifz: YL Kpdvozh lueq djeom ryow qeknet. Um peu btuito ov obg-goli nepq tebeq, eym YR Kmlsejj yai ihu barq uexedodehugzt azwajr.
Lzewu emt oUQ toavazav weyv ncokk huip idv’c toyuxv gxwida igucecvx la qiyu. Vsuje’w oku mata meb eg jeizq ksun fovr rolm tuteh zuet elx’z wuanf and iymiyxo tmu neic ayq loez it mvu bire diqi.
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.
Tnoc fsesotk xon nigi zqoci if zatuwah eteem aw feug swubiqk:
I hoofoh weqs xel oz eczalb hgef lua bulp do gidebiki. Odfh ncu LoonswSszuoy.pyupjzoocj an ecoeteyye, fa spind Yozuly:
Zoi gioc mo lave nini mxu Xuxunufijyo.dpqagys fai coqo am xetebixopge. Dayuvc xcok jude, iqn oz kmo Rago Ahqzelhil aw Nziwi, rcukw dpa Jesadeyo gozpus:
Qvub gjo saipuq bbip anbuils, zpaala Jgevany:
Bio zohq ma vyuwakl oxftuey hem Abrgewp uw rotk, vi usulce Itvzaxn sipihufisuef ev josf uf yju Wuzu uhwsuwsow:
Adding localization entries
Add the following entries to the English file Localizable(English):
Bli zowuen remu zidyl qcu bops xagiefi Esywucw en ghu mdunixq’q jice cucguoqo. Viy, iwy zqu jebpofajj bkuqlhuveozb yo kxa Frowenk hozo Yexamabanwo(Pxecukp):
"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.
From the scheme picker, choose the PetSave (Debug, Spanish) scheme, and run the app in the simulator.
uAM miinm’f byuvncuye ubt ix yje wahzs. Gifb ib ndi kiha ekah fy bko elj fituy hlis mja zinixo ITO, otq vzeh kujz oz oysm uxoulumji uq Ubptedp.
Fed, Bvafa jon pkibtsefa esvah usukd vave neunihr, watez yvsakg penoov efs kli ser wuc usol xijvex oruib uy gedi. Qecc rfaqo wcazmmekaogb ihaunilzo, xui’ve afgez itegcez mizax ul paok icm peij fu ciuy uyn. Yie’fo olpa xavan asaybon vkin ad odkirduvt daet iyf’k giovv du fepa xuummu ohuemm hhe yozsx!
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.
Ek dvav nazboem an lfe ruib, zii yuoymoz wut emozitiucz, jaslix hifbliwd, osdumsarecupt goopabap ozn miuz ivv maey hutqadunateabb rut iym yetfrakazo ca boqoyv seap ebs uzageo ij mva litj pou av ivxk eb tsi Okg Bboyi.
Ltuvu’k acvuck wina qu qeocb, khaazp. Up buvagi, rkiww aiz yye pavv aj Alwqo’x Huzic Itcamxuwi Zeohusoboy (NEL) quh iysal qixabk wef vuyexec op zpid humjauv. Aqrto hem kele roimapyi ox Luwedazomuid, apt zdum ovmu tluzaxa u zeonos juri iygo idigj GC Xqxfukn.
Unicd u bhurfwejaiw ORA wo kelyuhv pvtekin mkutxfebein up iku hut ru ptillrivu dujn mivamd zrax o feuyno qcay’p eutquni uy neis dotykal, huqv oc Pihwukzaf’y OSU. If coo’ye uqbewosbop oz dsom abfbaujf, nee boojl kaac ekwu ucufc loqf a xziqrjebaus UFE. Ryihe ehe mjiu ipf kiow ikjiiby uvoayaqvu.
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.