package Ġcom . example . android . mar sp hot os . network Ċ Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . kotlin . reflect . Kotlin Json Adapter Factory Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ Ċ private Ġconst Ġval ĠBASE _ URL Ġ= ĊĠĠĠ Ġ" https :// android - kotlin - fun - mars - server . app spot . com " Ġ// Ġmain Ġserver Ġfrom Ġwhere Ġdata Ġwill Ġbe Ġextracted . Ċ Ċ // Creating ĠM oshi ĠObject Ċ private Ġval Ġm oshi Ġ= ĠM oshi . Builder () ĊĠĠĠ Ġ. add ( Kotlin Json Adapter Factory ()) ĊĠĠĠ Ġ. build () ĊĊ Ċ // Creating Ġretrofit Ġobject . Ċ private Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ( mos hi )) ĊĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠ Ġ. build () Ċ Ċ // ĠM ars ApiService Ġdefines Ġhow ĠRet rofit Ġtalk s Ġto Ġthe Ġweb Ġserver Ġusing ĠHTTP Ġrequests . Ċ interface ĠM ars ApiService Ġ{ ĊĠĠĠ Ġ@ GET (" photos ") Ġ Ġ// Ġphotos Ġhere Ġis Ġthe Ġend Ġpoint Ġthat Ġgets Ġappended Ġto Ġbase Ġurl . ĊĠĠĠ Ġsuspend Ġfun Ġget Photos (): ĠList < M ars Photo > Ċ } Ċ Ċ // singleton Ġobjects Ġ- Ġwhich Ġhave Ġonly Ġone Ġinstance . ĠThe Ġcall Ġto Ġcreate () Ġfunction Ġon Ġa ĠRet rofit Ġobject Ġis Ġexpensive Ġand Ġthe Ġapp Ġneeds Ġonly Ġone Ġinstance Ġof ĠRet rofit ĠAPI Ġservice . Ċ object ĠM ars Api Ġ{ ĊĠĠĠ Ġval Ġretrofit Service Ġ: ĠM ars ApiService Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġretrofit . create ( M ars ApiService :: class . java ) Ġ} Ċ } ĊĊĊĊĊĊĊĊ