![]() The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them. The information required to generate mock classes already exists in the Swift protocol. Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes. Since Swift is a very static language, unit testing became problematic. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. ![]() ![]() Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. Test framework: Infrastructure: moreĮxcerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs, going from Objective-C to Swift in the process for iOS:.Build and Release Pipelines: Azure DevOps.Libraries: jQuery, Database: Source Control: Git.IDEs: Visual Studio Code, Visual Studio.Language: C#, Microsoft SQL Server, JavaScript.Trusted Authentication Provider: Frameworks.For this service I opted to keep it as a classic WebAPI project and deployed to AppService. Net developers and an Azure infrastructure environment using server-less functions, logic apps and SaaS where ever possible. This API provides a way to add and manage more complex permission structures than can easily be maintained in Azure AD. The front-end using the Azure AD B2C to allow 3rd party trusted identity providers to authenticate. This is the backing API to store additional profile and complex membership metadata outside of an Azure AD B2C provider. Secure Membership Web API backed by SQL Server.
0 Comments
Leave a Reply. |