<div dir="ltr">Hi,<div><br></div><div>we encountered a problem with Aiden and Massimo with the underlying architecture of the multiplatform project in Xamarin. <br><br>We need to have Auth service module accessible from application. But module has some platform specific implementations we need to get.<br><br></div><div>1) Suppose we have some class <font face="monospace, monospace">Auth</font> implementing <font face="monospace, monospace">IServiceModule</font>. We would have it implemented only using platform-independent. So we can simply do <br><pre style="color:rgb(0,0,0);font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;background:rgb(255,255,255)">MobileCore<span style="color:rgb(128,128,48)">.</span>Instance<span style="color:rgb(128,128,48)">.</span>GetInstance<span style="color:rgb(128,128,48)">&lt;</span>Auth<span style="color:rgb(128,128,48)">&gt;</span><span style="color:rgb(128,128,48)">(</span><span style="color:rgb(128,128,48)">)</span></pre>2) But now we need to have some platform specific stuff done in the module, so we create <font face="monospace, monospace">AuthAndroid</font><font face="arial, helvetica, sans-serif"> and </font><font face="monospace, monospace">AuthIOS </font><font face="arial, helvetica, sans-serif">extending </font><font face="monospace, monospace">Auth</font><font face="arial, helvetica, sans-serif"> (which is now abstract) in platform specific projects.</font></div><div><br clear="all"><div>In ordinary pure Android (or iOS respectively) app we can do:</div><div><pre style="font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial;color:rgb(0,0,0);background:rgb(255,255,255)">MobileCore<span style="color:rgb(128,128,48)">.</span>Instance<span style="color:rgb(128,128,48)">.</span>GetInstance<span style="color:rgb(128,128,48)">&lt;</span>AuthAndroid<span style="color:rgb(128,128,48)">&gt;</span><span style="color:rgb(128,128,48)">(</span><span style="color:rgb(128,128,48)">)</span></pre>3) But we can&#39;t do that with Xamarin.Forms app where stuff is in platform independent project.<br><br>We can utilize <font face="monospace, monospace">DependencyService </font><font face="arial, helvetica, sans-serif">in Xamarin.Forms app project or create separate Xamarin.Forms project with </font><font face="monospace, monospace">Auth</font><font face="arial, helvetica, sans-serif">, but it seems that code won&#39;t be very pretty in this case. </font></div><div><font face="arial, helvetica, sans-serif"><br>What can we do to solve this problem?<br>I think we can debate it further after todays ST1 standup.</font></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-weight:bold;margin:0px;padding:0px;font-size:14px;text-transform:uppercase"><span>VOJTĚCH</span> <span>SÁZEL</span></p><p style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>SENIOR SOFTWARE ENGINEER, RED HAT MOBILE</span></p><p style="font-family:overpass,sans-serif;margin:0px;font-size:10px;color:rgb(153,153,153)"><a href="https://www.redhat.com/" style="color:rgb(0,136,206);margin:0px" target="_blank">Red Hat <span><br><br></span></a></p><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><p style="font-size:10px;margin:0px;color:rgb(153,153,153)">Remote Czech Republic</p></span><span style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"></span><p style="font-family:overpass,sans-serif;margin:0px 0px 6px;font-size:10px;color:rgb(153,153,153)"><span style="margin:0px;padding:0px"><a href="mailto:vsazel@redhat.com" style="color:rgb(0,136,206);margin:0px" target="_blank">vsazel@redhat.com</a>   </span> <span>IM: <span>vsazel</span></span></p><table border="0" style="color:rgb(0,0,0);font-family:overpass,sans-serif;font-size:medium"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"><img src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a></td></tr></tbody></table></div></div></div></div></div></div>
</div></div>