最近我被要求为新应用程序设置设计,需要使用Xamarin构建。该团队已经为Android,iOS和Windows Phone创建了一个DEMO应用程序。因此,基本上这个演示版本需要转换/重构为适当的可维护产品。
在查看代码当前在DEMO应用程序中实现的内容时,我发现使用了一些不可用作PCL的第三方库。这意味着我无法使用PCL构建我的应用程序,除非我可以将此第三方库移植到PCL中。
我的发现是:
问题:
答案 0 :(得分:7)
首先:公共应用商店不关心您应用的内部,只要它遵循他们的指导方针。这就是Xamarin所关注的事情,因此从编译器中删除的所有东西都可以。
第二:如果能以更好的方式满足您的需求,那么不使用PCL就完全没问题了。除了PCL之外,您还可以使用Shared Projects或仅将公共库项目中的文件链接到每个特定于平台的项目中。
但是根据我的个人经验,PCL是确保您正在编写的代码以及您正在使用的工具确实在每个平台上工作的好方法,因此您不必担心之后会出现意外情况。而对于PCL配置文件78,LINQ等东西的支持非常好。
另外,您可以在共享PCL代码中使用外观,隐藏具体实现,然后单独为每个平台提供。
这可能看起来像:
(PCL)
public interface ILogger
{
void Log(string message);
}
public static class SharedUtilities
{
public static ILogger Logger { get; private set; }
public static void SetUp(ILogger logger)
{
Logger = logger;
}
}
// Now Use it from everywhere in your code:
SharedUtilities.Logger.Log("Hello PCL!");
在您的iOS应用中,例如:
public class IOSLogger : ILogger
{
public void Log(string message)
{
// Make use of a native logging library or whatever you want
}
}
// AppDelegate:
SharedUtilities.SetUp(new IOSLogger());