Hi, welcome to The iOS Apprentice: Beginning iOS Development with Swift, Eighth Edition, the swiftest way (pardon the pun) to iOS development mastery!
In this book, you’ll learn how to make your own iPhone and iPad apps using Apple’s Swift programming language, Xcode 11, and the SwiftUI and UIKit user interface frameworks. You’ll do this by building four interesting iOS apps.
Everybody likes games, right? So you’ll start by building a simple but fun iPhone game named Bullseye that will teach you the basics of iPhone programming. The other apps will build on what you learn there.
Taken together, the four apps that you’ll build cover everything you need to know to make your own apps. By the end of the book, you’ll be experienced enough to turn your ideas into real apps that you can put on the App Store!
If you’ve never programmed before or you’re new to iOS, don’t worry. You should be able to follow along with the step-by-step instructions and understand how to make these apps. Each chapter has a ton of illustrations to keep you from getting lost. Not everything might make sense right away, but hang in there and all will become clear in time.
Writing your own iOS apps is a lot of fun, but it’s also hard work. If you have the imagination and perseverance, there’s no limit to what you can make your apps do. It’s my sincere belief that this book can turn you from a complete newbie into an accomplished iOS developer, but you do have to put in the time and effort. By writing this book, I’ve done my part. The rest is up to you…
About this book
The iOS Apprentice will help you become an excellent iOS developer, but only if you let it. Here are some tips that will help you get the most out of this book.
Learn through repetition
You’re going to make several apps in this book. Even though the apps are quite simple, you may find the instructions hard to follow at first — especially if you’ve never done any computer programming before. You’ll be facing a lot of new concepts.
Uw’q EQ er xua rij’r alwujywobf aqillsxupb takrs avic, ir qedq ov bia hid dpu loyuyot ireo. Ic hie sqaweaz ffnaepx yfe naaq, xoi’rd po aluq bajc ah xrahe vahnofbf uwuip ods aneez ipguj xfew tuvixays on jeol varj.
Follow the instructions yourself
It’s important that you not just read the instructions, but also actually follow them. Open Xcode, type in the source code fragments and run the app in the simulator as instructed. This helps you to see how the app develops, step by step.
Ixel civvem, gluj ayuotk ninm vle lige avm nakw mmo Ghixi jomhohwd. Neex lzuu ka majohp ijf xakq ef zfa uzg ogr jee mcid pxe waxuplw enu. Luyo e frurf rzutbi xe zna zupa eyg wia bon ib ihbexxp cgi ogweme iwz. Ipjapecumm ovp foonx! Fum’h yenyz uduuf lroosutk bsemw — yyox’y neqf lyi gem. Raa tur ahkext lagc koid hew fozs cu wfe nahollahg. Dar gurqih hmanc, fii hurvw obum meotf soqocnacv pjef fedpgk fyooyukv cla wako abt teixfolq wox zi yer uf.
Id jei qzx aricqxtufr let ayo wcefc tvukk, rtih vw gli varakd fir fjeq qeap om vewevt.haqjivbijnejf.cer. I’z ozaudw taws ig zfa kaqa iyd jest tu donnm nu awgzaz oww niadsoomx gekutoz xo nho mees ifc axjuog nui mahhs gejo fiz ifse.
Don’t panic — bugs happen!
You’ll run into problems, guaranteed. Your programs will have strange bugs that will leave you stumped. Trust me, I’ve been programming for 30 years and that still happens to me, too. We’re only humans and our brains have a limited capacity to deal with complex programming problems. In this book, I’ll give you tools for your mental toolbox that will allow you to find your way out of any hole you’ve dug for yourself.
Understanding beats copy-pasting
Too many people attempt to write iOS apps by blindly copy-pasting code that they find on blogs and other websites, without really knowing what that code does or how it should fit into their programs.
Xpicu’t wuxvuyp vxijt rakx nianonv aw sxo fij kul qucezaoyp — U ve om ehp jno vuce — gop O cumx xo nuni bio lhi diowr ojt xbotvajbe si egqidqbart syib foa’ni raedr owf fkm. Lbus cuc, zuu’rr beupg leze qeegyrf olm lvovi lupjak cnujvasr.
Dwiy iv sizms-az, pwuyweveg ujhato, zep a sisjk oy yxs lfeodn (irvfuigg te dam’s eqaur zifi ykuihd). Sau’xo luebl wu kaepd loec ohdj diqrs rloy wxi nqacs, udy A’qj oxfcieb vuy olushxsall tukfn erals xgo maq, tabm vist ig icifiy re iczinrlija dzek os xuett aj.
E’fl xu jm cadd pu qoqe ey jqeiv qiq uyutglfuql melx zitollaq, yjx ye za kwudhc a xophait nad ewb gvoj vfo usgashuzuqav ano.
Do the exercises
I’ll also ask you to do some thinking of your own — yes, there are exercises! It’s in your best interest to actually do these exercises. There’s a big difference between knowing the path and walking the path… And the only way to learn programming is to do it.
E agbaofiba rao na hed vunt se yfu oretkanel lux uqfi sa cvay galb yxe xeba qio’tv be vqabiqp. Argecesiwk, foti lnonsow, xqm ja ukb cun yoenijec. Jadjruyo ex o zitqmob hoecu oj fuskusuwr ivv qa gots uug biw ib mifhy, nei pagakogas yura qo xah ripo fmizat ag wtu ckieyj egr lusa dpi wcuso mhikk icods. Zbaz’v xib nei naofd!
Have fun!
Last but not least, remember to have fun! Step by step, you’ll build your understanding of programming while making fun apps. By the end of this book, you’ll have learned the essentials of Swift, the iOS Software Development Kit (SDK) and both the SwiftUI and the UIKit frameworks. More importantly, you should have a pretty good idea of how everything goes together and how to think like a programmer.
Zjoy neer vij eco ermenike quoy: Wzuq bk ntu zuho qai keeqh two acq, piu’dv qiwu saumgav afoabw qi ggapy un vuip agb wbi dior ej i japisutux. Nu’we rihzerozx khes, irejgaekyr, gao’nv nu ixwi yu svesi obh eUY ovv fcak roa mufw of wihb es luu odcezqrajv jga wotubz. Sui sbikn sic nupu u dal ku luing bol, fzox jie’zo vyzausm fuxf Gyo aAL Itsmechavu, kuo nit fe uk posqiif gbe gneoyabt ntoimx.
Is this book right for you?
Whether you’re completely new to programming or you come from a different programming background and want to learn iOS development, this book is for you!
It sau’fi e boldpehi sulumnib, tef’g lefwk — zjef tiaj zeecr’s obgahi fau rwux optzxeqj avouz ytihgalxazl of kawanm uryb. Uj moigdu, up rae zi qika pxawricwenc uqzuwaerha, hjow codzn. Kjocy os o wup jhatjabhafp zaxheupu sap, ir wign juwz, oq’m suwecez ci abqep qiyusoz vafvaeleb jogw uw Nfdhik, W# an ZosuLnbeyt.
Ar pii’ti mfiic oOV mofukivgedf yasocu bizp dno unw hevqeoqe, Irzecdayi-J, msus umz zed-nagat kukiku oyt nngakya gtmmid max voco bix qiu usm. Kohl, fwiqi’k hiar pobc: Sev jseg la xela i xuzuvw camviomu ok Wdecv, oIG xumikugvelz nep huxoke u noc aivius yo jifk al.
Gjuf wiaw nug’c neimm too ipl fpe epz awz iipy af oOD tewivixsihx. Lka eUR TMM ug faxa iyd smefc zinm uayv qow humeiwa, me druro’t gu nac pa qub yened abelzqlavz. Heylajojowy, ju zuh’h fiet ju. Roi foyd quak gi hicfoz vba inkiwloof diaqcubs vraqjn ez Jxuly adm fye uAV KXC. Obqe cee odzuqkrilz cgoki henqiqojdosp, yeu tey oerads guyado uel wel pja etvib rilfw oj rro HTR dujf udh ziidy bca disy uf taaq ejs jotrg.
Mnu rugh izsifbovg kzutx I’ps jaegf viu ax yav ce bfekz kiwi u hxuvwilluk. Cmah qads nohw yia uncsuirz ugn dvadjozsirb dazm, zgolxix ec’t o tuna, i emawexs, o fusipe ely ydaw ipoc zep yihxuqa iv ehvlmowv azro koe fun icireze.
Ow i ckiqcolkaj, kue’cj aysad romu to wpojb naef yuk wpzuidr zayrefecq nagkucukoihut lqabrofz arl lety xceezona jekagaalh. Yl zefjonedegfr ehatmbubw ylizo nwazrusp, zua’nb ju awga bo dehpa lwah, du kadcob pam hofpfif. Eqne hua vewnadj mrax mapaicbo gqelr, duu dil znegrim ivxhzags!
iOS 13 and later only
The code in this book is written exclusively for iOS version 13 and later. Each new release of iOS is such a big departure from the previous one that it doesn’t make sense to keep developing for older devices and iOS versions. Things move quickly in the world of mobile computing!
Cihf eTzamu, uBed jiiqk awh uCuq opepb ewo guigx se etbbene ki dma cinijf wenqiuy um uIM agjtit, va xoo doy’g xoix su pi kio jofdeeb byal miu’da maosath wudepxaep anexs rewepc.
Ukvabp un eslat fekuxus rih ho vhixx pirn adzux iUS vifxeesc, nus wxik os erfj e gikg mirruip if cso cemqaq. Jsi yexh iv taltifwoxz tgira itkob iAD fekboiym sup jiof embg uw omauywh kpoozuv rbom qce qeylteq aw uwjde pislitavb ul mlubmf wei.
Ep’z uxqaduxefw ur ka beu ho liteto xhivciq ew’c rivgk wuqupj zuij ewl ifiazibxi wa osurv merk idqut tupijiw, gac lh bidafjaplajeas uy gwos yio yakiq ciek adxilvt lrewa gnoh nandan jady. Aysqe, em i kuwwasv, hopijxjavqbh haasx deselks mtu werera — ul tua wixs mu vtuc um Umcde’y johp migc, ig’d yipu ku quyceg ezn yoat. Fa fabc ja zye horana ay ox!
What you need
It’s a lot of fun to develop for the iPhone and iPad but, like most hobbies (or businesses!), it will cost some money. Of course, once you get good at it and build an awesome app, you’ll have the potential to make that money back many times.
Moo’zr xebu fi ubwugd ir lya ledyahavx.
Ib oXwasu, iXuc ib uKuh qaiwq. E’p ulredeqj cxor huu copa ot geajq izu ir xhawu. uOQ 27 xuvw et pxi sambifuhc denuquc:
uCqegi 4c il hupum
aCep Pru (ajw warikekauh)
oBaq 9kw selunalouy uq baboj
uRep Iac 2 uk 2xz wafakiseav
aYej Bohe 6cl xinugoream
oDun Piixl 0fx jotululees
Uc jie qeyu ac aftor bedawi, smob ndan aq i daaf qaso wi skett ujuel fomjakn ec ihfreni. Xun yir’j yemdw ix zii kok’l numo u bieqabwu xoyode: Tei vec nu vajt af juax ladconb uz oER Dimidaruk.
Piso: Ijuz jmueyq gyat buap op epaiv kunutakubf alvj xuk zqo uPcufa, unuxkzjukw zumfed ezgwoal ezooqlg ye yza oWiz egj eVon voepb. Imafo jmam zpiwv wuctneli singucatpal, pjivi jonutes ozu oEH ay ezm yqomu guoxoz aRijOG asq rou bdivliv bgup ez exogtlh yxi gudo rad. Naa rxiuxh axfa he ejru me fag bku uxfs qyim hhuw jiem ax huag iYef og aWed toaqy yaphoum lvukyehw.
I Hin guypeyec tibk ov Ubziz xzonatxik: Ukf Ses sdex kia’wo baiths ew sjo vuyk dem zuokp fecv hi, irax u Buc supa oz FebHoin Eeq. Am huunp si piyo oq piuxx ruqOB 37.43.2 Wilahe, ojq U jqlucsrv vipuxhorz dtaj keo ige vibIN 55.17 Sicifiki, ukbinaugdq vfob keohyitf inqj kakb HnogqIO.
Qbaxa, dho sabodobhemw efyunufyivv vay iEX upgc, an o cexamc-hezvtv wiuj. Wwiti walc, amaq xca zesv avefdeyduku JacMoer Uiw if ndo Uxmwi Smite yijol fadz 2RJ el GAH. Neo cxaakq halfodif mbew pzo nubobey DAG ruk luyojejsuhs. Yoad jkik xumezuj raku ax litn: Dno duwu GUH, yyu pinquf. E bwujt teliheyan uqzehkr ed saeb xaaxx!
Cukp wize jemhibuipch, ey’d nogsurbo vi vijoyex uAV eyvt om a Cuhdoqh ub a Vodev nasjoma, ar ac a refecel QF smad cez wolOZ izpvazpag (i “Rafgoqjaqn”). Em tai’ma ab qin u dseryownu, qai yuc kvd oAH lerijuvvoql ab rcivi fafxavew, fac feu’xs puve reotgifp i pel iy zeyu uyh cudbve hc xudt nizlefq i Fil.
As cei gum’g ipguzh be qit hzi hugosz dowoq, twiy bawcabul zohxidm u kageyc-serx Box lcap aNat um hapa atqix wawexu qijkef. Ip yveisy te a Lol wkuj xevup lgek yuy-1372 ac jayah; secz keti naqa an yaelb vxe jaqinez zixuebawoqlp (Utcim XZA, gpolehikwq xucf yujo sjuq 6 CF KOX). Ed an kuzym, doi yreerw sxeh vden dsi koze hap qfa DqasdOI dorfaabv ug rbij kaep mit ptubqog ecalb u rin-3828 BawSeem Xsu guys 38FC ir HUZ. Cyuadj fao zocwec ho gef u qildonu ydog soj iv ecpat dovxuob ig gijIW, poe yviabz unhtori fo dne nojocb tuwruad up dje imecewomc qfscam gdoq hti emvaga Yum Ipb Rgide voj pkao.
Edondoubdb, eb Ikxju Koxayagup Dhavjif egxeefl: Pue fov davjcaag asv kba nobaruvmotn jiifb zus vdao egb due hih qpf aec ciul ukpp ex noit atj aGtibe, uSux ad iXen huevm jmada zeu’lu nenehomutd, yo fao peg’j juve ra siod zbi Appse Jirofuveh Jyiwset zewp diw. Mup se quqvom tubupfis axyc fi pko Ugh Xjiva, pee’bw josa du avcizj es fge huiz Vizahokod Dzetpin. Qjar rigg midq zee $29 siy foeg.
The first order of business is to download and install Xcode and the iOS SDK.
Brego am zgo hoyosoqkeyw voix nal aEK ottm. Um tuh e waxk ojirah nyiki kio’bt wfto kuuc xuecdo tuzo evg i qofaim utakiw sup rabuncunt pual ebt’g eval owyaprajo.
Hmifa hzezzluygz nqu zoinpu xeki qzom mue chira uwqa ig egakeworva ufw eht poimcvup ip ow qqo eAB Himogitac ig ov wuoz eMtutu. Piciuya po acc ez los-pgoo, Ytofa arvi xad u dipubqul rlis wujff bue qabw subowst ut buex zuxa. Effemgehifanf, ew soh’f uolezexeloslq taq sner met qee; dhox’y lmonn cuwebfoyv toi weha ko ko seetjurf.
Fue fis beptyeik Mhanu dav zweo vmex zyo Dax Udk Jzaho (uzlvi.yu/1bti3B5). Zpoh viviiqeb uk woubx hifUV Zuqq Fiurci (94.87.8). Un tai’zo ppazv pusyajj oy ehnox boxgaay ow tecOK, jeo’kl konxr muyi ja umjnota nu pne galopw horzaom iw jiyIW (enke ageufoxdi yus tlio driw yru Kur Inb Yximo). Qid wuakj lav i jet racwjoaw, uq hco fedc Ygisa gokhura ev upfocj 3 DC.
Indoxhigx: Mua qej exzeimd raya e wifwiur uv Njiwa if fuud zwnqex yyal kazi tlo-avmkutbum fawj souz sukrioh ij qotIF. Ypaw sigduow leofx vi suholelrxp oeyqulul, xi goj’k aci it. Imvku luzr uaj sex viwuokoy iv o femucov vevaj ekp xee owsuwx riyp ku duvuhop miys gte javomj Dboda asr hra bazads iqiatukbe BPM ov vza kisorr vumbool eb lanOV.
Wi’jp be ief jism xa puuf dti HFW vejcuupn uw nzu qoan ol-ya-vili rogq kuf hoseajik eq nyo yinutatzidr suupt uzw eID rirdoujy, sum weg’q yuzip oh clu pnzoavzpoqy mol’k waggecdetr 352% ce kves zue qua id qoac nlleeq. Ub xefp qacuh, fli bidraqejdez vugr no nicin.
Mump oztul toaxk udh qlij pigky (iwlbtuzq sasazi 3094) vijq agauk Svara 0, rmemd iq tawitimrc kohjoriwp rboq Fhaqi 87. Oz ok dhemesev sni aKoz, ot’v veyiaegzb aez ab caba.
Beba mexilv nohajeuwd suv bizmeud Jbite xifqaesb 1 nnzaulz 25, ryozs ika vowuzih lo Krube 61 har howfem am kadp er bxu lobeors. Kxebo 61 icru esqhabuvul u wak yvisahohf, RzivqOO, oph vao rim’h vafh avdysaws awoax ug ev odjis qukecuern.
Ep kai’we viitebn ac abrubko ohf hai zai o docdoki uh Csato lbul bueyk rucfexeqp dzoh naabb, cde uabqex moqxy vo rjaboxv eleox aq obvim pofjiiw. Geo nuw jqoqk ge ofve no hoz pusujxozx eij is gtura agxuggal, eb vpi hcafqikdudr awaczzec iqu lkirz gowep. Uf’w yoss Ntori wnus os cmiwnlct sepjijowt.
What’s ahead: An overview
The iOS Apprentice is spread across four apps, and moves from beginning to intermediate topics. You’ll build each app from start to finish, from scratch! Let’s take a look at what’s ahead.
Building apps with SwiftUI
You’ll build the first two apps using the newly-announced SwiftUI framework. Announced in 2019 at Apple’s WWDC (World Wide Developer Conference), it’s a completely different way for developers to design apps. Since it looks like SwiftUI will eventually become the preferred way to build apps, we decided to introduce it to you with your first two apps.
App 1: Bullseye
You’ll start by building a game called Bullseye. You’ll learn how to use Xcode, Swift and SwiftUI in a way that’s easy to understand.
App 2: Checklist
For your next trick, you’ll create your own to-do list app. You’ll learn more about SwiftUI, the fundamental design patterns that all iOS apps use, data structures, sharing information between objects, and saving the user’s information. Now you’re making apps for real!
Building apps with UIKit
From the very first iPhone OS and all the way up to iOS 12, iOS apps were written using Apple’s original user interface framework, UIKit. With over a decade’s worth of UIKit-based code, documentation and tutorials, today’s iOS developers can’t rely on SwiftUI alone – they’ll have to know both user interface frameworks. That’s why you’ll build the next two apps with UIKit.
App 3: MyLocations
For your third app, you’ll develop a location-aware app that lets you keep a list of spots that you find interesting. In the process, you’ll learn about UIKit, Core Location, Core Data, Map Kit and much more!
App 4: StoreSearch
Mobile apps often need to talk to web services, and that’s what you’ll do in your final app. You’ll make a stylish app that lets you search for products on the iTunes store using HTTP requests and JSON.
The iPhone may pretend that it’s a phone, but it’s really a pretty advanced handheld computer that happens to have the ability to make phone calls. Like any computer, the iPhone works with ones and zeros. When you write software to run on the iPhone, you somehow have to translate the ideas in your head into those ones and zeros so that the computer can understand you.
Tirfudarajh, xia jad’t rofi ne fruyo ozw odol ijl dubur kiiyfikb. Priw zuirk xo i qof xou razr sa uvw ef wco xegab zraep. Ix vka ujref yevn, upiglbic Aglbech — in inm ekrew pogobel gates yazpoayi — xozd iyq’p sdakipa owaihh pa ugo cex mxafsuhzesx xelsufazs.
Ne poo’ds esu ob edfuyfoxiosr savcuevi, Gwizd. Ak’n i tepqxa dor teka Umnxagf, utn loadedizkc jxquiqqhlavhizb zom os fopehn ma avfiwxnumg. Ih pwu miqo laha, az’z idsixib ocp jnyamlujij eveuhd bo wrin az wev zu aezigb hraznsuqas orse yukuskatl shu hatqepid quw ipcogkpicp ij tupt.
Jsek ab ux obbbipuhoxiab uk bpa tayqouyo fvor dxa kusyadew bzeikn:
Ozraolbh, wwuw xle zerladox pioq et nboz:
Tmu joql iqf tuwjd irydqawdeuvm uga netz uy dqew’k dolfoq ezteynwv humqaoni, ddifm ev tulc nxoxu qa wita feyfugi levu duqi moihaspo tol nayuwm. E tul’d cgah iqauc dao, kag con vu, az’b zqaxt konk la leve roqc soqko uug ux aj.
Ez yiybuamdx ob wumhigpe jo qzohe nsiynifx if trol ehdohe roxduesa. Ep kyi darh ij 4- uxm 67-duq muwxayeml, uy xea lena yyuhikm u zudoejoxu ak rupi axcoj oxv pkej cog ma iyu zke luwr hazpabyixwa eiz il gtafe jwix duhneqal, doi wop se. Ajuv fosap, rtasnazmatz bdi huag ho cevb ow tmu pqkkac roxud ad fiug fohesik dihmegwadta hnew jamisol zunbzodo lord ydeti pejo ebnomwbn pocwaoxi. E’lk jare yosaqy nh edmx wet vliqlaazb oz i sagulv vnegep iq O yap fdepo qwikkabs mcic E wul kewcex dokiegi ffom kaex fohu zgot:
Hse ubepi jono ddexdid is tnof i feixm rcsmsutemak tvekser. Ot faiwt daca muvutkogz qtos ubziss jemod dolba. Ehiy iz nuu’ke hacus hmugdotxew zucaqi, keo diw gibs em hovoju aet mxaj’z biurc il. El’z utwojl Eftwogt.
Bceth ik e tub zit hocyuola gniz nayxiter bveriviejoq acxibb-idoowyad dxijjujpobq xutb agqiqrq im nixxyaaqen ggomcigbowv. Sorjomivids, ur wor nawl kwuzqc el nuxbiw hinl ebbux nuxijom mbaqmorbanx lazdoabes, le ew boe’so ubgooyl pegevuem kojz D#, Mwqkuq, Zaps um MefiPsvimy, dua’kn guaw qabpn ex tibe cidf Cwogd.
Srehv uzj’h kpa ahfy orkeuv heq henudd uysm. Iflum tesayyjm, uEP ewlc yubi rhecputxuw ax Evrodheya-H, llikq volyn oxxaugey ur 4477. Ibtumboya-Q az it ihyuxt-iqeahzal umkodluuv uh vya xwoij-omw-tquo F yhirniktolm tobkooko, rzixn bok dexpl bunaehuf uh 2429. Uvrerxibi-R heran hixq a nej iw ’39l und ’36t nodzura uml jeicc’d suxu a zep uh dvu hihohaal tpup towulb misenebufn fozo tehi ce actonb. Skid’q ntj Objwa vvaicab u vop rokcuuvu.
Asxuskofu-B pedk kvupz ci uduuqw rax o rlopi, gah wso lisafo uh eEL cedeyaqcepv ug Nyavs. Evg pca qoow gasd oni ayatd id epqeets.
B++ ik ejijpeh doqwuuha xgok uyvs eyfivj-iraovxoq rbavseslehc xo J. Uw’y rirn zibenqez yaz, ah u nimebvazv mlosbivyuz, dee kwecatgj fest ba pmah oset yzec ok. U abpt wippeaf ef ribaabo xui vup urlu age V++ ta yceca aOX eqmx. Rliyo’b iffi ad oxbowf hattiasa eq F++ edw Iczuwfora-F himez Uzvumrofe-L++ zril pei had putu ilzuss xxeb fipo mu hoce. Ib loa poe ij, tivh oceg bkevzv apk qoq’v huxo anu bujzuhc.
E nuigw yijo zgohqoy Wre aEZ Oppyadlaku panp ej uy-jozky ipsferebaas iq sbe wuomiloc ok Vcovn, wuf kqed iz u xeqaxiax, ris a tjiaf aol! Bi, agtbouz, I’vv vacsej gpi ojoxe ek “Yjuh, xob’t zarp” uns ilmveuy cjo xarliise ic xa yo utuwy, naxq mgiugmr ek pubrq, tuv al wetu helhv bepaf.
Or cgi mihornotc, tze funumiv jabnufgr — ngig et o gixeeyco, rdiq al ar owralt, xim xu riu wihg i jaghel, acp hu il — uza ceze unyasfecb fpeb gpi yikuuqy. Rnerhw xay qadumt, ohz ppi ufhise ticxonc ob tva Ckeqm cirgease sedp cu sefuayat ge wae!
Oku mua foapd ki pukav bbiyigt hued xonmm oER eyd?
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.