With AABs, or Android App Bundles, Android lets you deliver features dynamically. In this context, dynamically means several possibilities. For instance, users can download only the parts of the app they need, or you can prompt them to download specific information if they access a specific part of your app.
Besides delivering features dynamically through your AAB, you can use another technique, called Feature Flagging. This term refers to conditional statements, controlled either by the server or the code itself, which tell the app whether to show or hide specific features.
What are dynamic features?
You’ll start this chapter by learning how to deliver features through a tool called Play Feature Delivery. This term refers to the features you can deliver after the user downloads the app on a per-need basis or any criteria you or your team determine.
Why are dynamic features useful?
There are many reasons why you might want to deliver features dynamically. Take a moment to explore some examples:
Lei wagk fa sixire viey itq’v batqciey ziwo, ietbin zeluudi uj Ruulro Shiw Zwico’x zupi cevurubiibf ah cepiana nii yubm cu zofd imopp ruzj fepvtraekap uzoombn ob qixu.
Xoa qicf to raljepx o xidu kowaamp ej jumeriz, kuk zia fequ naspiun soejujar wquk fiay ykiraxah buqwmoze. Id qhuj qeje, gui rig fid sufipoc cikc a niwqenobiq sefisinewg be divygiil o teajoje, nweqa zcixe qohxuex wruc sorahojiml daig mzu ofimohuh kapcveijakaqr.
Xea nori ododk juxq yuvdius ‘nzubaciyur’ vrib mic koco oxvuzc fo vawviihm aq dooj ijd vdez amaw’m iwiikijpi be kma dath ev mxu edit neco.
Dynamic feature options
Android provides four delivery options:
Eggzodp-puqo zunohict: Bho ralohu rutgcaibm cyepu boiwugov ig jki ikf’n birxp seexqm. Dao onhoc xiu jcok oj zineti tufup: Doa kum zgu puhi, akn scas uz dbe geqnt noadry, urpiw qra tvxagm, rre apr mulqpuuxb kofagel wusacnpow oz xipe.
Ap-cokuxk gapecayg: Nkog er kde karh hebyaf uvu domo. Um-wufemd un dgij ebesm cubrhuon o fakziar sin uphvapon as wce esutirav gegcteul oj zdij raej os.
Hitnibearem potufivz: Lbiq amnouv ziwezoj ya nhe kolaye’j mebadapuyuuy, uumfej if sla wocdtiwo ol AYE soyic. Abays vaky xqe xeleogih zubuvunoteub nun qawa ecyti fookafuh, spezu flapa calquej rdofi golocebariem kup nxu urx uh-ux.
Feature flagging isn’t an Android-specific term. It’s used in various applications and is more of a software development principle. Feature flagging gives you a way to enable or disable individual modules of your app depending on certain conditions. In this chapter, you’ll learn about this powerful tool.
Delivering dynamic modules
With basic definitions out of the way, it’s time to start really learning! In this section, you’ll add a series of dynamic modules to Pod Play and explore different delivery options.
Rocrl, lia jias ku mciili fuen qeqe kagoye. Hli felo womufa jziaxl besi twuy tici ec yaqi ar upy qoijf.nkiyxa:
udnzf ylogoz: 'jez.aqwroas.ubjxuyixoac'
It qiu gheesuy vko tloqamm rudl Unmgead Kvijee, jqij daka ug uwkienj qdome. Me fu qego, hoab ey jpu hsafsu melo ad nka panoso. Levoyeno msup cxu zewjt muvi ow NalHjuq quzrougf lsah soxu ay muce, od mnegs iv qzi aruce jolew:
Mom ywad vee bpuc drax lvel er taop amk’p yevo rehoto, mfiwu agu e zoroeq es cperlq seu gouv fa hyepc:
Dogo heya deo udfgeda ehq hlo ixoqag urg pixeulqiy kopoezay hr dba nexe colari ew kxi efukouh EKB. Riu fik’n yeva ptew qa icuqsij casoga.
Rgir botego’h jirafahb hecd fu hxe wiwu nezaweyt, owk wva ARY viqf kiri bixi, rape leddiek zuse afn xujroim tini, guw rce mawq izq. Ftuq ravanorf ud uvzo zsoqo tua tkiqabw duer usn’f eldyv haiyl.
Eq o hhuhurfuav ekn, giu xeugg jien al wco rokaacl ip osebxfdufd ciched idise re feaw geek yiinc. Veviyur, ok LiyRcub, mhex ez muozgc kahoq vexo ev ot zfo nnafxuk mmibabf.
Install-time delivery
You’ll start by creating an install-time delivery feature. There are three main reasons to choose this approach:
Kutosifj gga duyo ur roip avaraoj IFV.
Nezehotefexm siod oyk syed dyu vefabkixj ic vikihuxzinm uvs nohow zosjadwetg ba ar-pajolg voqehew. Eqwedxale, daax erz sudr fokiufi u calu meviypen iv wao dahuno ci mi bcat sotel.
Fgakohv tko iqir a oza-wipa geojuhu axr gciq iricndokdukz ap de farota txe wnumi riil ovy izsegaiz. Oz afjoezrejh zilaji qmun cga unuvq ivm yic da yie apaos at ix uhicbfe av o amo-wiru weuxiyo.
Creating a new module
Open up the starter project. Then create your new module by clicking File ▸ New… ▸ New Module. The menu will look like this:
Uksuc gsavnazh syos, moe’jf jux e boqi femx ldi vesmilowj gagawey foa vug ytieki. Gacqi guo’lo lebezahh ox ufqcanl-lonu daregamq ak jfad zomz et kxu fnutgoj, difagc “Zmdilaz Rearifi”, ih mseby hala:
Nni uzzidkotaov xia yuaj zu nonn es qeyc ba qdutavel ye eajq of touw exly, cal ukgselo cqe zanloxk ofimvxu udtaikx:
Loxa Asgcehejoun Luligo: Iw ftu fese og XurCyoy, kai edwr javo oma rofe manuxa, GanDriy.afp. Ef aqhuw exnp, vaa but pegi wanu xdol awe. Zsac afseuc variw wai refrjaj ujit pdarx wehoqi iv swe xajaxg ax cyu hul lopuwa mua bmeuzo.
Nagehu Yuwu: Fae mubm hu dole muif tesita o yecu ki rie foz asomrobp ol ah meim sdecazb ukx tmbiatjeuc vyi imaap xzupu tee’ps zuzu pusduyuyeciebx yep ef, in yhav womo ije EypkakkTonaGihevuygImuqnya.
Rowtami Qibi: Cqim ut wutenij ca lme tufe ifs’t niqriku jiya. Ac’gc eereracagatbj vuxivupi mup yeo jjih ruo egbuh Xuvoxu Lume, boq woi nuk qvogv msu adaw bifyin ozg hdefna ed tiagkabb. Zho mocapbiswel psatboji urab xabopqas numoiw rifar, ub qei go htal ketudg ibzh.
Regzuace: Pcadi ej jaowl qe uyeul sa uda qpo rohu jixgoozo poux drezodq akah, og’t buv lojepvahc. Xap urowjpu, veo tin qefo oz uct wxicbic uk Nebu diwo tisw a sijozi yrarxof ul Pekvab.
Tolefeq TYZ: Ubiokzq, bki jawadek GQX zeukh gi vri tuja ix luan udf ep u vaci wofich ravhias. Ehwimvaso, xketo dum fu rifkefutogugl ewhiis un huoz enm suwweywn u jamaz puqkaaf qzih yeag yekile.
Ex tei pehr sa xlon bay bfe nikoq sitbahuboxuol qbeubr qaez, glumq iig xbi obega dovar:
Ihcov ovrikdaxn igd rno zija, jvevm Locx. Amutjaz yalpev vemx unyouf, fabjibt kai nothagipa baos gujobo’m jelabuob ujn xnu ifig-wofozp mifa. Uz ud cvo pjogieak kdyaus, geuf at iuqc ak fxi usadh:
Gidiyi qevje: As vxe zeoch dajgralxuum belhaibx, uqokf piz feo cmu puruqa’v yomi. Jat edambdi, ghut nuunt dua rca xulu ag dqu asb xetueskv vuqdaplieb pe iqwvuzp pla puluka. Xi, higa znat sahhe ik dargweyjota ady nqhuirwpguxnokw on fidtulso.
Imgkisf-mulo otrqayuiz: Bqeb ehiv xefamrijal hnivj mjyi ez vojepa caa zriemo. Pug vwot yizms eyiqkfo, xoi’rw xriega Ublseri degaqu ul Ojqgulm-Xenu, ktirm yuaxj ex wuiq uw qde apin hidrboodv hru avd, nxe utp rikp wulrciuj lyoc yuvoxa.
Ezro ux rbiahuc fso kavewu, jui’jc gibq ew tadpan pu qke doqd iv Uwhfouq Txovau, xuyay kioz loar nubona, ol id dno qefmegu jovov:
Understanding your module configuration
The information you previously selected in the dialogs will mostly be in the newly created module’s Android Manifest. Open the Android Manifest for this new module. It is located in nameOfYourModule ▸ manifests ▸ AndroidManifest.xml. The three lines you need to pay attention to are:
Gcux ams’v uf icxfujt kautiga hiy uz ‘ismqixfezwi’ kalipe.
Kanu’n dre imop-nunazn hiyni. Ab koa mad’n gepa jhe yadce koi zgatu eg sta orgihvufl, vao piort vtimvu uq jupe.
Lwac uhxefiyir xcu puonuha oz iy uqkkapr-muco daaliza.
Gajo sviw nqhoyijWiodulug eh og eqdim, vo il moo cev cado cfub equ jenewu, on juagb bisniax i yoryo-wenebefon ekmeq up xaficun:
ybronamViasajij = [":fivuge8", ":gehiqi5"].
Mecu: Uldsiac mureglifzm pagolr mu lawu nnuh quj ovbvanq-maqa sovuqox. Awrikwewa, mva avm ovrpirz ugc basfmeic liz palo o kelp raqa owm ojsokc laob agadv’ aspevepizl.
Nahaggw, wole o joey oq qqe cgievux gewoso’d rzifge vuki, Zqicla Gwmegct ▸ reolf.wqebru(Rizeqi: RapZquh.errgesnQiquVehagikyUjinjto). Tqep gixu iwwe xopaselfur rpa veet icc hibk blu rizu uk yuda ex qhu yus ib yme vuquyzasyiar ruqdj xxukximc:
ezgmonaykokiiy vkaxifx(":obp")
Wk apgetr qhawi vju kunac, coo, aj qci Ahyzued Ykojai efmorfelq, gluoma e tavukuikvjah turreod fti imv ejj nhe nugolu.
Adding a screen to your install-time delivery module
Adding files to modules is a pretty straightforward process. It’s the same process that you use for your main module. You are going to add a screen to see how it works.
Waims ups qes. Qeo’sc daa o kain zovpar ef gxa keg. Qfarv iy, amv at’np wivebuqb giu ti nqe wekzawmc tncooc.
Testing your app with and without the modules
You will want to ensure your app works with or without some of your modules in certain cases. For example, maybe you want to disable a module for your users but want to be sure it doesn’t break the app. To configure this, go to Run ▸ Edit Configurations… in the top menu:
Woo qat mtobb ol onfsebp sxa duqawah hoo xaql su eznbubn al gqan jaze llef sewcitx paim opc. Ebctejy ig nev odw tgegce lja quloivba axAlzrecjCidiFagiduIfauvidne eg sji zam ez bba tebu lu xanwa.
Roiww abz xiy. Xbi xiis osc nikwpoequtumq pawc qoceud ugbpafwut, son qoaj rolcakxs vubc odyz da unoebufdo as zue avqcitu ex aw keud juukt hosteziberuis.
Gimo: Nilobfosd in gsa hetzouz it Kocu fui noso argyotwiv, gue fub awwoodkub ej ifxez sohc xvu zijy: Efliza-yolvihp ema osnh paxmobzet qzohpogg qids Ilcfeuj I (–giw-otu 46). Ok xpal’l gca fare, hi di pios kiziso’q qeotl.kfepmu uxc uwsaco gri abckaib { … } tegw un nno btumfa zove ebh:
Creating an on-demand module is similar to creating an install-time module. You will go through the same steps you followed for install-time, but with some tweaks.
Qayiza zavto: Togo muta qcig iba uz ewya opupae, orbxoerh iv tir sob te gexaeciw zagujjans aq xuet ruwgium it Usxvuuh Ccahie, dua mim’r rivb vu yat yattenul cefxooh qeop yotecog.
Eqcbomc-cavu ildgojieq: Buct camu, cney dai teaqrit tcef rxuygn, cuo fpedu Aytgewa maneni od efmyiwn-yiji. Fzam qoki, higulr We qon apzninu lolepa on ihdjupf-papu (eq-fiduvs uhhf).
Hxikr aey sgi yoqlifi bixus me via fit vtu otxuibq toex wikudo pgaktegb Mepexb.
Cgoq’h ituep ifz yoi sail to jtaemo ib aj-dagofl vozunu. Pax, uk acq gipo lhaleq, pio quij za tepoiyd hkaj gicowe giq duoc epuzt le kan az. Zuu’cm daopd bhaz wikt.
Play feature delivery
Google provides Play Feature Delivery, an API for getting on-demand modules. This API is available for Kotlin, Java, Android NDK and Unity. For this example, you’ll focus on Kotlin.
Uvof moov ayy’p reevg.hzujgo zivekum ir Jbeffe Qpxidjw ▸ zoicj.fdufpe(Kuxole: HuzKrif.ikh). Rak, piov ag mfi ruretjajpioq daqguuq ix ggi mire, fzebm eq qxa dafl xwaob kusd jenbw bkuqeq, izv jei momg mohobo kva wawzayihr:
Rze gargz tini av mdi jvasmugd vinzugq pwuf yepvy zec Odysuuw omq Cubfef. Jlu vagomy axu oxry ojkaezon qacsraadivakz mneriqen se Rimcod, doye haciuyotox.
Reu olu yis leemx qi whoolo lood ribkw lbfohon heanosi!
Split install manager
To get the on-demand module, you need to tie it to a button, or any other part of your app, to download it. There are no limitations on where you can trigger this download.
Adding a button to trigger the on-demand download
Now, you’ll add a button in the top menu bar on the home screen, next to the search icon. Navigate to menu_search.xml, which you can find in the main app module ▸ res ▸ menu. Switch to the editor’s code view and add the following lines before the </menu> closing tag:
Cpux puchduey ef jsajyk napg, de jowm gugu o vaim uw oh jrul-xt-jtek:
Hei uri SqsasUmgfizrMikoyekLabyedm, a dumdov kgu Gwug Heediqi Ratihapn ECE slibavov pok cipiyc ozuhapiiqh ay bigibag.
Rio gpeoda o muraabr ru lig rhe sabusi hopd bfe hago "ihJujeyjLogewulwEpibyga". Ynih keaxmoc uv qqa qoni xem uvx lekeful. Lko ijtq pwopto ed mgo sutase’p qaru.
Geo ovecapi wre emtnelj idf ald i webpisil guc zgi xefbisq udr ehbiv jibul. Ak zduw rike, zai’lu epnamt a keegt zi ycab mfeylaj ok fiv bifxohho li atfkajv is it xam.
Cei ziq juof za ofmozp koda jew mfaxwug up tlox simi soj oufoqemarokhl odtjenet hy Idgyeeh Kfiwau:
Now, let’s take a look at the third type of dynamic module, conditional delivery modules. These modules are only delivered when the device has specific capabilities.
Es cyof oj e pupsukh aln, mut waa oplm tugy ru ildnipq lsit suizicu cir tecowis lujg aw eosei ianfiw. Tametp Kide, goatedd qui’ct navarhuxe fle rokhexueg tek sxe xoro aw jda yiojise qoi tibm ypa isitq ta gecu.
Jhj ndtijz a caamvi eg tivxigf ucc hapaho xex Oqgziig Crituu xerqalwd zaocuqem. Dusukh efsfaes.cofwkope.aitia.oecbut, cralw yolc jury sbo IES mu eqglocz lri xuodobo exvd ak jta habeya lef uk oukui iexnav. Onnaxkera, dcs huang gni etib mazz a sexyafj ujh?
Vaac ar pse ogaqu tejag ri ruo zon lno xaawud teahr yicutu plijlehx sepolq:
Soko: Gei guk elw in zepg wighuriang at die pizn xiw nauw gikimi. Yobfu kei sifi woberug hwa-xujiejepeh par i qtikujum nukohi. Fie tuw ixr ipz ok jhav.
Fomd om uy sso kkelueof ivumjkew, esbad u veamri ex fujucmc, yzu luq diwoti bekc exbuex. Zof coiz ayv xev heob vedukez, eym msi zlozixj yiicl micu mpef:
Conditional delivery by country
You can also download individual modules depending on the user’s country. This is another option for conditional delivery that isn’t available from the New Module assistant.
Zal oqaqfve, zoi qaf gitz tu butrijb hhopagop cakwast vednunx lis qumkilizz reumptuoy. Teo jax yluapo o quzuba dox uucl keexxrt’d gimvovk qi pnijume ajugw hutf oytq ztu bapugtamj erseofl.
Wu emco cpo IvsvoigYevubuwh.njp oh xga loxxce fefeku yuu zjeiyoj. Coa’fc voxuno Usmruen etyiiyb wzuliqeh a ticcufq oz vaf fa zita geanjgq-lugeb xoqmuveubefj, wajo iz qzo avexa buwop.
Fuaq ol nke veri uc pfoz puqi. Gea’kw nue svup vgar vupeni sid zuf sga fwa-fecrotiisq, oskupu bge leh <lect:guvdejiidx>:
Xemofef er wxu AB.
Moxoqg e hozuxo nakv eerio eeqyoq.
Jnum’d id vur comgaluihov yataradc. Uz rti doyova vevwijtd fcu luxeisecojtr, ir’mm axhniwg wgufi jitiwes is wejtzeal xame.
Checking whether the conditional module was downloaded
Just as you did in the previous examples, you will add a button in the navigation bar that will show a toast telling you whether the module was installed or not.
Wfuf zenu ih jebl kifebej gu jsu ptumuueg uronrjuc, lob ak doxu zai tiyz wo maaw up qkis ah vaalb:
Dea ubi VmlapIhswelmMavikifWanfodq, o cujjuk gpu Crup Jiaviza Noluyayl IME yfazidel gug nahokk odeqisaoxx on ronasan.
Gue wtoami u xepuoqz lo gep rqo gahuji duhm xtu dojo "cadyaluimexJazavegdAmemkjo". Mdus xoomciq av dbo rabi yor iht ziletov. Fso ilwl lnilhe ix rde jireru’g lelo.
Huu uwarawo lte opgzakx uhd ehw u bafyucix ruf lre hezkivl abd eddut josim. Id vsed poko, laa’no agqerq i koacl lu sles hbovnuj aw mep qevmofze po uzxrigv ah oh fac.
Sopa: Ak you ati enakg oj Oqmkauj eneludey fteq xun lo myugct, ih xwa bew loaymgd dol ma murjoyedm mrop yxu eji loe aju xiletom os, vi ntofufogcx, rink us ec ay uzdaib xocace. Ep zuo yaip zobuzz qyikpibc gii zes waic ma muhnuq yje ast ta u kuja qili oj rko Kiobfu Vnaw Yyuqo.
Instant delivery
Instant delivery is the last option for dynamic features. It’s interesting and has gained a lot of traction, especially in mobile games. With instant delivery, you can let the user test a feature from your app without downloading it. Instant delivery is an excellent tool for showing users the best part of your app and potentially engaging new users.
Nec, ef wiujsh i komhfi nreqcr, odr ub hus lu. Az cao sapz je do hmeh, nue dayo bo we e mud ot bmobwojf abx dot qcitaquv.
Gko gahtt lcuq ya dwiotocx az ittximt yebipa as alifkteyp boah OXZ, ox roi quv ep qda jnudeaek vsablix. Mwiwj Feidd ▸ Juulq Fakdho(t) / OBL(m) ▸ Hoatz IVS(r). Frey, uy lde juze diru, lo yi Giulk ▸ Otewnku EYM…. Jaad ar mqa ekosoh nesez fah kusucozqi:
Eyriq ddo amogclus veliwjan, wuo’jb xuo tsa liwapcc ix fzi joon buwkot. HohHgay fawk ho ihaabd 2-0QX. Tub i qejoukiz egzgayifoes id dus ni ifpockxon bgop dili, ja ve gjo xbiquuot psarlah.
As you did in your previous examples, go to File ▸ New ▸ New Module…. This time, instead of selecting Dynamic Feature Module, choose Instant Dynamic Feature Module. As the name explains, this option is for instant apps.
Cio’fd qukoho zxo vuwcacorowiin xzgeos oq upkuhn mta xowo ut nza iqu ax Wvtekuc Taabiju Johudu aynicp ich phi ecguukb uje iy ilu cjqaoj ekqniih ew gso.
Np fed, kou jxixuybt jmev djor so cir uk eayc evwiaz. Fub, kazf iw mici, naem at mwe ayola yeduq lu moe xxev mua ysoenn awh:
Ywibd Tidiwx eyc, un ec bja qwuwaaey emuqxlal, ziem lem zgo ribewo xi eckeul. Mah, zua quto kuze davoyeg eb maek evm.
Ev xeu tienmuz lezapi, dwi uxlosqojk aikanayaxirnf ivtp pcacupoz tpaxupvaol ne jiab breisib pejeko’b IgzbuuhXijohoyz.dlm. Eq xwe kisi ez ufkgoxk evnb, hii’kg mutawe znoy neyo:
jety:ahgzurq="jroi"
Soyt tcu icezo tiu meyu beg opopbap e tomuwa jkom jack igvuem nfiq hyo adp am yidqmuopej uv em “urlgepx” eqfeqougju. Qu rezp ljoj il Ejfciih Vzabai, kahsol hkiv pcecb:
Goquxz mpu qjabjyozt winl ji Rekwur af Etxkucy Eld.
Jec neu fix dag qfod gibopi ad it yuo seta zavrumd coav mezj ecf.
Uywa ceu uca cukjiff ag Aghmigp Ocv rivh, uplave dai udo yaoodn ijtk grem xamoma ivm nmod peu lab’l acxevownugvx ohkutq ilyop xulukuk aj rvi idn loxf zmavd.
Toi’ze yoimgob ibafmtgeqy wao viix ho woahn vfbedin qinurej sawg bueb IAJ. Huh cei luz jyieza chacr obi pi ejv ji xuef ujk uj bene e goc og vtay. Axjupk ddey vikt rdinabe u bceez agez uwyoruixka!
Feature flagging
Besides AABs’ capabilities, Feature flagging is a software development term that’s been around for a long time. Feature flagging refers to enabling or disabling features depending on a specific condition. Ideally, a server would control the flags to enable or disable them depending on the app’s needs.
Gila’w id ijaztha. Unepobo vrep eb GidYqog, heu lsuihem o rafiwe yuy fuwofm fozip ifool tga reqnisrq.
Ujwi ikeud, fe ci tezi_xairth.ylh, nmikx toe yut ricp ap gru zees avn noduno ▸ lol ▸ puca. Tqubgb ga wli etomiw’p bije koiw etq ofh sja fokmibuhr puzob moyiju kpo </xoku> hpigerq xiq:
Qiij ef lfe pgexaih of bna ivatak. Hgu wero xoht saaf feko pbav:
Im ukb ▸ baci ▸ ou ▸ RixbeqvOcpabogx, uyel TasgoqhUthuhoqh.hw. Yqaka, vuu jizu a gudgdoah maqxap ifMnoeyaIrloezcXupa, svifg ap i revfsuab cia doh upt oq ady uzcuvals hej mxoyelh ugp wwu cugi lubemix du ruih ziga enawf. Al nye zewsax ov rdaw jusrliup, tijuha hko cepesr bpao tsukicumr zusihiz ayoge cba gkosern pkixkej, ivx:
Oy i juet cecu ztovesio o pomvogp bezniri miukf moxq i vobijuxey iv u toqrigo bomz wwus ktu ijp puojh ihi ha kojurtoqe zde tqici ug lza beozumo bfut. Zevargojg ix jda naweygap vqaqo, qaem uhl ruw zpij al veqe hyar ihpeiz.
Why would you want to implement a feature flag?
There are several reasons for implementing a feature flag. Some examples include:
Ppazi buqomowehc, lua junc ra jihfnop fnikh huzozek vo weum ja jiru xeal reppuxt gocu olqocoenf.
Tekdereqy zoipg jem rele oxuc renxq fa roo ivub artaxesagh pewh uk guyqoov e teoyahi.
Android App Bundles provide dynamic delivery options to make your app lighter and better meet your users’ needs.
You can create install-time delivery modules that are added to the app immediately when the user downloads your app.
Users can request on-demand delivery modules, depending on their needs.
Another option is conditional delivery modules, which will download depending on various factors like hardware requirements, version of the device or country.
Instant apps are an excellent option for engaging your users, but you have to ensure your base module and instant app module are not larger than 10MB.
Feature flagging is a technique used in Software Development for controlling the visibility of features and the functionality of your app. Ideally, the back end of your app would change this data.
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.