![]() While we still have a few screens written in UIKit, most of the codebase uses SwiftUI. We have been early adopters of the technology, using the first version of SwiftUI in production. Using protocols makes it easier to define Mocks and use them in Unit Tests and SwiftUI Previews. These services all define protocols for their public interface, clearly defining what should be public and what should not. ![]() They are respectively instantiated in AppServicesContainer and SessionServicesContainer. These services are split into two categories, the ones available when the user is not authenticated, and the others that require user information. We rely on small services to perform non-UI operations (VaultItemService, RegionInformationService, PasswordEvaluator. These components are fading away as we're replacing the navigation with a SwiftUI-based one, relying only on MVVM. It helps us isolate the business logic in clear layers and components.īecause we were using a UIKit-based navigation, we relied on the Coordinator pattern to push the different views in the flows. The architecture pattern used for the views is MVVM. Today, most of our codebase uses the latest Apple technologies like SwiftUI and Swift Concurrency. After Apple announced SwiftUI in 2019, we decided to rewrite the app with this technology. ![]() Today, we don't have any Objective-C code anymore. Throughout the years, we transitioned to Swift to have a more modern codebase. The iOS project was started back in 2010 and was relying on Objective-C, C++, and UIKit. It is publicly available for everyone to audit our code and learn more about how the Apple applications work. This repository contains the source code for all the Apple applications (Dashlane iOS, Dashlane macOS, Authenticator).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |