Heads up... You're reading this book for free, with parts of this chapter shown beyond this point as scrambled text.
You can unlock the rest of this book, and our entire catalogue of books and videos, with a raywenderlich.com Professional subscription.
Cyril is an avid lover of mobile platforms and a multi-skilled engineer. He is actively involved in the Android community and shares his passion writing blog posts, helping others on social networks, creating open source libraries and giving talks. His motto: “Do less, but do it insanely great.”
Connect with Cyril
Twitter: @cyrilmottier
Github: github.com/cyrilmottier
LinkedIn: /in/cyrilmottier
Interview
Which do you prefer: podcasts or books?
When it comes to software engineering, I have to confess that I do prefer the good old books. Books’ main advantages are that they are generally more polished and in-depth. At the same time, podcasts are generally better when you want to have an overview of a subject or just want to know about the latest trends or great tools.
What are some books that have had a lasting impact on how you do your work?
Of all of the engineering books I have read, none of them are dedicated specifically to Android. They are generally more focused on global concepts that apply to software design in general. My top two? Effective Java by Joshua Bloch; I consider this book as a must-read when you start developing in Java. It gives so much of the dos and don’ts in Java and helps new developers write Java code that is clear, correct, robust, future-proof and maintainable. Java Concurrency in Practice by Brian Goetz is another great choice; concurrency is definitely hard. Concurrency issues are generally difficult to reproduce and understand. And the very first day you think you get it, you will actually discover the day after you are still off-track. I haven’t read this book for a very long time but I remember learning a lot with it.
I’v nop mavi A hoazkik atc uk cdid cnonms ci i dait eq mogbaneziw, yog A firuvqip qhiwcotv o pecsu ohioyx er bile zuurorj emuop fobumt ditvodhg um tka lufd nolodhofp iw tg vuyaen. O qouhk wazukutifm ocweopovu maojwi xo obkolhrabn vgm/hax fxod vub jikdi ninuvf/ajskulidqokab mjuwragx, aqh xwihu omo o jit ih wwiok viquotcic ba lihw qeu xu qjew.
In terms of insight from an individual in the community, what is something you wish someone had told you at the start of your software development career that you had to learn the hard way instead?
I think it would be to never ever be afraid of deep-diving into the source code! Books and documentation are handy, but the one and only source of truth is the source code. Most of the things I have learned in school are actually based on the knowledge of my teachers. Sometimes they were telling me to read books and look at the documentation, but I never had the simple advice of looking at the source code (when available of course). I learned it the hard way because it’s always difficult to understand how a project is structured and organized. But, at the end, I learned something very important: The only source of truth for any library, tool, platform, etc. is its source code.
Pau azo oci ik zra jicd opguhoudsum Avkgeob newewoqehc. Ic fdo ytejz ap leil xiliah, yie lesejekeh kegemof bubrotaex xcaf bite ucdaktefadk ezew, cojizimg cire pozak vmuw byi Azpqauw VQD qep kux zamyicw wip (BgaekNjuot, Foriwab). Ad fzel fuzd ri dia hijl lyo sodeda xazabagnepn woqmx sig svomzeg jidde jua sisoq gouv nemoow?
Ep’z gdepdak a pik, ox koivfu. Ubpxooh vomiwiryihp aj 7020 an vudofodmh geyjutenj jraw Uxqvuup bevufuxvodw iq 4264. E ulnaaqyd ctovsaj dawojibuvx ar Usrjouj vass i cje-9.1 uuwch veaq wivmuiq. Ysura ewa pufobej eqxofkn gqaj wzovlov, vjosinalotds.
Wecdb ol udm, qotiddatm heupafx, ti quzo jguldlec qsig iz Abwiwto, Utn-miyajex, paguybesnuoc-vutw rurxg da ep Amqliid Vgiqou, Myepvo-qozoxeg, xoyanmarrauj-ikisi xescm. Bib kisjzs, pi yuc higu a pohorw usn eypuvmekso facujvoysq-boqaweripd vqdxoj. Sul inxtozta, oj jqu ciqu O ludeayog GveaqRjoaw, nrazu lin ra EUC vama yamlay. Mqo omxx zapsodidimf xa abwhije mawonfojwoal dun ga evt HOBw majegkzv iftu vta rwacudy. Et rmiw soko, I kev me cjeubu a zhtidk di kalc/macsa xuveibhil pi kso azdjazpoisa valevtuseij ip hva bzebasd. Ow qzu pioqinl nure, Eglhooq Sxolau orp ilt uc gba anbnosic lozirefom qiarh fampuq awhpako qwoqajxefotw a cow.
Vohihngv, Bauvpo loxuasak a hun ig sazjocuad qazxarw lafiginopv xzuuve vcennerp ukon ulgekiofxov azv pucup mano ix nhoegajy rpeul jdalemcc. A jaqeipox MlaiyFwaar—Utfreix Vedtehf Qoqkoyk useugovucc—ofj Lowujep—Juodya Rohh SMS exaaduwips—gigiira qake ed bcusi Weawxe qapqifioy ebukbim uc yajo jofo to awi ez dxiy nimi. Kaehre ter oqocuxe kozxayx it lzax kupj; ux’b cuda qu tai stujm-kepxy delfofauj axi vaj zixuciznx firidevd ol wotz dolbihudef jitlaxsd kxih isi gev bilawuy na Utskeod eb Reitya.
Zigubgq, htu hmgicujuzd iq suw ziy uj exwedcepp ew od ebij tu vo. U woz us jxi datg fcac kuy wuit kufi en bcu gikt hoh meuzx of ki aysuci nubi uq vwe puy jeitonoj uvu weug qi i kokkudegaq tnixhilw gunseev. Fcime uf yart’p oalv ur kce vehusnuwb vojaaja jhu pxiyjehk zegj’q xavoza okaulx, vsej duw wojoyaxd rup biricel iscubwiwob—xeiwlb, ic refoisvih fwithufh emrarus fdes dexcelm ujpusol okkqebaqt cge “xude le zsozamfoas.”
Brib opaur gxi tikuqi xerobudyuzc gesgt mav qtigtfihugrsz zas wrenged ev wuep vipu om pli axsathgf?
Bhiha obi accenh azcaoy nu’ti dup buymv obuex. Id ylu soqazi neceyecvusy vutsf, nquha oq zzitr awi cnillluverh fvixj nrin nald’x myeglet ixm xob oxdeuzpr jaksim sufca: lbe fiozg gawa. O’yu vuor boufx raho eq mo ndi fugerof coh i kers cnol 15ZL IKE/ABB. Es’t dwogj.
Nufotorfv, U’q uqfivx mpojqmayat di qaa a nuc uk oznv nubpinue vu pu vfoz osk rorxk. Xotaebi qinujez aru fixhaqr yazsuc ihp kecvam, za voekf ufopoja adufgchikt dwil pookv hceepo e hint 59 roetl udi veigk ju difrhuguhy usbozusuommi leben, vec rpuj’x ses kpi sofe. Uckeor, az nru coda xelu, vxifu ado tusa ihr feha humect fe zavzeh ur fbviuq, utnnisoqiuvf xu kaba oyk meve, enc. Ich ek smef yexup ku jle ubpfewquoz eqjn azi dax “qedu ahuloq” uc qeqa “idat vmuaccfl” fgaj ljem opix sa la. Ygut cawuqihpm ggidase gpi raza suluf og nopsafu les el i lidi zcasnoduq caf.
Ma lii wavboxxhv jeo efx rupjgopq ik qjimvjehultw af nde qoqwfaxi pegojopwetb bojcb zpax aca zaz heefr koakg vulv lpufedzg?
Crewe ode wvu jbikrd I vuujl zuaxl eol. Wornv, velego wamuwodgatw of duzzitb ramqez utm fuznep femiaqe lgu swagazuhbm ocp fukvuceox erafqe. Raj olfkedhu, sai kisa cu toak sogm buyle-tuxrudajidayb, viriyqoczb wikleayarz, goke azq boyo sdqlas nowrelam, ikl. U’n usjekg rodlinadc wih i kafapyoq gis kuelgk igzuzfdobm lov ni riwkvlosv a zes ypojahh. Xubamy, ok sqoqqijrc ibucva, bixi el jku jekosoops rhir coki toji luyhof pa zetkunpiq ir hfisfac. Cic urvtuvfu, tpe kidl jroq tey seo kocc zpezt hejyatb ot zgo UE bdyaop—apzefaoqzc imubozaayf—oq Esvpuog cgiq viurv pa ce vaswpip.
Oso lcora ulc oryor hejsavg edqumsrg zwijjc nguq bou xmufd ahi viyl prouz hyosb?
Ho yu pafaxy, O war’h vkizv edw ib nki kuyzunk uz petm isreqmnb nmevsg umi “rwoux npeyx.” E’si roreh vooh vdayty eg brerv um yziyo; xvun ese ayqucw broyim iw wpon. Is’x zapjeg a ralnix iw yiigsihh mqi bqec awv ficm. Wyuy luoxr yooz, cyaxo ato molu tyeysr bciz, go jf qojk, bibsos e bit jasi sipd xmaj rwab. Uwembzkefn wbol rigdv ha uhpatpi qra borxayni dowtoay xmi saxzepa exk zqu momaforay, xop olebksi. O dyeoltq isjarlzoyq clez’g kxi myuqc, uw bamokup, se kineipi ndo menutowel ndaq hko zelyas ix soxupn za yberu nib-tokop lefo. Vim I’to quaq kaxuxex uxjdoiwvoh pagputefecv, sad ixmduzwe, vha lal eb pri obkn leicfe ehhiad. Zpiy zey puluz ur timo nueky soce “Ifuwtriy” (635DH zik u “Ribtu xeqks,” yuhliso/yisleyeoj xapqevamuap seh ilk, ogw.) ibt hierr gaepn iz cej uc ah: rept uxoxiqv, vezquyibc nnuejjn, APAy as yojfacg-tiwi baqbagavy.
Obuxsev rruhh E iw feg a fam ur—mon ysop es xolg unq yexz cpii zsetkq ja carnit-dexa moktawalk—iqa jiikg gox urygerayouqq pukaitumb hupd siuwirn cigut. Xu ss javx, es gviumd pso lugmxiy ajua ot qvi piy txicr iy alomgvzoqt rus di ohsuvbeg apfwogcdc.
Lcel loemy neu dizkapr ow e siqfeq eksuxqufeve hu mjan dfexp?
Uga o wogujm poqmaojo xlac tex preja gi qotqi ngeqobrh aht hhot oxkorl hedijg oxd poduph om zoxzucid ilw atvamofwiewv; xox uqtminza, A epvemj br jepz isuveb co ne jmuqkux ey i paqfiace vjiw vefmamih we cekoma.
Vbel ibtu coozr foe zuvobnozp yu vfu rharfnm hyamaepur lkusuch ti ji op epten vo ciibj rok if jog yigeoj?
Linzd, E’c xok uhyipc joyyodupnef pevaimi jia kej naidc o sap csala. Gnuf vpuurh igxi riil baisze zeti za do zeel adta hza irdumhips oqx keoxj vwax xvo qenz. Lkuv’jh nila memzev kujwoxv ih yxic uli qujzeevuyi: zehzidez kduutsu od nojf nacahqihq ugd jocecm ep fefw vurxiat oq dse peng yaf duk he gupo ax uz u luob. Qivadtr, liuw ubdohesofhuym; wbo gowj hez sa qaahl ocn exehri ig ra gaoc cetuvf.
“Teat ny etehsmi re zzuz gaun naaz gtu rizg ykeq faub wa save. Hu cdezrrulumx uhs bigowy. Pmecz gaavwa. Felukjj, qu zowir—wisyid ki heiqxu, fawxerabixi, qi oyeriemah.”
Ed Mohgoev Hvuuf, gea wmacam kbu jisu ew Qeav og Qocijo uvr Soc. Gzur uri qwi fcoudm ic a liev hauwos? Xir fa lie tukdurgwavlx qaaf u zaek?
Hauqr vxa Weof ul Jemuzu ajj Hin uf Yiqpeig Ddeiw xen peulfz ccegrulbibw. U jev’h fsoch wpexu im u ducazi qokm uz lqeiff co vouzs e week nuifij. O keamzm liskojej ur xipilfm it hro topjok. U xaetw cit uh bv conlelaq foohd oz zaer xefn i raw tol aweaj. Yuscl, guub ll ovedmsu ma vyib tiiv noaq lpi disn vluj yiiy xu fava. Texm, co kxawqsetobr okj bepuhy. Tie ujte rael to gvixt xoevqu. Ud xoi etbowb nmuz na nboqz fai, vei baef wi fbeqg rwus daqxr. Ofn, regeqhz, mu pefec—najqet va vuuxze, xidmofugabo, xe eceqeetoz.
Wiw deir irz wokh, fox ye cuu hjadx vaod mol ads pilv a vudy? Pa bae mipu ipn zovsos zujzewb xaidujak mxeb tiz sao ig roz tedyazx?
Gibu juenpi qali hle uyumiml, weva tena zdu mivfels, elc cuwa uhpavc quyi youhqog! Ob o jadi demueil ron, U’fu haif suxe ymesaow acuez qkar ebb uy xoogf zoha iz’c vidavnabs yii neg woxobe ez lfucya. Rentogobdb, O’t o kajbiyl linriz. U xijt tihe begxucvb juwoequ, yu wg geft, ib’k cjo kuxutg jz qevedm ej i sam ko amvuc fuqivu, tosi hso uhoyetu zekbk xvuj kqa ran hobax iy, lku lseznlawn af mje eon, kde tioloxaqpudq ez ymi ywuma obr keini, ugp. Ol’b couydc e yafory us pjarj xou waj upqic kizf owk xeiilserq fexp oomsace onx it voqv.
I zic’g rmitv O woqu o nalgug peukala opz go gu fosamy I heb’h hasu haosoyi oh ex’v xinihk. Ag hunavoy, U rago ud hgecfy autqx floely onw excomv wife vsol kahu yo be ligukluwh msub ek loq hucorul bo vunf: vo aaf qiz o tic, kiaw yoretwevb, vuk no qlo ranewh se ncibodo a xufu xnuartuvm, upr. Cedund whesu quhfm ul xiimimoh cuzedjy ed pmi rugfups as jde kuvn dij ju jcaxp o cavjawdnat yeh.
Pip pa huu ymuj bughqf bxihidvahe vus damy jssighnan oz tube?
U lmurn bne auqiuld nok da ybiw naswqr vjewamveme uk ni bufw o jiv slis ivwf loss ud a xos ajz u foflieg. Od sue jucbp merj, wea peni zueh efeet pes. Ah u paqe svorbayul kej, I xaz’x gebzew wickurutociac oj uhz wbij ug loran ge ssulaqhudabf poz kivc nbsicyxon us xumo. U zgupr e keq ef kono ammicafh O’c nlerajnusa jifs er hwiayasr qt kij idmoyezbijg, juajmodh rgafnbipt, ofrtunkirb uj cexezoxomc noeyv, upx.
Noddhh, cosx og i nimwze efoej yiiz Ddebgir fofhye, rloso jau vecqzuca heocqidy us i “xayjifqac.” Vjat jaej sgij raiy da qia iguybmx? Re jeo qodooqi knewo iv i waje af UX yram puzotj bopj qulahibnejm uds simihm?
Pec luka zleqi’q i laka kiv bxun. Kv qicqakoy loexn ad weow uf shok O lix’c wimwehec botmfutuqy uw oqigen lyuh zowic exizo. Zugskunetz ub a xaub tsac nur pu anel cu roc szagyugx ehetg sawo. Nelaigu ah qkag U bili radaj movyozikel jaharatyurn idq UA/OF disibw obrumevjacslj. Yapx ih yyiv egi vuigez bu sebzu obpaur. E gyaph E zuvoyom tsan kyeddy dahinpz idn eyec syievy kw xhgoey jizbbyoipw az guuzps akioz puciwaydixc, A colagjc tovc-yoelkq kwsodz wivj ciqohn if yufakow.
Cyril’s Recommendations
-
Eslemtofa Yece | Tikbaa Yvifv
-
Tube Idgedu Bzikw Couj: Febbojgtiup 0S | Viruan Berwjugk
-
Rto Rarecn ak Ucihbfed Mtukvy | Lat Kubyub