Tag: 打字稿

我用NativeScript构建了东西-第3部分

OAuth + NativeScript 这是第三部分系列的最后一部分。 在第1部分中,我将基于NativeScript的POV作为解决方案。 在第2部分中,我讨论了使用Angular + NativeScript进行更改检测。 在最后一部分中,我将介绍如何将OAuth工作流程集成到NativeScript应用程序中。 以下内容假设您对OAuth 2.0有所了解。 OAuth 在NativeScript中使用OAuth提供了一些障碍。 特别是如果您使用Google作为提供商。 过去(2-3年前),您可以在本机应用程序中执行OAuth,只需将Web视图嵌入到您的应用程序中,允许用户浏览工作流程并查看弹出的code或token的URL。另一端。 如今,Google已消除了该集成渠道(有关安全性,可用性…… yada yada yada😜),您需要使用真正的OS浏览器来引导用户完成工作流程。 这使其更加复杂。 现在,您不仅要查看嵌入式浏览器的URL,还必须了解操作系统将自定义协议的链接路由到您的应用程序的能力。 所以现在看起来像这样 使用callbackURL(例如customprotocol://google/oauth浏览器打开到OAuth工作流程 用户通过工作流程 在auth工作流程结束时,浏览器将重定向到customprotocol://google/oauth?code=blahblah 发生这种情况时,操作系统将拦截该链接并将事件路由到您的应用程序。 因此,您需要侦听它们,拉出code参数,然后从OAuth提供程序请求令牌。 对于iOS,这表示为: 提供一个SFSafariViewController (上面的步骤1)。 通过实现侦听UIApplicationDelegate (上面的步骤4)中的链接: -(布尔)应用程序:(UIApplication *)app openURL:(NSURL *)url 选项:(NSDictionary *)选项 最后,对于NativeScript,您需要: SFSafariViewController : … 让safariVC = new SFSafariViewController({URL:url}); page.ios.presentViewControllerAnimatedCompletion(safariVC,true,null); 实施自定义应用程序委托: 导出类AppDelegate扩展了UIResponder实现 UIApplicationDelegate { 公共静态ObjCProtocols = [UIApplicationDelegate]; applicationOpenURLOptions?(app:UIApplication,url:NSURL, […]

Swift不应该成为iOS的未来

Swift试图做到两件事:一种针对高速和内存效率量身定制的语言,以及一种提供高级抽象的语言。 但是大多数应用程序不需要达到很高的性能水平。 滑动后,代码将在页面之间转换,然后CPU闲置坐在那里,直到用户启动其他操作为止。 大多数用户界面代码可以忍受100ms,但是Swift的目标是1ms。 关于我们的应用程序,最慢的事情通常是数据I / O,而这是语言甚至无法解决的! 在某些情况下,确实需要某些代码真正快。 它分为两大类:游戏和数据算法。 我不是在这里谈论游戏,那是完全不同的野兽。 但是对于算法,它们可以与其余代码库分离和隔离。 其余代码不需要太快。 更重要的是它简单,容易并且具有高级抽象。 这就是为什么我认为Apple明智的做法是使JavaScript成为面向iOS平台的一流语言。 如果要保持类型安全,则可以集成TypeScript。 VS Code中已经有非常好的IDE支持,所有这些都是开源的,因此Apple可以将其集成到Xcode中。 (我完全知道建议苹果使用微软制造的东西具有讽刺意味,但这并不会自动使它成为一个坏主意!他们应该使用正确的工具来完成这项工作。) 这样,对于需要关注性能的狭窄区域,它们仍然可以用C编写,Apple甚至可以创建一个小桥梁,在该桥梁中可以从JavaScript自动调用C代码,并自动转换类型。 他们已经使用Swift做到了这一点,肯定可以使用JavaScript再次做到这一点! 许多用户都在使用许多流行的React Native应用程序。 尽管它们确实比本地应用程序慢,但这也意味着如果苹果自己创建该层的自己的版本并将其作为一种幸运的本地开发方式,那么他们将有更多的机会对其进行优化。 这将使Apple过渡到更现代的视图处理方法有多容易。 确实,ViewController,情节提要和自动布局朝着正确的方向发展,但它不应成为最终的目的地。 React,React Native和Flutter都向我们展示了开发人员渴望一种更简单,更直观的方式来构建移动应用程序。 现在,苹果需要采取行动,采取主动行动,否则就有落伍的危险。

语言之间的界线模糊…正在进行代码生成

实验项目CodeGen –可以创建多种语言的代码。尽管我听说人们一旦学习了一种语言,就会很容易学习新的语言 。 -C被Swift取代,几乎在同一时间,我决定不再只使用iOS,而是转而使用Web。 我了解一件事。 有很多共同点。但是由于最初是Javascript,我花了一些时间来适应语言的无限灵活性。 我发现很难适应它。 然后我开始使用Typescript。。几乎在那时,我感到不仅在概念上而且在语法上都有很多共同点…… CodeGen最初是从通用实体/模型开始创建React app / Angular 2本机代码的。很快,注意力就转移到了多语言可能性的产生上。 可能已经想知道它了..如果可能的话。 工作仍在进行中。但是似乎Swift和Typescript或多或少是兄弟,可能是同父异母的兄弟…… WIP:在我探索更多内容时会更新… 杰克逊·S·罗德里格斯/ RTSCodeGen RTSCodeGen –尝试从模型 github.com 为React&Angular2项目生成Typescript代码/文件 我的样本来自Colin Eberhardt ..的Todo List组件 CodeGen – 打字稿 –生成的文件 CodeGen — Swift –生成的文件 CodeGen —源 结论 一旦Typescript的基础准备就绪并可以正常工作,只需半小时即可包含Swift代码。 似乎语言障碍正在模糊……。